mermaid-diagram
Skill16 starsChanged 6 months agoMITView on GitHub
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.
14 other projects use a version of this, 4 of them edited.
Adopted by
Most recently taken up by
- rccsousa/skillstheir own version, first seen Nov 8, 2026
- yktsnet/dotfiles-publictheir own version, first seen Nov 5, 2026
- nek1987/auto-agent-harnesstheir own version, first seen Oct 11, 2026
- j99way99/claude-skillstheir own version, first seen Sep 16, 2026
- talhaMah56/claude_skillsedited, first seen Sep 12, 2026
- wanshuiyin/Auto-claude-code-research-in-sleepedited, first seen Jul 15, 2026
Used with
Projects with it also use deepxiv, invention-structuring and 6 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
raja21068Skilldeepxiv
Search and progressively read open-access academic papers through DeepXiv. Use when the user wants layered paper access, section-level reading, trending papers, or DeepXiv-backed literature retrieval.
Also in 4 projects that use this
raja21068Skillinvention-structuring
Structure a raw invention idea into a formal invention disclosure. Use when user says \"构建发明\", \"structure invention\", \"发明构建\", \"invention disclosure\", or wants to formalize a rough idea into a patent-ready structure.
Also in 3 projects that use this
- +6 more from raja21068
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 4
- wanshuiyin/Auto-claude-code-research-in-sleep★ 19k35% same
- Chanw-research/claude-code-paper-writing★ 4235% same
- raja21068/AutoResearch★ 235% same
- talhaMah56/claude_skills★ 035% same
Wrote their own version · 10
- shiwenwen/hope-agent★ 1.9ksame name
- georgekhananaev/claude-skills-vault★ 28same name
- mjunaidca/robolearn★ 9same name
- nek1987/auto-agent-harness★ 4same name
- amjadjibon/skills★ 2same name
- j99way99/claude-skills★ 1same name
- rccsousa/skills★ 1same name
- romain325/skills★ 1same name
- yktsnet/dotfiles-public★ 1same name
- AsuraNale/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- argument-stress-testSkill
- citation-auditSkill
- comm-lit-review-claude-singleSkill
- comparative-lawSkill
- exa-searchSkill
- feishu-notifySkill
- figure-descriptionSkill
- figure-specSkill
- formula-derivationSkill
- grant-proposalSkill
- legal-writingSkill
- llm-wikiSkill
- mermaid-diagramSkill
- novelty-checkSkill
- overleaf-syncSkill
- paper-claim-auditSkill
- paper-compileSkill
- paper-figureSkill
- paper-illustrationSkill
- paper-planSkill
- paper-posterSkill
- paper-slidesSkill
- paper-writeSkill
- paper-writingSkill
- prism-pipelineSkill
- proof-checkerSkill
- proof-writerSkill
- rebuttalSkill
- research-litSkill
- research-pipelineSkill
- research-refine-pipelineSkill
- research-refineSkill
- research-reviewSkill
- research-wikiSkill
- semantic-scholarSkill
- comm-lit-reviewSkill
- feishu-notifySkill
- formula-derivationSkill
- grant-proposalSkill
- novelty-checkSkill
- paper-compileSkill
- paper-figureSkill
- paper-illustrationSkill
- paper-planSkill
- paper-posterSkill
- paper-slidesSkill
- paper-writeSkill
- paper-writingSkill
- proof-writerSkill
- rebuttalSkill
- research-litSkill
- research-pipelineSkill
- research-refine-pipelineSkill
- research-refineSkill
- research-reviewSkill
- statute-case-mapperSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 16 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
Read the corresponding Mermaid syntax reference below
- Distinctive: line 29
If the diagram involves mathematical notation, apply the math syntax rules from the Math Formulas in Diagrams section
- Very specific: line 75
Naming convention: use a descriptive kebab-case name derived from the request, such as auth-flow, system-architecture, or database-er.
- Distinctive: line 93
Read the error carefully
- Distinctive: line 100
After successful rendering, Codex MUST read the generated PNG and perform a strict review:
- Very specific: line 150
If the verdict is FIX, apply corrections to both .mmd and .md, re-render, and re-review until ACCEPT or MAX_ITERATIONS is reached.
- Very specific: line 170
When generating architecture-beta diagrams, apply these layout techniques for complex diagrams:
- Distinctive: line 176
Instead of connecting services directly:
- Distinctive: line 202
When the diagram is intended for academic papers, apply these style standards:
- Very specific: line 267
Use \text{} for non-math text inside $$
- Distinctive: line 305
Use math when the diagram is for academic or technical audiences and precision matters
- Distinctive: line 306
Use plain text when the diagram is for general audiences or math would add clutter
- Distinctive: line 307
Default to KaTeX automatically if the request already contains math notation
- Very specific: line 313
Always verify rendering with mmdc
- Very specific: line 321
Use semantic node naming, not A, B, C
- Very specific: line 323
Use <br/> for line breaks inside node labels, never \n
- Distinctive: line 324
Avoid special characters that break Mermaid parsing unless properly quoted
- Very specific: line 337
Always save files to figures/
- Very specific: line 338
Always generate both .mmd and .md
- Distinctive: line 339
Always read the relevant syntax guidance before generating code
- Distinctive: line 340
Always verify syntax before accepting
- Distinctive: line 341
Always review the rendered PNG
- Distinctive: line 343
Verify every arrow direction
- Distinctive: line 344
Verify every block content
- Distinctive: line 347
Use descriptive kebab-case file names
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Mermaid Diagram Generator
Generate high-quality Mermaid diagram code based on user requirements, with file output and verification.
Constants
- OUTPUT_DIR =
figures/— Output directory for generated files - MAX_ITERATIONS = 3 — Maximum refinement rounds for syntax or layout issues
Workflow: MUST EXECUTE ALL STEPS
Step 0: Pre-flight Check
mkdir -p figuresStep 1: Understand Requirements & Select Diagram Type
Parse the input: $ARGUMENTS
- Analyze the request and choose the most suitable diagram type
- Read the corresponding Mermaid syntax reference below
- If the diagram involves mathematical notation, apply the math syntax rules from the Math Formulas in Diagrams section
- Identify all components, connections, and data flow
- Plan the diagram structure before writing code
Step 2: Read Documentation
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.
| 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) |
Step 3: Generate Mermaid Code & Save Files
Generate the Mermaid code and save two files:
File 1: figures/<diagram-name>.mmd
The .mmd file contains only raw Mermaid code, no markdown fences.
File 2: figures/<diagram-name>.md
The .md file wraps the same Mermaid code in a mermaid code block for preview rendering, plus a short title and description.
Naming convention: use a descriptive kebab-case name derived from the request, such as auth-flow, system-architecture, or database-er.
Step 4: Verify Mermaid Syntax (MANDATORY)
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"
fiIf verification fails:
- Read the error carefully
- Fix the syntax issue in both
.mmdand.md - Re-run verification
- Repeat up to
MAX_ITERATIONS
Step 5: Codex STRICT Visual Review & Scoring (MANDATORY)
After 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
#### 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
#### B. Arrow Correctness Verification
- [ ] Every arrow points to the correct target
#### C. Block Content Verification
- [ ] 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
1. [issue] -> [fix]
### Score: X/10
### Verdict
- [ ] ACCEPT
- [ ] FIXIf the verdict is FIX, apply corrections to both .mmd and .md, re-render, and re-review until ACCEPT or MAX_ITERATIONS is reached.
Step 6: Final Output Summary
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>.pngArchitecture Diagram Best Practices
When generating architecture-beta diagrams, apply these layout techniques for complex diagrams:
Use Junctions for Layout Control
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:webapiRoute 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:webapiUse Edges out of Groups for Floating Components
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.
CVPR/ICLR/NeurIPS Style Guide (for Academic Diagrams)
When the diagram is intended for academic papers, apply these style standards:
Visual Standards
- Clean white background
- Sans-serif fonts
- Subtle coordinated color palette
- Print-friendly grayscale readability
- Thin professional borders
Layout Standards
- Horizontal flow for pipelines
- Clear grouping
- Consistent sizing
- Balanced whitespace
Arrow Standards (MOST CRITICAL)
- Thick strokes
- Clear arrowheads
- Dark colors
- Labeled arrows
- No crossings
- Correct direction
Color Palette (Academic Professional)
- Inputs: Green (
#10B981/#34D399) - Encoders: Blue (
#2563EB/#3B82F6) - Fusion: Purple (
#7C3AED/#8B5CF6) - Outputs: Orange (
#EA580C/#F97316) - Arrows: Dark gray (
#333333/#1F2937) - Background: White (
#FFFFFF)
What to Avoid
- Rainbow color schemes
- Thin hairline arrows
- Heavy shadows or glow effects
- 3D effects
- Decorative icons that add no meaning
- Tiny unreadable text
Math Formulas in Diagrams (KaTeX)
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.
Supported Diagram Types for Math
Math rendering with $$...$$ is supported in:
- Flowcharts — in node labels and edge labels
- Sequence Diagrams — in participant aliases, messages, and notes
Syntax Rules
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$$
Common Math Patterns
| 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}$$ |
Example: Attention Mechanism with Math
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 --> outputWhen to Use Math vs Plain Text
- Use math when the diagram is for academic or technical audiences and precision matters
- Use plain text when the diagram is for general audiences or math would add clutter
- Default to KaTeX automatically if the request already contains math notation
Gotchas
$$delimiters must be inside quoted strings- Very long formulas may overflow node boxes
- Always verify rendering with
mmdc
Code Quality Rules
Generated Mermaid code MUST:
- Have correct syntax that renders directly
- Have clear structure with proper indentation
- Use semantic node naming, not
A,B,C - Include styling when needed
- Use
<br/>for line breaks inside node labels, never\n - Avoid special characters that break Mermaid parsing unless properly quoted
Output Structure
figures/
├── <diagram-name>.mmd
├── <diagram-name>.md
└── <diagram-name>.pngKey Rules (MUST FOLLOW)
- Always save files to
figures/ - Always generate both
.mmdand.md - Always read the relevant syntax guidance before generating code
- Always verify syntax before accepting
- Always review the rendered PNG
- Never accept score < 9
- Verify every arrow direction
- Verify every block content
- Be specific in feedback
- Fix errors before accepting
- Use descriptive kebab-case file names
User requirements: $ARGUMENTS
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

