Mermaid Kanban Diagramming
Create Mermaid Kanban boards from plain text. Keep boards readable, consistent, and easy to update in Git.
Core Syntax Structure
Start every board with kanban, then define columns and tasks.
mermaid
kanban
backlog[Backlog]
task1[Write requirements]
task2[Draft API contract]
inProgress[In Progress]
task3[Implement endpoint]
review[Review]
task4[Run QA checks]
done[Done]
task5[Deploy]
Use this pattern:
- •
columnId[Column Label]for columns (label is optional). - •
taskId[Task Description]for tasks inside a column. - •Keep IDs short and stable so edits and diffs stay clean.
Task Metadata
Add metadata to a task with @{ ... }.
mermaid
kanban
inProgress[In Progress]
task42[Implement Kanban parser]@{ assigned: 'dana', ticket: 'PLAT-42', priority: 'High' }
Supported metadata fields:
- •
assigned: assignee name or handle. - •
ticket: ticket number or key. - •
priority: one ofNeutral,Very High,High,Low,Very Low.
Ticket Link Configuration
Set kanban.ticketBaseUrl in frontmatter so ticket metadata renders as links.
mermaid
---
config:
kanban:
ticketBaseUrl: "https://your-jira-domain.atlassian.net/browse/#TICKET#"
---
kanban
todo[To Do]
task7[Fix auth retry bug]@{ ticket: 'APP-117', priority: 'Very High' }
#TICKET# is replaced by each task's ticket value.
Workflow
- •Translate the user's workflow into 3-6 columns.
- •Normalize task IDs (for example
task1,task2) and concise labels. - •Add metadata only where it helps (owner, ticket, priority).
- •Apply
ticketBaseUrlwhen ticket links are required. - •Validate visually by checking indentation and bracket pairs.
Detailed Reference
Read references/kanban-diagrams.md for:
- •Syntax quick reference
- •Reusable board templates
- •Common parser failure patterns and fixes
Best Practices
- •Keep one board focused on one workflow.
- •Use consistent column names across documents.
- •Avoid overlong task labels; move detail to ticket systems.
- •Use metadata sparingly to preserve scanability.
- •Prefer stable IDs to reduce noisy diffs.
Common Pitfalls
- •Missing brackets in
columnId[Label]ortaskId[Label]. - •Wrong metadata format (must be
@{ key: 'value' }). - •Invalid
priorityvalue outside the supported set. - •Forgetting
#TICKET#inticketBaseUrl. - •Inconsistent indentation that makes structure hard to review.