Markdown & JSON Reference
Full schema reference for board editing
Oversigt
Hvert Kanban-tavle er understøttet af et enkelttekst Markdown-dokument, som du kan læse, skrive, kopiere og kontrollere versioner. Dokumentet har to sektioner: en maskinlæsbar struktureret blok, der holder brættedata som JSON, og en gratis form Custom blok for dine personlige noter.
- Det er altid tørr-run først.
Før du klikker på Ansøg, skal du bruge knappen Dry- run til at bekræfte dine redigeringer. Bagsiden vil rapportere fejl og et forskelligt resumé uden at ændre dit bord.
Dokumentstruktur
Et fuldstændigt Kanban Markdown-dokument består af tre dele:
- En menneskelæselig overskrift (bordets titel, generationsnoten)
- Den strukturerede blok JSON data mellem HTML kommentar markører
- Den brugerlige blok gratis Markdown (noter, diagrammer, links)
# 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 -->Tag ikke kommentarmarkerne væk
Der kræves markører <!-- KANBAN:STRUCTURED:START -->, <!-- KANBAN:STRUCTURED:END -->, <!-- KANBAN:CUSTOM:START --> og <!-- KANBAN:CUSTOM:END -->. Hvis man fjerner dem, opstår det en analysefejl.
Kolonner
Kolonne definerer arbejdsprocesstadierne på din brættet. De er vist fra venstre til højre ved deres order værdi.
"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 }
]| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | — | Unique column identifier (UUID eller stabil slug) |
title | string | Yes | — | Kolonneoverskrift på tavlen |
color | string | Yes | #64748b | Kolonneakcentfarve (hex). Anført som venstre kant på kortene |
order | integer | Yes | — | Nullbaseret skærmordning (tilbøjende, venstre til højre) |
Note
Kolonne-ID'er skal være unikke i brættet. Opgaver i referencekolumner af denne id.
Opgaver
Opgaverne er kerneenheden af arbejdet. Hver opgave er inde i en kolonne (via columnId) og sorteres efter position inden for denne kolonne.
Mindst opgave
{
"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": []
}Fuld opgave med alle felter
{
"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 }
]
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | — | Unique task identifier (UUID eller stabil slug) |
columnId | string | Yes | — | Identifikation af kolonne, som denne opgave tilhører |
position | integer | Yes | — | 0-baseret sorteringsorden i kolonne |
title | string | Yes | — | Opgaveopgave (1280 tegn) |
description | string | No | "" | Længere beskrivelse af Markdown-kompatibel |
priority | enum "low""medium""high""critical" | No | medium | Udfordringsvurdering |
tags | string[] | No | [] | Fritforms mærkningsstrenge til filtrering og gruppering |
assigneeIds | string[] | No | [] | Medlems-ID'er for personer, der er tildelt denne opgave |
mentionMemberIds | string[] | No | [] | Medlems-ID'er, der er nævnt (anmeldt) i denne opgave |
estimatePoints | integer|null | No | null | Antallet af præcise punkter (Fibonacci: 1, 2, 3, 5, 8, 13.) |
dueDate | string|null | No | null | ISO 8601 datoen: YYYY-MM-DD |
plannedStartAt | string|null | No | null | ISO 8601 dato og tid: planlagt start |
plannedEndAt | string|null | No | null | ISO 8601 datotid: planlagt slut |
timeboxMinutes | integer|null | No | null | Fokus-sessions længde til timeboxing |
isCompleted | boolean | No | false | Markerer opgaven som færdig (tilføj en overgang i brugervenligheden) |
archivedAt | string|null | No | null | ISO 8601 datotid, hvor opgaven blev arkiveret. Arkiverede opgaver er skjulte for brættet |
checklist | object[] | No | [] | Bestemmelser i kontrollisten for underopgaver (se afsnit Kontrolliste) |
Kontrolliste
Hver opgave understøtter en flad liste over kontrollisteelementer lette underopgaver, der kan mærkes individuelt uden at skabe separate opgaver.
"checklist": [
{ "title": "Design mockup", "isDone": true },
{ "title": "Code review", "isDone": false },
{ "title": "Deploy to prod", "isDone": false }
]| Field | Type | Required | Default | Description |
|---|---|---|---|---|
title | string | Yes | — | Kontrolliste-artikkelmærkning (1255 tegn) |
isDone | boolean | Yes | — | Om dette element er afregnet |
Afsnit om brugerdefinerede notater
Alt mellem <!-- KANBAN:CUSTOM:START --> og <!-- KANBAN:CUSTOM:END --> er dit scratchpad. Det understøtter fuld Markdown og Mermaid diagrammer. Indholdet er aldrig analyseret af brættemotor det vises kun i fliken Forhåndsvisning.
<!-- 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
Brug afsnittet Tilpassede for sprint noter, team links, Gantt diagrammer, arkitektur diagrammer alt hvad du ønsker synligt ved siden af dine bord data.
Prioritetskrav
Feltet priority accepterer præcis en af fire værdier. Hvert kort til en særskilt logo farve i brugergrænsefladen:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
low | enum value | No | — | - Det er ikke særlig akut. Afstillet i grå. |
medium | enum value | No | — | - Det er standard. Anført i amber/gul. Omgå prioriterede standarder til dette. |
high | enum value | No | — | - Det er vigtigt. Vi ser den i orange. |
critical | enum value | No | — | - Jeg blokerer. Anført i rød/roser. |
Arkiveringsopgaver
For at arkivere en opgave, indstille sit archivedAt felt til en ISO datetime streng. Arkiverede opgaver er udelukket fra det aktive bord, men bevaret i historien.
{
"id": "task-old",
"columnId": "col-1",
"position": 99,
"title": "Old completed task",
"archivedAt": "2025-01-10T14:30:00.000Z",
...
}Note
ArkiveretAt-indstilling til null-un-archives-opgaven. I det forskellige resumé vises opgaverToArchive, når du anvender et markdown snapshot, der arkiverer opgaver, der er i øjeblikket aktive på brættet.
Tørr- og diagnostik
Funktionen Dry- run validerer din markdown uden at anvende ændringer. Backend returnerer en diffSummary (hvad ville ændre sig) og et diagnostics-array med en liste over eventuelle fejl eller advarsler.
Succesfuldt svar på tørrbane
{
"ok": true,
"dryRun": true,
"diagnostics": [],
"diffSummary": {
"columnsCreated": 1,
"columnsTouched": 2,
"tasksCreated": 3,
"tasksTouched": 5,
"tasksToArchive": 0
}
}Tørr-run med fejl
{
"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
}
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
code | string | Yes | — | Maskinlæselig fejlkoder (f.eks. ukendt_kolonne_id) |
message | string | Yes | — | En af de vigtigste aspekter af dette spørgsmål er: |
line | integer | Yes | — | Tilsvarende linjenummer i det nedskæringsdokument |
severity | enum "error""warning" | Yes | — | Enten "fejl" (blokker gælder) eller "varsel" (indkomst gælder) |
Fejlblok Apply
Hvis diagnostikken indeholder noget element med sværhedsgrad: "fejl", vil Apply-operationen nægte at fortsætte. Advarsler er rådgivende og blokerer ikke.
Anbefalet arbejdsproces
Følg denne strøm, når du redigerer brættet via Markdown:
- Åbn Markdown-panelet på dit bord
- Redigere JSON i Struktureret blok tilføje/modificere kolonne eller opgaver
- Klik på Dry-run for at validerere uden at ændre noget
- Forklar eventuelle fejl i diagnoselisten
- Klik på Apply for at foretage ændringer i live-bordet
- Brug Download til at gemme en lokal
.mdbackup
Versionkontroltip
Fordi dokumentet er almindelig tekst, kan du indsætte det i et Git-repository, forskellige versioner og gendanne tidligere bordtilstande ved at anvende et ældre snapshot igen.