Create, validate, and troubleshoot Mermaid.js diagrams. Use when generating flowcharts, sequence diagrams, class diagrams, ER diagrams, Gantt charts, state diagrams, or any visualization. Handles diagram validation, syntax errors, broken diagrams, and automatic repair. Trigger terms - mermaid, diagram, flowchart, sequence, class diagram, ER diagram, entity relationship, state machine, gantt, visualization, chart, graph.
/plugin marketplace add rp1-run/rp1/plugin install rp1-run-rp1-base-plugins-base@rp1-run/rp1This skill is limited to using the following tools:
EXAMPLES.mdreference.mdscripts/README.mdscripts/validate_mermaid.shCreate valid, well-formed Mermaid.js diagrams with automatic validation and error repair guidance.
Activate this skill when:
Trigger phrases: "create a diagram", "draw a flowchart", "visualize this process", "sequence diagram for", "ER diagram", "class diagram", "fix this mermaid", "validate diagram"
CRITICAL: Every diagram MUST be validated before being considered complete.
# Validate from stdin (recommended for inline diagrams)
echo 'flowchart TD
A --> B' | plugins/base/skills/mermaid/scripts/validate_mermaid.sh
# Using heredoc for multi-line
plugins/base/skills/mermaid/scripts/validate_mermaid.sh <<'EOF'
flowchart TD
A --> B
B --> C
EOF
# Validate single .mmd file
plugins/base/skills/mermaid/scripts/validate_mermaid.sh /path/to/diagram.mmd
# Validate all diagrams in markdown file
plugins/base/skills/mermaid/scripts/validate_mermaid.sh /path/to/document.md
# Get structured JSON output for programmatic use
echo 'flowchart TD; A-->B' | plugins/base/skills/mermaid/scripts/validate_mermaid.sh --json
Success:
PASS stdin: Valid
Failure (text mode):
FAIL stdin: Invalid
Category: ARROW_SYNTAX
Error Line: 2
Error: Parse error on line 2...
Failure (JSON mode):
{
"valid": false,
"diagram_index": 1,
"markdown_line": 0,
"error": {
"raw": "Parse error on line 2...",
"line": 2,
"category": "ARROW_SYNTAX",
"context": "A -> B"
}
}
The validation script automatically categorizes errors for guided repair. See EXAMPLES.md for detailed examples of each category.
| Category | Description | Quick Fix |
|---|---|---|
ARROW_SYNTAX | Invalid arrow for diagram type | Replace -> with --> in state/flowchart |
QUOTE_ERROR | Special characters in unquoted labels | Wrap label in double quotes |
CARDINALITY | ER diagram relationship errors | Use valid notation: ||--o{ |
LINE_BREAK | Missing newlines between statements | Each statement on its own line |
DIAGRAM_TYPE | Misspelled or missing diagram type | Correct spelling, add declaration |
NODE_SYNTAX | Unbalanced brackets/braces | Match all opening and closing brackets |
ARROW_SYNTAX: Check diagram type and use correct arrows:
-->, ---, ==>, -.->, --o, --x--> only (not ->)->>, -->>, -x, --x, -), --)QUOTE_ERROR: Quote labels containing:
["Start Process (init)"]["Time: 10:30 AM"]["Value [optional]"]CARDINALITY: Use proper ER notation:
||--o{||--|||o--o|LINE_BREAK: Separate statements:
sequenceDiagram
Alice->>Bob: Hello
Bob->>Alice: Hi
DIAGRAM_TYPE: Valid types:
flowchart, graph, sequenceDiagram, classDiagram, stateDiagram, stateDiagram-v2, erDiagram, gantt, pie, journey, gitGraph, mindmap, timeline, quadrantChart, xychart-beta, block-beta, sankey-beta, kanban, radar-beta
NODE_SYNTAX: Balance all brackets:
[text](text){text}([text]){{text}}For bulk diagram repair across markdown files, use the mermaid-fixer agent via the /fix-mermaid command:
# Fix all diagrams in a markdown file
/fix-mermaid path/to/document.md
# Fix a single diagram from stdin
/fix-mermaid -
The fixer agent:
Placeholder format for unfixable diagrams:
<!-- MERMAID FIX NEEDED: {diagram_type}
Error: {error_message}
Line: {line_number}
Attempts: 3
Original diagram could not be auto-repaired.
Please fix manually and remove this comment block.
-->
--json flag for structured outputWhen presenting diagrams to users:
## Diagram Title
Brief description of what the diagram represents.
\`\`\`mermaid
flowchart TD
A[Start] --> B[Process]
B --> C[End]
\`\`\`
**Validation Status**: Validated successfully
| Type | Use Case | Declaration |
|---|---|---|
| Flowchart | Process flows, decision trees | flowchart TD/LR/RL/BT |
| Sequence | API interactions, message flows | sequenceDiagram |
| Class | Object relationships, architecture | classDiagram |
| ER | Database schemas, data models | erDiagram |
| State | State machines, workflow states | stateDiagram-v2 |
| Gantt | Project timelines, schedules | gantt |
| Git Graph | Branch strategies, commit history | gitGraph |
| Pie | Proportional data | pie |
| Journey | User experience flows | journey |
| Mindmap | Hierarchical concepts | mindmap |
| Timeline | Chronological events | timeline |
| Quadrant | 2D categorization | quadrantChart |
| XY Chart | Bar/line charts | xychart-beta |
| Block | Grid layouts | block-beta |
| Sankey | Flow quantities | sankey-beta |
| Kanban | Task boards | kanban |
| Radar | Multi-axis comparison | radar-beta |
# Text output (default)
echo 'diagram' | plugins/base/skills/mermaid/scripts/validate_mermaid.sh
# JSON output
echo 'diagram' | plugins/base/skills/mermaid/scripts/validate_mermaid.sh --json
# Markdown file
plugins/base/skills/mermaid/scripts/validate_mermaid.sh document.md
Simple flowchart:
flowchart TD
A[Start] --> B{Decision}
B -->|Yes| C[Action]
B -->|No| D[End]
Sequence diagram:
sequenceDiagram
Client->>Server: Request
Server-->>Client: Response
ER diagram:
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
A diagram is complete when:
Create employment contracts, offer letters, and HR policy documents following legal best practices. Use when drafting employment agreements, creating HR policies, or standardizing employment documentation.