mermaid-diagrams
Scannednpx machina-cli add skill ccheney/robust-skills/mermaid-diagrams --openclawMermaid Diagrams
Generate diagrams in markdown that render in GitHub, GitLab, VS Code, Obsidian, Notion.
Quick Start
```mermaid
flowchart LR
A[Start] --> B{Decision}
B -->|Yes| C[Action]
B -->|No| D[End]
```
Quick Decision Tree
What to visualize?
├─ Process, algorithm, decision flow → flowchart
├─ API calls, service interactions → sequenceDiagram
├─ Database tables, relationships → erDiagram
├─ OOP, type hierarchy, domain model → classDiagram
├─ State machine, lifecycle → stateDiagram-v2
├─ System architecture, services → flowchart + subgraphs (or C4Context)
├─ Project timeline, sprints → gantt
├─ User experience, pain points → journey
├─ Git branches → gitGraph
├─ Data distribution → pie
└─ Priority matrix → quadrantChart
Diagram Types
| Type | Declaration | Best For |
|---|---|---|
| Flowchart | flowchart LR/TB | Processes, decisions, data flow |
| Sequence | sequenceDiagram | API flows, service calls |
| ER | erDiagram | Database schemas |
| Class | classDiagram | Types, domain models |
| State | stateDiagram-v2 | State machines |
| Gantt | gantt | Project timelines |
| Journey | journey | User experience |
| C4 | C4Context | System architecture |
| Git | gitGraph | Branch visualization |
Common Patterns
System Architecture
flowchart LR
subgraph Client
Browser & Mobile
end
subgraph Services
API --> Auth & Core
end
subgraph Data
DB[(PostgreSQL)]
end
Client --> API
Core --> DB
API Request Flow
sequenceDiagram
autonumber
Client->>+API: POST /orders
API->>Auth: Validate
Auth-->>API: OK
API->>+DB: Insert
DB-->>-API: ID
API-->>-Client: 201 Created
Database Schema
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
USER { uuid id PK; string email UK }
ORDER { uuid id PK; uuid user_id FK }
State Machine
stateDiagram-v2
[*] --> Draft
Draft --> Submitted : submit()
Submitted --> Approved : approve()
Submitted --> Rejected : reject()
Approved --> [*]
Syntax Quick Reference
Flowchart Nodes
[Rectangle] (Rounded) {Diamond} [(Database)] [[Subroutine]]
((Circle)) >Asymmetric] {{Hexagon}}
Flowchart Edges
A --> B # Arrow
A --- B # Line
A -.-> B # Dotted arrow
A ==> B # Thick arrow
A -->|text| B # Labeled
Sequence Arrows
->> # Solid arrow (request)
-->> # Dotted arrow (response)
-x # X end (async)
-) # Open arrow
ER Cardinality
||--|| # One to one
||--o{ # One to many
}o--o{ # Many to many
Best Practices
- Choose the right type — Use decision tree above
- Keep focused — One concept per diagram
- Use meaningful labels — Not just A, B, C
- Direction matters —
LRfor flows,TBfor hierarchies - Group with subgraphs — Organize related nodes
Reference Documentation
| File | Purpose |
|---|---|
| references/FLOWCHARTS.md | Nodes, edges, subgraphs, styling |
| references/SEQUENCE.md | Participants, messages, activation |
| references/CLASS-ER.md | Classes, ER diagrams, relationships |
| references/STATE-JOURNEY.md | States, user journeys |
| references/DATA-CHARTS.md | Gantt, Pie, Timeline, Quadrant |
| references/ARCHITECTURE.md | C4, Block, Kanban |
| references/CHEATSHEET.md | All syntax quick reference |
Resources
- Official Documentation: https://mermaid.js.org
- Live Editor: https://mermaid.live
- GitHub Repository: https://github.com/mermaid-js/mermaid
- GitHub Markdown Support: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams
- GitLab Markdown Support: https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts
Source
git clone https://github.com/ccheney/robust-skills/blob/main/skills/mermaid-diagrams/SKILL.mdView on GitHub Overview
mermaid-diagrams automatically suggests diagrams when explaining complex systems. It triggers on diagrams, charts, visualizations, flowcharts, sequence diagrams, architecture diagrams, ER diagrams, state machines, Gantt charts, mindmaps, C4, class diagrams, and git graphs. It generates diagrams in Markdown that render in GitHub, GitLab, VS Code, Obsidian, and Notion.
How This Skill Works
When you describe a concept, the skill maps it to a Mermaid type (flowchart, sequenceDiagram, erDiagram, classDiagram, stateDiagram-v2, gantt, journey, C4Context, gitGraph) and returns a ready-to-render Markdown block. It utilizes common patterns like System Architecture, API Request Flow, Database Schema, and State Machine examples to illustrate the appropriate diagram, which you can paste into your Markdown editor.
When to Use It
- Explaining code behavior or API interactions (use sequenceDiagram)
- Modeling database schemas and relationships (erDiagram)
- Mapping system architecture or service interactions (flowchart or C4Context)
- Representing a state machine or lifecycle (stateDiagram-v2)
- Planning projects or sprints with timelines (gantt)
Quick Start
- Step 1: Decide what you want to visualize and pick a Mermaid type (flowchart, sequenceDiagram, erDiagram, etc.).
- Step 2: Create a Markdown code block with ```mermaid and paste your diagram syntax.
- Step 3: Render the diagram in your Markdown tool (GitHub, GitLab, VS Code, Obsidian, Notion) and iterate.
Best Practices
- Choose the right type — follow the Quick Decision Tree to match the visualization.
- Keep focused — one concept per diagram
- Use meaningful labels — not just A, B, C
- Direction matters — LR for flows, TB for hierarchies
- Group with subgraphs — organize related nodes
Example Use Cases
- API Request Flow: sequenceDiagram showing Client → API → Auth → DB
- System Architecture: flowchart with Client, API, Core, and DB interactions
- Database Schema: erDiagram illustrating USER and ORDER relationships
- State Machine: order lifecycle from Draft to Approved to [*]
- Git History: gitGraph visualization of branches and merges