home / skills / nickcrew / claude-cortex / mermaid-diagramming

mermaid-diagramming skill

/skills/mermaid-diagramming

This skill helps you create clear Mermaid diagrams for flowcharts, sequences, ERDs, and more to document systems effectively.

npx playbooks add skill nickcrew/claude-cortex --skill mermaid-diagramming

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
5.8 KB
---
name: mermaid-diagramming
description: >-
  Mermaid diagram creation covering flowcharts, sequence diagrams, ERDs, state
  machines, Gantt charts, and architecture views. Use when creating or updating
  technical diagrams in documentation.
version: 1.0.0
tags: [mermaid, diagrams, visualization, documentation]
triggers:
  - mermaid diagram
  - flowchart
  - sequence diagram
  - entity relationship diagram
  - state diagram
  - gantt chart
  - architecture diagram
  - class diagram
dependencies:
  skills: [documentation-production]
  tools: [Read, Write]
token_estimate: ~2500
---

# Mermaid Diagramming

Create clear, professional Mermaid diagrams for technical documentation. Covers all major
diagram types with both basic and styled variants, rendering guidance, and export recommendations.

## When to Use This Skill

- Creating flowcharts for process documentation or decision trees
- Drawing sequence diagrams for API interactions or system communication
- Building ERDs for database schema documentation
- Designing state machine diagrams for workflow states
- Producing Gantt charts for project timelines
- Documenting system architecture with C4 or network diagrams
- Adding visual aids to README files, ADRs, or design docs

## Quick Reference

| Resource | Purpose | Load when |
|----------|---------|-----------|
| `references/diagram-types.md` | Syntax, patterns, and code examples for every Mermaid diagram type | Choosing or building a diagram |

---

## Workflow Overview

```
Phase 1: Scope     → Identify what to visualize, audience, and diagram type
Phase 2: Draft     → Write base Mermaid code with correct syntax
Phase 3: Style     → Add theming, colors, and accessibility annotations
Phase 4: Deliver   → Provide rendering instructions and suggest iterations
```

---

## Phase 1: Scope

Before writing any code, clarify:

1. **What is the narrative?** The diagram should tell a story or answer a question.
2. **Who is the audience?** Developers need detail; stakeholders need overview.
3. **What entities and relationships exist?** List nodes and edges before drawing.
4. **Which diagram type fits?** Use the selection guide below.

### Diagram Type Selection

| If you need to show... | Use |
|------------------------|-----|
| Process flow, decisions, branching | `flowchart` |
| Interactions over time between systems/actors | `sequenceDiagram` |
| Data model and relationships | `erDiagram` |
| Object structure and inheritance | `classDiagram` |
| States and transitions | `stateDiagram-v2` |
| Project schedule and dependencies | `gantt` |
| Proportions or distribution | `pie` |
| Hierarchical idea mapping | `mindmap` |
| Events over time | `timeline` |
| System architecture layers | C4 context/container diagrams |
| Code version history | `gitGraph` |
| User experience flow | `journey` |

---

## Phase 2: Draft

### Structure Rules

1. **One concept per diagram** — split complex systems into multiple views
2. **Limit nodes** — keep under 15 nodes per diagram; split if larger
3. **Meaningful labels** — use descriptive text, not single letters
4. **Consistent direction** — prefer top-to-bottom (`TB`) or left-to-right (`LR`)
5. **Group related nodes** — use `subgraph` to cluster related elements

### Code Conventions

```mermaid
%% Always start with a comment describing the diagram's purpose
%% Use consistent quoting for labels with special characters
flowchart LR
    A["User Request"] --> B{"Auth Check"}
    B -->|Valid| C["Process Request"]
    B -->|Invalid| D["Return 401"]
```

- Use double quotes for labels containing special characters
- Add comments (`%%`) explaining non-obvious relationships
- Prefer `-->` for solid lines, `-.->` for dashed, `==>` for thick
- Use descriptive edge labels: `-->|"reason"| TargetNode`

---

## Phase 3: Style

### Theming

Apply consistent styling using `%%{init: ...}%%` directives:

```mermaid
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#4A90D9'}}}%%
flowchart TB
    A["Start"] --> B["End"]
```

### Node Styling

```mermaid
flowchart LR
    A["Normal"]
    B["Highlighted"]:::highlight
    classDef highlight fill:#f9f,stroke:#333,stroke-width:2px
```

### Accessibility

- Use high-contrast color combinations
- Do not rely on color alone to convey meaning — add labels and shapes
- Include alt text when embedding: `![Diagram description](path)`
- Provide a text summary alongside complex diagrams

---

## Phase 4: Deliver

### Always Provide

1. **Basic version** — clean, unstyled diagram that renders anywhere
2. **Styled version** — themed variant with colors and emphasis
3. **Rendering note** — where to preview (GitHub, Mermaid Live, VS Code extension)
4. **Suggestions** — complementary diagrams or next iterations

### Rendering Options

| Platform | Support |
|----------|---------|
| GitHub markdown | Native rendering in `.md` files |
| GitLab markdown | Native rendering |
| Mermaid Live Editor | `https://mermaid.live` for interactive editing |
| VS Code | Mermaid extension for preview |
| Docusaurus / MkDocs | Plugin-based rendering |

### Export Formats

- **SVG**: Best for web and docs (scalable, searchable text)
- **PNG**: Fallback for platforms without Mermaid support
- **PDF**: For print or formal documentation

---

## Best Practices

- **Start simple** — get the structure right before adding style
- **Test rendering** — verify on the target platform before committing
- **Version diagrams** — update diagrams when the underlying system changes
- **Colocate with docs** — keep diagrams in the same directory as related documentation
- **Use subgraphs** — group related nodes to reduce visual complexity

## Anti-Patterns

- Putting too many nodes in one diagram (split at 15+ nodes)
- Using single-letter node IDs without labels
- Relying on color alone to convey meaning
- Hard-coding pixel widths that break on different renderers
- Leaving diagrams out of date after system changes

Overview

This skill creates clear, professional Mermaid diagrams for documentation and design work. It supports flowcharts, sequence diagrams, ERDs, state machines, Gantt charts, architecture views, and styled variants. Use it to draft, style, and deliver diagrams that render reliably across platforms.

How this skill works

I guide you through scoping the narrative and audience, drafting concise Mermaid code, applying accessible styling, and producing deliverables with rendering and export recommendations. The workflow enforces structure rules (one concept per diagram, node limits, meaningful labels) and provides both basic and styled versions plus preview instructions. I also suggest complementary diagrams and iteration steps.

When to use it

  • Documenting process flows, decision trees, or onboarding steps
  • Mapping API interactions or cross-system sequences
  • Describing data models and relationships with ERDs
  • Visualizing workflow states and transitions
  • Creating project timelines with Gantt charts
  • Producing architecture views for design docs or ADRs

Best practices

  • Start simple: establish structure before adding style or colors
  • Limit diagrams to ~15 nodes; split complex systems into multiple views
  • Use meaningful labels and descriptive edge text, not single-letter IDs
  • Prefer consistent direction (TB or LR) and group related nodes with subgraphs
  • Ensure accessibility: high-contrast palettes, shapes and labels, and alt text
  • Test rendering on the target platform and export SVG for web use

Example use cases

  • Write a flowchart showing user signup, auth check, and error paths for README
  • Draft a sequence diagram for an API call between client, gateway, and service
  • Create an ERD for a new feature's database schema to include in design docs
  • Design a state machine for order processing with labeled transitions and guards
  • Produce a Gantt chart summarizing milestones and dependencies for a release plan

FAQ

What diagram types are supported?

All major Mermaid types: flowchart, sequenceDiagram, erDiagram, classDiagram, stateDiagram-v2, gantt, pie, mindmap, timeline, gitGraph, and C4-style architecture views.

How should I prepare before drafting a diagram?

Clarify the narrative and audience, list entities and relationships, choose the appropriate diagram type, and limit scope to one concept per diagram.