Mermaid Diagrams
Create effective, syntactically valid mermaid diagrams for product documents.
When to Use
- Creating mermaid diagrams for PRDs, specs, roadmaps, or stakeholder presentations
- Choosing which of 15 diagram types fits a specific communication need
- Debugging mermaid code that won't render or renders incorrectly
- Reviewing diagrams for clarity, accuracy, and accessibility
When NOT to Use
- Exporting diagrams to image files (PNG/SVG) - that's a rendering tool concern
- Using non-mermaid diagramming tools (Figma, Lucidchart, draw.io)
- Creating purely decorative visuals with no informational purpose
The Cardinal Rule
Don't diagram what a list can say.
Diagrams earn their place when they reveal relationships, branching, or flow that prose flattens. Before creating any diagram, ask:
Does this show branching, relationships, or flow that a list or table would flatten?
- Yes → proceed with a diagram
- No → use a numbered list, bullet list, or table instead
A 5-step linear process is a list. A 5-step process with two decision points and a retry loop is a diagram.
Diagram Selection Guide
| I need to show... | Use | Also consider |
|---|---|---|
| A decision or approval process | Flowchart | State |
| Multi-service or multi-party interactions | Sequence | Flowchart |
| Feature lifecycle or status transitions | State | Flowchart |
| Work stages or pipeline status | Kanban | State |
| Release or sprint timeline with dependencies | Gantt | Timeline |
| Version history or chronological milestones | Timeline | Gantt |
| 2D prioritization (effort/impact, risk/value) | Quadrant | - |
| Allocation breakdown or composition | Pie | Treemap |
| Problem decomposition or brainstorming | Mindmap | - |
| Domain models or data relationships | ER | Class |
| API or object contracts | Class | ER |
| System topology or infrastructure | Architecture | Flowchart |
| Flow quantities or budget allocation | Sankey | Pie |
| Hierarchical proportional data | Treemap | Pie |
| Trends or time-series metrics | XY-Chart | - |
For worked examples organized by PM task, see references/pm-use-cases.md.
For full syntax and options per type, see references/diagram-catalog.md.
Syntax Validity Principles
Six rules that prevent most rendering failures:
- Quote labels - Any label containing spaces, parentheses, brackets, colons, commas, or reserved words must be quoted with double quotes
- Escape special characters - Characters with mermaid or markdown meaning (
>,<,-at line start,#) need escaping or quoting - Declare before referencing - Define a node before using it in an edge; referencing an undeclared node causes silent failures in some types
- Respect limits - Each diagram type has a maximum node/participant count beyond which readability collapses (see
references/diagram-catalog.mdfor per-type limits) - Comment your intent - Use
%%comments to document non-obvious choices (why this layout direction, why this grouping) - Test before shipping - Paste into a mermaid renderer (mermaid.live, VS Code preview, or your target environment) and verify it renders correctly
For the complete syntax reference, see references/syntax-guide.md.
Instructions
- Identify what you're communicating - What relationship, flow, hierarchy, or proportion needs to be visible? Who is the audience?
- Apply the cardinal rule - Confirm a diagram adds value over a list or table
- Select a diagram type - Use the selection guide above, browse
references/pm-use-cases.mdby task, or browsereferences/diagram-catalog.mdby type - Plan the diagram - Fill out the planning worksheet in
references/TEMPLATE.md: purpose, audience, node inventory, type rationale - Write the mermaid code - Follow
references/syntax-guide.mdrules; start with the minimal syntax example fromreferences/diagram-catalog.mdand expand - Validate - Run through the quality checklist below
- Embed - Place the validated mermaid code block in your document
Output Contract
- Planning artifact: A completed diagram planning worksheet (
references/TEMPLATE.md) - Final output: A syntactically valid mermaid code block embedded in the target document
- Quality gate: All items in the quality checklist pass
Quality Checklist
- Diagram renders without error in target environment
- Cardinal rule satisfied - a list or table would not communicate this more clearly
- No linear sequences without branching, relationships, or hierarchy
- All labels with spaces or special characters are properly quoted
- Special characters escaped where needed
- Node/participant count within type-specific limits
- Colors are accessible (WCAG AA 3:1 contrast minimum, black text on light backgrounds)
- Color is never the sole differentiator - shapes and labels also distinguish elements
- Diagram has a descriptive title or surrounding prose context
-
%%comments document any non-obvious layout or grouping choices
References
| File | Purpose |
|---|---|
references/TEMPLATE.md | Diagram planning worksheet - fill out before writing mermaid code |
references/EXAMPLE.md | Worked example: PM creating 4 diagrams for a product launch |
references/diagram-catalog.md | All 15 diagram types: syntax, PM examples, limits, pitfalls |
references/pm-use-cases.md | PM task → diagram type mapping with mini worked examples |
references/syntax-guide.md | Complete syntax validity rules, escaping, styling, and validation checklist |