skills/skills-codex/mermaid-diagram/SKILL.md
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.
npx skillsauth add wanshuiyin/Auto-claude-code-research-in-sleep mermaid-diagramInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate high-quality Mermaid diagram code based on user requirements, with file output and verification.
figures/ — Output directory for generated filesmkdir -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).
if 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:
## 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:
Mermaid 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:
lb:R --> L:scim
lb:R --> L:webapi
Route through junctions:
junction 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:
Wrap math expressions in $$ inside quoted strings:
A["$$x^2$$"] -->|"$$\\sqrt{x+3}$$"| B("$$\\frac{1}{2}$$")
Node labels with math must be quoted
Mix text and math by placing $$ only around the math portion
Use \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}$$ |
flowchart 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 \nfigures/
├── <diagram-name>.mmd
├── <diagram-name>.md
└── <diagram-name>.png
figures/.mmd and .mdUser requirements: $ARGUMENTS
research
Generate a structured paper outline from review conclusions and experiment results. Use when user says \"写大纲\", \"paper outline\", \"plan the paper\", \"论文规划\", or wants to create a paper plan before writing.
research
Generate a structured paper outline from review conclusions and experiment results. Use when user says "写大纲", "paper outline", "plan the paper", "论文规划", or wants to create a paper plan before writing.
development
Get a deep critical review of research from an external reviewer backend (Codex or manual). Use when user says "review my research", "help me review", "get external review", or wants critical feedback on research ideas, papers, or experimental results.
research
Turn a vague research direction into a problem-anchored, elegant, frontier-aware, implementation-oriented method plan via iterative GPT-5.5 review. Use when the user says "refine my approach", "帮我细化方案", "decompose this problem", "打磨idea", "refine research plan", "细化研究方案", or wants a concrete research method that stays simple, focused, and top-venue ready instead of a vague or overbuilt idea.