Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate Mermaid diagrams from user requirements. Save .mmd and .md files to figures/ with syntax verification. Supports flowcharts, sequence diagrams, class diagrams, ER diagrams, Gantt charts, and many more diagram types.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-05 | ✓→✗ | ▼ Worse | 133% | 0% |
| case-06 | ✓→✗ | ▼ Worse | 810% | 0% |
Generate high-quality Mermaid diagram code based on user requirements, with file output and verification.
figures/ — Output directory for generated filesbashmkdir -p figures
Parse the input: $ARGUMENTS
Select the appropriate diagram type. Use built-in Mermaid knowledge first; if external documentation is needed and your environment provides it, fetch the up-to-date syntax reference.
Choose theme, colors, and layout before writing code. For academic diagrams, prefer clean white backgrounds, restrained colors, and readable labels over decorative styling.
| Type | Use Cases | | ---- | --------- | | Flowchart | Processes, decisions, steps | | Sequence Diagram | Interactions, messaging, API calls | | Class Diagram | Class structure, inheritance, associations | | State Diagram | State machines, state transitions | | ER Diagram | Database design, entity relationships | | Gantt Chart | Project planning, timelines | | Pie Chart | Proportions, distributions | | Mindmap | Hierarchical structures, knowledge graphs | | Timeline | Historical events, milestones | | Git Graph | Branches, merges, versions | | Quadrant Chart | Four-quadrant analysis | | Requirement Diagram | Requirements traceability | | C4 Diagram | System architecture | | Sankey Diagram | Flow, conversions | | XY Chart | Line charts, bar charts | | Block Diagram | System components, modules | | Packet Diagram | Network protocols, data structures | | Kanban | Task management, workflows | | Architecture Diagram | System architecture | | Radar Chart | Multi-dimensional comparison | | Treemap | Hierarchical data visualization | | User Journey | User experience flows | | ZenUML | Sequence diagrams (code style) |
Generate the Mermaid code and save two files:
figures/<diagram-name>.mmd — Raw Mermaid sourceThe .mmd file contains only raw Mermaid code, no markdown fences.
figures/<diagram-name>.md — Markdown with embedded MermaidThe .md file wraps the same Mermaid code in a mermaid code block for preview rendering, plus a short title and description.
Use a concise title in the .md wrapper that matches the generated diagram name.
Naming convention: use a descriptive kebab-case name derived from the request, such as auth-flow, system-architecture, or database-er.
Codex MUST verify the generated Mermaid code by running the Mermaid CLI (mmdc).
bashif command -v mmdc >/dev/null 2>&1; then mmdc -i figures/<diagram-name>.mmd -o figures/<diagram-name>.png -b transparent echo "Syntax valid — PNG rendered to figures/<diagram-name>.png" else npx -y @mermaid-js/mermaid-cli@latest -i figures/<diagram-name>.mmd -o figures/<diagram-name>.png -b transparent echo "Syntax valid — PNG rendered to figures/<diagram-name>.png" fi
If verification fails:
.mmd and .mdMAX_ITERATIONSAfter successful rendering, Codex MUST read the generated PNG and perform a strict review:
markdown## Codex's STRICT Review of <diagram-name> ### What I See [Describe the rendered diagram in detail] ### Files Generated - `figures/<diagram-name>.mmd` - `figures/<diagram-name>.md` - `figures/<diagram-name>.png` ### ═══════════════════════════════════════════════════════════════ ### STRICT VERIFICATION CHECKLIST (ALL must pass for score ≥ 9) ### ═══════════════════════════════════════════════════════════════ #### A. File Correctness - [ ] `.mmd` contains valid Mermaid syntax - [ ] `.md` wraps the Mermaid code in ```mermaid fences - [ ] `.mmd` and `.md` contain identical Mermaid code - [ ] Diagram renders without errors ASCII alias for automated checks: score >= 9. #### B. Arrow Correctness Verification (CRITICAL - any failure = score ≤ 6) ASCII alias for automated checks: CRITICAL - any failure = score <= 6. - [ ] Every arrow points to the correct target #### C. Block Content Verification (any failure = score ≤ 7) ASCII alias for automated checks: any failure = score <= 7. - [ ] Every block label is correct - [ ] Every block contains the intended content #### D. Completeness - [ ] All required components are present - [ ] All required connections are present - [ ] Labels are meaningful and match the request #### E. Visual Quality - [ ] Layout is clean and readable - [ ] Colors are professional - [ ] Text is readable at normal zoom - [ ] Spacing is balanced - [ ] Data flow is understandable within 5 seconds ### ═══════════════════════════════════════════════════════════════ ### Issues Found (BE SPECIFIC) 1. [issue] -> [fix] ### Score: X/10 ### Score Breakdown Guide: - 10: correct, readable, publication-ready - 9: minor polish only - 8: usable but one visual/layout weakness remains - 7: one content or block-label weakness remains - 6 or below: arrow direction, missing component, syntax, or semantic error ### Verdict - [ ] ACCEPT - [ ] FIX
If the verdict is FIX, apply corrections to both .mmd and .md, re-render, and re-review until ACCEPT or MAX_ITERATIONS is reached.
When accepted, present:
textMermaid diagram generated successfully. Files: figures/<diagram-name>.mmd figures/<diagram-name>.md figures/<diagram-name>.png To re-render manually: mmdc -i figures/<diagram-name>.mmd -o figures/<diagram-name>.png
When generating architecture-beta diagrams, apply these layout techniques for complex diagrams:
Think of the diagram as an invisible grid. Use junction nodes as virtual anchor points on that grid to precisely control placement. This is especially useful when a direct edge produces unexpected positioning.
Instead of connecting services directly:
textlb:R --> L:scim lb:R --> L:webapi
Route through junctions:
textjunction j_lb_r lb:R -- L:j_lb_r junction j_scim_l j_lb_r:T -- B:j_scim_l j_scim_l:R --> L:scim junction j_webapi_l j_lb_r:B -- T:j_webapi_l j_webapi_l:R --> L:webapi
For services that have no real logical connection but still need stable placement, use a junction combined with {group} to anchor them without inventing a semantic edge.
When the diagram is intended for academic papers, apply these style standards:
#10B981 / #34D399)#2563EB / #3B82F6)#7C3AED / #8B5CF6)#EA580C / #F97316)#333333 / #1F2937)#FFFFFF)Mermaid supports rendering mathematical expressions via KaTeX. When the diagram content involves formulas, equations, Greek letters, subscripts, superscripts, fractions, or matrices, use KaTeX notation instead of plain-text approximations.
Math rendering with $$...$$ is supported in:
$$ inside quoted strings:text A["$$x^2$$"] -->|"$$\\sqrt{x+3}$$"| B("$$\\frac{1}{2}$$")
$$ only around the math portion\text{} for non-math text inside $$| Concept | KaTeX Syntax | | ------- | ------------ | | Subscript | $$W_Q$$ | | Superscript | $$x^2$$ | | Fraction | $$\\frac{QK^T}{\\sqrt{d_k}}$$ | | Greek letters | $$\\alpha, \\beta, \\gamma$$ | | Square root | $$\\sqrt{d_k}$$ | | Summation | $$\\sum_{i=1}^{n} x_i$$ | | Matrix | $$\\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}$$ | | Softmax | $$\\text{softmax}(z_i)$$ | | Norm | $$\\|\\|x\\|\\|_2$$ | | Hat/tilde | $$\\hat{y}, \\tilde{x}$$ |
textflowchart TD Q["$$Q \\in \\mathbb{R}^{n \\times d_k}$$"] K["$$K \\in \\mathbb{R}^{n \\times d_k}$$"] V["$$V \\in \\mathbb{R}^{n \\times d_v}$$"] scores["$$\\frac{QK^T}{\\sqrt{d_k}}$$"] softmax["$$\\text{softmax}(\\cdot)$$"] output["$$\\text{Attention}(Q,K,V)$$"] Q --> scores K --> scores scores --> softmax softmax --> weighted["$$\\alpha V$$"] V --> weighted weighted --> output
$$ delimiters must be inside quoted stringsmmdcGenerated Mermaid code MUST:
A, B, C<br/> for line breaks inside node labels, never \ntextfigures/ ├── <diagram-name>.mmd ├── <diagram-name>.md └── <diagram-name>.png
figures/.mmd and .mdUser requirements: $ARGUMENTS
Other measured skills in the registry, with their headline benchmark lift.