Mermaid skill
Generate Mermaid diagrams as code (.mmd) and export to PNG/SVG/PDF with mmdc. Use when the user wants a diagram — flowchart, sequence, class, ER, state, gantt, git graph, architecture, timeline, mindmap — proactively when explaining a system with 3+ components, a runtime flow, a schema, or a lifecycle, and when another skill (e.g. blueprint) needs a diagram authored or exported to an image.From its SKILL.md
npx -y skills add Yassimba/loom --skill mermaid-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.2 KB, as published. Nobody here has run it
Mermaid Diagrams
Author .mmd text files and compile them to images with mmdc. Mermaid lays everything out automatically — no coordinates — and the text source lives in git and embeds in Markdown.
Route elsewhere when the request needs: pixel-precise placement, branded icons, or heavy styling → drawio; a hand-drawn aesthetic → excalidraw/tldraw; a freeform whiteboard → tldraw; strict conventional UML notation → plantuml.
Setup
mmdc renders through Puppeteer and needs a headless Chrome:
npm install -g @mermaid-js/mermaid-cli
npx puppeteer browsers install chrome-headless-shell # mmdc has no bundled browser
Could not find Chrome is a toolchain failure, never a diagram error. mmdc --version passes without Chrome, and a perfectly valid .mmd still fails to compile. Install the browser above or set PUPPETEER_EXECUTABLE_PATH to a system Chrome; leave the .mmd alone.
Workflow
-
Author — pick the type from the shape of the content:
The content is… Type steps, branches, dependencies flowchartwho calls whom, in what order sequenceDiagramtables and relations / types and inheritance erDiagram/classDiagramstatuses one thing moves through stateDiagram-v2deployed services and their wiring architecture-betaschedule / branch history / proportions / idea tree gantt/gitGraph/pie/mindmapevents over time / effort-impact grid / plotted data timeline/quadrantChart/xychart-betaOne diagram answers one question — past ~20 nodes, split by concern into separate
.mmds instead of cramming. Syntax references, consult when unsure: FLOWCHART · SEQUENCE · CLASS-ER · ARCHITECTURE (architecture-beta— newer syntax, read before first use) · OTHER-TYPES (state, gantt, gitGraph, pie, mindmap, journey, timeline, quadrant, xychart, C4). Done when every node, participant, and label names a real thing from the content being diagrammed — no placeholders. -
Compile — the compile is the syntax check; a parse error is a bug in the
.mmd, fix and re-compile until it renders:mmdc -i diagram.mmd -o diagram.png -w 2048Themes:
-t default|dark|neutral|forest(baseworks only inside a%%{init: {'theme':'base'}}%%directive). SVG/PDF: same command with.svg/.pdfoutput. -
Self-check (vision) — a clean compile only proves the syntax; read the exported PNG and judge it as its audience will. Mermaid positions everything itself, so look for content defects, not overlaps:
Check What to look for Fix Label truncation Node / edge text clipped Shorten the label, or wrap with <br/>Cramped density Nodes crammed together; tangled lines Flip direction ( TD↔LR), split intosubgraphs, or reduce nodesWrong aspect Far too wide or too tall to read Change flowchart TD↔LR(or setdirectionin class/state)Edge spaghetti Many crossings, hard to follow Reorder declarations so connected nodes sit adjacent; group with subgraphWrong diagram type Type doesn't suit the content Re-pick from the step-1 table Low contrast Text blends into the node fill classDef(FLOWCHART § Styling) or-tthemeRe-compile after every fix. Max 2 self-check rounds, then show the user regardless. No vision available → skip straight to the review loop.
-
Review loop — show the image, apply the minimal
.mmdedit per request, re-compile. Overwrite the same.mmd/.pngeach round — nov1,v2, … After 5 rounds, suggest the user fine-tune at mermaid.live. -
Report — give the user the
.mmdand image paths.
Gotchas
| Symptom | Fix |
|---|---|
| Parse error on a label with special chars | Quote it: A["Label: value"] |
| Parse error on a subgraph name with spaces | Quote it: subgraph "My Layer" |
Maximum text size in diagram exceeded | Split the diagram; last resort -c config.json {"maxTextSize": 200000} |
| Chrome crashes in CI / as root | -p puppeteer.json with {"args": ["--no-sandbox"]} |
Architecture icons missing / logos: name not found | Register the pack at compile time — ARCHITECTURE § Icons |
| Blank or tiny PNG | Add -w 2048 |