Kanban StudioMarkdown & JSON Reference
📝

Markdown & JSON Reference

Full schema reference for board editing

סקירה כללית

כל לוח של Kanban מגובה במסמך Markdown בטקסט רגיל שתוכלו לקרוא, לכתוב, להעתיק ולבקר גרסאות. למסמך שני חלקים: בלוק מובנה הניתן לקריאה במכונה המחזיק את נתוני הלוח כ-JSON, ובלוק מותאם אישית בצורה חופשית להערות האישיות שלך.

סכימה v1JSON + Markdownבטוח לריצה יבשה
💡

תמיד תחילה לרוץ יבש

לפני הלחיצה על Apply, השתמש בלחצן Dry run כדי לאמת את העריכות שלך. הקצה האחורי ידווח על שגיאות וסיכום הבדלים מבלי לשנות את הלוח שלך.

מבנה מסמך

מסמך Kanban Markdown מלא מורכב משלושה חלקים:

  • כותרת קריא אנושית (כותרת לוח, הערת דור)
  • הגוש המובנה - נתוני JSON בין סמני הערות HTML
  • הגוש המותאם אישית - Markdown בחינם (הערות, דיאגרמות בתולת ים, קישורים)
board.md
# My Project Board

Generated by Kanban Markdown schema v1.

<!-- KANBAN:STRUCTURED:START -->
```kanban-structured
{
  "version": 1,
  "board": {
    "id": "board-abc123",
    "title": "My Project Board"
  },
  "columns": [
    { "id": "col-1", "title": "Backlog",     "color": "#64748b", "order": 0 },
    { "id": "col-2", "title": "In Progress", "color": "#6366f1", "order": 1 },
    { "id": "col-3", "title": "Done",        "color": "#10b981", "order": 2 }
  ],
  "tasks": [
    {
      "id": "task-1",
      "columnId": "col-2",
      "position": 0,
      "title": "Build authentication flow",
      "description": "Implement JWT login, register, and token refresh.",
      "priority": "high",
      "tags": ["backend", "security"],
      "assigneeIds": ["member-uuid-1"],
      "mentionMemberIds": ["member-uuid-2"],
      "estimatePoints": 5,
      "dueDate": "2025-03-15",
      "plannedStartAt": "2025-03-10",
      "plannedEndAt": "2025-03-15",
      "timeboxMinutes": 90,
      "isCompleted": false,
      "archivedAt": null,
      "checklist": [
        { "title": "Design DB schema",   "isDone": true  },
        { "title": "Write unit tests",   "isDone": false },
        { "title": "Deploy to staging",  "isDone": false }
      ]
    }
  ]
}
```
<!-- KANBAN:STRUCTURED:END -->

<!-- KANBAN:CUSTOM:START -->
## Team Notes

- Sprint ends Friday
- Backend review at 3 PM

```mermaid
flowchart LR
  A[Backlog] --> B[In Progress] --> C[Done]
```
<!-- KANBAN:CUSTOM:END -->
מסמך לוח מלא עם כל הסעיפים מסומנים
⚠️

אל תסיר את סמני ההערות

הסמנים <!-- KANBAN:STRUCTURED:START -->, <!-- KANBAN:STRUCTURED:END -->, <!-- KANBAN:CUSTOM:START -->, ו-<!-- KANBAN:CUSTOM:END --> נדרשים. הסרתם גורמת לשגיאת ניתוח.

עמודות

עמודות מגדירות את שלבי זרימת העבודה של הלוח שלך. הם מוצגים משמאל לימין על ידי הערך order שלהם.

JSON
"columns": [
  { "id": "col-1", "title": "To Do",       "color": "#64748b", "order": 0 },
  { "id": "col-2", "title": "In Progress", "color": "#6366f1", "order": 1 },
  { "id": "col-3", "title": "Review",      "color": "#f59e0b", "order": 2 },
  { "id": "col-4", "title": "Done",        "color": "#10b981", "order": 3 }
]
דוגמה: ארבע עמודות עם צבעים ברורים
FieldTypeRequiredDescription
idstringYesמזהה עמודה ייחודי (UUID או כל שבלול יציב)
titlestringYesכותרת העמודה מוצגת על הלוח
colorstringYesצבע הדגשה של עמודה (hex). מוצג כגבול שמאלי בכרטיסים
orderintegerYesסדר תצוגה מבוסס אפס (עולה, משמאל לימין)
ℹ️

Note

מזהי העמודות חייבים להיות ייחודיים בלוח. משימות מתייחסות לעמודות לפי id.

משימות

משימות הן יחידת הליבה של העבודה. כל משימה חיה בתוך עמודה (דרך columnId) וממוינת לפי position בתוך אותה עמודה.

משימה מינימלית

JSON
{
  "id": "task-abc",
  "columnId": "col-1",
  "position": 0,
  "title": "Write release notes",
  "description": "",
  "priority": "medium",
  "tags": [],
  "assigneeIds": [],
  "mentionMemberIds": [],
  "estimatePoints": null,
  "dueDate": null,
  "plannedStartAt": null,
  "plannedEndAt": null,
  "timeboxMinutes": null,
  "isCompleted": false,
  "archivedAt": null,
  "checklist": []
}
רק שדות חובה מולאו - כל השדות האופציונליים הם null / ריקים

משימה מלאה עם כל התחומים

JSON
{
  "id": "task-xyz",
  "columnId": "col-2",
  "position": 0,
  "title": "Redesign checkout page",
  "description": "Full UX overhaul based on user research findings.",
  "priority": "critical",
  "tags": ["ux", "frontend", "q1-goal"],
  "assigneeIds": ["member-alice", "member-bob"],
  "mentionMemberIds": ["member-pm"],
  "estimatePoints": 8,
  "dueDate": "2025-04-01",
  "plannedStartAt": "2025-03-20",
  "plannedEndAt": "2025-04-01",
  "timeboxMinutes": 120,
  "isCompleted": false,
  "archivedAt": null,
  "checklist": [
    { "title": "User interviews",       "isDone": true  },
    { "title": "Wireframes approved",   "isDone": true  },
    { "title": "Implement components",  "isDone": false },
    { "title": "A/B test live",         "isDone": false }
  ]
}
דוגמה להפקה עם עדיפות, תגים, מוקצים, רשימת בדיקה, מעקב אחר זמן
FieldTypeRequiredDescription
idstringYesמזהה משימה ייחודי (UUID או שבלול יציב)
columnIdstringYesמזהה העמודה שאליה שייכת משימה זו
positionintegerYesסדר מיון מבוסס אפס בתוך העמודה
titlestringYesכותרת המשימה (1-280 תווים)
descriptionstringNoתיאור ארוך יותר תואם Markdown
priorityenum
"low""medium""high""critical"
Noרמת דחיפות המשימה
tagsstring[]Noמחרוזות תווית בצורה חופשית לסינון וקיבוץ
assigneeIdsstring[]Noמזהי חבר של אנשים שהוקצו למשימה זו
mentionMemberIdsstring[]Noמזהי חבר שהוזכרו (הודיעו) במשימה זו
estimatePointsinteger|nullNoאומדן נקודת סיפור (פיבונאצ'י: 1, 2, 3, 5, 8, 13...)
dueDatestring|nullNoמחרוזת תאריך ISO 8601: YYYY-MM-DD
plannedStartAtstring|nullNoISO 8601 תאריך ושעה: התחלה מתוכננת
plannedEndAtstring|nullNoISO 8601 תאריך ושעה: סיום מתוכנן
timeboxMinutesinteger|nullNoאורך מפגש פוקוס לאגרוף זמן
isCompletedbooleanNoמסמן את המשימה כבוצעה (מוסיף קו חוצה בממשק המשתמש)
archivedAtstring|nullNoISO 8601 תאריך ושעה שבה המשימה הועברה לארכיון. משימות בארכיון מוסתרות מהלוח
checklistobject[]Noפריטי רשימת משימות משנה (ראה סעיף רשימת בדיקה)

פריטי רשימת רשימות

כל משימה תומכת ברשימה שטוחה של פריטי רשימת בדיקה - משימות משנה קלות משקל שניתן לסמן בנפרד כבוצעו מבלי ליצור משימות נפרדות.

JSON
"checklist": [
  { "title": "Design mockup",   "isDone": true  },
  { "title": "Code review",     "isDone": false },
  { "title": "Deploy to prod",  "isDone": false }
]
שלושה פריטים ברשימה: הראשון בוצע, שניים נותרו
FieldTypeRequiredDescription
titlestringYesתווית פריט רשימת רשימות (1-255 תווים)
isDonebooleanYesהאם פריט זה מסומן

מדור הערות מותאמות אישית

כל מה שבין <!-- KANBAN:CUSTOM:START --> ל-<!-- KANBAN:CUSTOM:END --> הוא פנקס הגירוד שלך. הוא תומך בדיאגרמות מלאות של Markdown ובת ים. התוכן אף פעם לא מנותח על ידי מנוע הלוח - הוא מוצג רק בכרטיסייה תצוגה מקדימה.

Markdown
<!-- KANBAN:CUSTOM:START -->
## Sprint Notes

- Daily standup at 10:00 AM
- Backend API freeze on Friday

```mermaid
gantt
  title Sprint 12
  section Tasks
  Auth flow     :done, 2025-03-10, 3d
  Dashboard UI  :active, 2025-03-13, 4d
  API docs      :2025-03-17, 2d
```

> Reminder: update JIRA tickets before end of day.
<!-- KANBAN:CUSTOM:END -->
הערות עם תרשים גאנט של בת הים
💡

Tip

השתמש בקטע המותאם אישית עבור הערות ספרינט, קישורי צוות, תרשימי גנט, דיאגרמות ארכיטקטורה - כל מה שתרצה יהיה גלוי לצד נתוני הלוח שלך.

ערכי עדיפות

השדה priority מקבל בדיוק אחד מארבעה ערכים. כל אחד ממפה לצבע תג נפרד בממשק המשתמש:

FieldTypeRequiredDescription
lowenum valueNoדחיפות נמוכה. מוצג בצפחה/אפור.
mediumenum valueNoברירת מחדל. מוצג בצבע ענבר/צהוב. השמטת העדיפות היא ברירת המחדל של זה.
highenum valueNoחשוב. מוצג בכתום.
criticalenum valueNoחסימה. מוצג באדום/ורד.

משימות ארכיון

כדי לאחסן משימה בארכיון, הגדר את השדה archivedAt שלה למחרוזת תאריך/שעה ISO. משימות בארכיון אינן נכללות בתצוגת הלוח הפעילה אך נשמרות בהיסטוריה.

JSON
{
  "id": "task-old",
  "columnId": "col-1",
  "position": 99,
  "title": "Old completed task",
  "archivedAt": "2025-01-10T14:30:00.000Z",
  ...
}
משימה בארכיון - מוסתרת מהלוח, נשמרת בתמונת מצב
ℹ️

Note

הגדרת archivedAt ל-null מבטלת את הארכיון של המשימה. סיכום ההבדל יציג tasksToArchive בעת החלת תמונת מצב שמאחסנת בארכיון משימות הפעילות כעת בלוח.

ריצה יבשה ואבחון

תכונת ההפעלה היבשה מאמתת את הסימון שלך מבלי להחיל שינויים. הקצה האחורי מחזיר diffSummary (מה ישתנה) ומערך diagnostics המפרט שגיאות או אזהרות.

תגובת ריצה יבשה מוצלחת

JSON
{
  "ok": true,
  "dryRun": true,
  "diagnostics": [],
  "diffSummary": {
    "columnsCreated": 1,
    "columnsTouched": 2,
    "tasksCreated": 3,
    "tasksTouched": 5,
    "tasksToArchive": 0
  }
}
בסדר: נכון פירושו שהסימון תקף ובטוח ליישום

ריצה יבשה עם שגיאות

JSON
{
  "ok": false,
  "dryRun": true,
  "diagnostics": [
    {
      "code": "unknown_column_id",
      "message": "Task 'task-xyz' references unknown column 'col-999'.",
      "line": 42,
      "severity": "error"
    },
    {
      "code": "duplicate_task_id",
      "message": "Task ID 'task-abc' is used more than once.",
      "line": 67,
      "severity": "error"
    }
  ],
  "diffSummary": {
    "columnsCreated": 0,
    "columnsTouched": 0,
    "tasksCreated": 0,
    "tasksTouched": 0,
    "tasksToArchive": 0
  }
}
אוקי: שקר - תקן שגיאות לפני היישום
FieldTypeRequiredDescription
codestringYesקוד שגיאה קריא במכונה (למשל זיהוי_עמודה לא ידוע)
messagestringYesתיאור הניתן לקריאה אנושית של הבעיה
lineintegerYesמספר שורה משוער במסמך הסימון
severityenum
"error""warning"
Yesאו 'שגיאה' (חסימות חלות) או 'אזהרה' (החלת רווחים)
🚫

שגיאות חוסמות את החל

אם האבחון מכיל פריט כלשהו עם חומרה: 'שגיאה', פעולת היישום תסרב להמשיך. האזהרות הן מייעצות ואינן חוסמות.

זרימת עבודה מומלצת

עקוב אחר הזרימה הזו בעת עריכת הלוח באמצעות Markdown:

  • פתח את החלונית Markdown בלוח שלך
  • ערוך את ה-JSON ב-בלוק מובנה - הוסף/שנה עמודות או משימות
  • לחץ על הרצה יבשה כדי לאמת מבלי לשנות דבר
  • תקן את השגיאות המוצגות ברשימת האבחון
  • לחץ על החל כדי לבצע שינויים בלוח החי
  • השתמש ב-הורד כדי לשמור גיבוי מקומי .md
💡

טיפ לבקרת גרסה

מכיוון שהמסמך הוא טקסט רגיל, אתה יכול להדביק אותו במאגר Git, גרסאות שונות, ולשחזר מצבי לוח קודמים על ידי יישום מחדש של תמונת מצב ישנה יותר.

Schema v1 · Updated September 2026