✓ Verified 💻 Development ✓ Enhanced Data

Skill Mermaid Diagrams

Generate consistent, template-based Mermaid diagrams for technical content.

Rating
4.2 (391 reviews)
Downloads
47,756 downloads
Version
1.0.0

Overview

Generate consistent, template-based Mermaid diagrams for technical content.

Complete Documentation

View Source →

Mermaid Diagrams

Generate professional, consistently-styled Mermaid diagrams for technical content with automatic template selection, content generation, and quality validation.

Quick Start

Subagent Pattern (Recommended):

When user requests diagram generation, spawn a subagent:

text
Generate 3 Mermaid diagrams for /path/to/chapter-01.md and save to diagrams/chapter-01/

The subagent will:

  • Read chapter content
  • Select appropriate templates
  • Generate placeholder content
  • Create content.json
  • Run generation script
  • Validate output
Manual Pattern:

bash
# 1. Create content.json (see assets/example-content.json)
# 2. Render diagrams
node scripts/generate.mjs --content content.json --out diagrams/chapter-01

# 3. Validate
node scripts/validate.mjs --dir diagrams/chapter-01

Prerequisites

Automated Installation (Recommended)

Run the installation script to automatically install and verify mermaid-cli:

bash
cd $SKILL_DIR  # Path to skill-mermaid-diagrams directory
./scripts/install-deps.sh

The script will:

  • Check Node.js version (>= 18.0.0 required)
  • Install or upgrade mermaid-cli to latest version
  • Verify installation and version compatibility
  • Provide troubleshooting guidance if needed

Manual Installation

Alternatively, install Mermaid CLI globally:

bash
npm install -g @mermaid-js/mermaid-cli

Verify installation:

bash
mmdc --version  # Should be >= 11.0.0

Usage Patterns

Subagent Workflow (Primary Pattern)

When a user requests diagram generation, spawn a subagent to handle the complete workflow:

text
Task: Generate 3 Mermaid diagrams for chapter 5

Steps:
1. Read $CONTENT_DIR/chapters/chapter-05.md
2. Analyze content and select 3 appropriate diagram templates from: architecture, flowchart, sequence, concept-map, timeline, comparison
3. For each selected template:
   - Read template from $SKILL_DIR/assets/
   - Extract placeholders ({{PLACEHOLDER_NAME}} format)
   - Generate concise labels (max 8 words each) based on chapter content
4. Create content.json with structure:
   {
     "chapter": "chapter-05.md",
     "diagrams": [
       {
         "template": "architecture",
         "placeholders": { "SYSTEM_NAME": "...", ... }
       },
       ...
     ]
   }
5. Save to $CONTENT_DIR/diagrams/chapter-05/content.json
6. Run: node $SKILL_DIR/scripts/generate.mjs --content content.json --out $CONTENT_DIR/diagrams/chapter-05
7. Validate: node $SKILL_DIR/scripts/validate.mjs --dir $CONTENT_DIR/diagrams/chapter-05
8. Report success with file count

Note: Replace $SKILL_DIR and $CONTENT_DIR with actual paths:
- SKILL_DIR: Path to skill-mermaid-diagrams directory
- CONTENT_DIR: Path to your content/project directory

Manual Content Generation

If generating content.json manually:

bash
# 1. Create content.json (see assets/example-content.json)
# 2. Render
cd $SKILL_DIR  # Path to skill-mermaid-diagrams directory
node scripts/generate.mjs \
  --content /path/to/content.json \
  --out /path/to/output

# 3. Validate
node scripts/validate.mjs --dir /path/to/output

Parameters:

  • --content / -c: Content JSON file (required)
  • --out / -o: Output directory (default: ./diagrams)

Validate All Generated Diagrams

bash
for dir in diagrams/chapter-*/; do
  node scripts/validate.mjs --dir "$dir"
done

Available Templates

The skill includes 12 professionally-themed templates with consistent color schemes:

  • architecture.mmd - System architecture, component diagrams, tool integration
  • Use for: System components, tool pipelines, agent interactions
  • Fixed node IDs (space-safe): Uses C1, C2, C3 internally, only labels are customizable
  • flowchart.mmd - Decision flows, processes, workflows, debugging steps
  • Use for: Decision trees, process flows, validation workflows
  • sequence.mmd - Actor interactions, message passing, session patterns
  • Use for: API call sequences, actor communication, message flows
  • concept-map.mmd - Key concepts, mental models, paradigms, relationships
  • Use for: Hierarchical concepts, mental models, knowledge graphs
  • Improved version (graph-based, not mindmap): Full color control, readable text
  • radial-concept.mmd - Layered concepts radiating from center - Use for: Progressive summarization, abstraction layers, hierarchical models
  • 4 color-coded levels: green → orange → blue → purple
  • timeline.mmd - Temporal progression, optimization stages, evolution
  • Use for: Project phases, evolution timelines, staged processes
  • comparison.mmd - Trade-offs, quadrant analysis (2D plotting)
  • Use for: Cost vs performance, effort vs impact (X/Y coordinate plotting)
  • Requires X/Y coordinates for items
  • comparison-table.mmd - Side-by-side feature comparison
  • Use for: AI vs Script decisions, option comparisons, feature matrices
  • Alternative to quadrant when you need simple side-by-side, not 2D plotting
  • gantt.mmd - Project timelines, task scheduling - Use for: Project planning, milestone tracking, task dependencies
  • Supports: Multiple sections, task status (done/active/crit), date ranges
  • mindmap.mmd - Organic radial mind maps - Use for: Brainstorming, organic thought structures, free-form concept mapping
  • Limitation: Auto-assigns colors/text (limited theme control)
  • Alternative: Use radial-concept.mmd for better color control
  • class-diagram.mmd - UML class diagrams
  • Use for: Object models, database schemas, system architecture (OOP)
  • Supports: Attributes, methods, relationships (inheritance, composition, association)
  • state-diagram.mmd - State machines, lifecycle diagrams
  • Use for: Process states, object lifecycles, workflow stages
  • Supports: Transitions with labels, notes on states, start/end markers

Template Placeholder Reference

Each template requires specific placeholders. All placeholders must be provided to avoid rendering errors.

TemplatePlaceholdersComplexityRequired Fields
architecture10MediumSYSTEM_NAME, COMPONENT_1-3_LABEL, EXTERNAL_1-2_LABEL, FLOW_1-4
flowchart11MediumSTART_LABEL, DECISION_1-2, ACTION_1-4, CHOICE_1-2_YES/NO, END_LABEL
sequence8MediumACTOR_1-3, MESSAGE_1-5
concept-map15HighCENTRAL_CONCEPT, BRANCH_1-4, BRANCH_X_SUB_1-3
radial-concept13MediumCENTRAL_CONCEPT, LEVEL_1-4_LABEL, LEVEL_X_NODE_1-3
timeline6LowEVENT_1-6, DATE_1-6
comparison18HighCOMPARISON_TITLE, X/Y_AXIS_LOW/HIGH, QUADRANT_1-4_LABEL, ITEM_1-5 + X/Y coords
comparison-table10LowOPTION_1-2_TITLE, OPTION_X_CRITERION_1-4
gantt14HighCHART_TITLE, SECTION_1-3_TITLE, TASK_X_Y (name/id/start/duration)
mindmap13MediumROOT_CONCEPT, BRANCH_1-4, BRANCH_X_CHILD_1-3
class-diagram21HighCLASS_1-3_NAME, CLASS_X_ATTR_1-3, CLASS_X_METHOD_1-3, REL_1-3_TYPE/LABEL
state-diagram18MediumSTATE_1-8, TRANSITION_1-7_LABEL, STATE_1/4/7_NOTE
Important Notes:
  • architecture.mmd: Uses fixed node IDs (C1, C2, C3, E1, E2) internally. Only *_LABEL placeholders are customizable. Labels can contain spaces (space-safe).
  • concept-map.mmd: Improved graph-based version (replaced mindmap). Better color control and readability.
  • comparison.mmd: QuadrantChart requires X/Y coordinates. Use comparison-table.mmd for simple side-by-side comparisons.
  • gantt.mmd: Task status options: done, active, crit, or blank. Date format: YYYY-MM-DD. Duration: Nd (days) or YYYY-MM-DD.
  • mindmap.mmd: Limited theme control (auto-colors, auto-text). For controlled colors/text, use radial-concept.mmd instead.
  • class-diagram.mmd: Relationship types: <|-- (inheritance), *-- (composition), o-- (aggregation), --> (association), ..> (dependency).
  • state-diagram.mmd: Uses stateDiagram-v2 syntax. States are simple identifiers (no spaces). Notes attach to states 1, 4, and 7.
  • Text length limits: Generator warns if labels exceed recommended length (25-50 chars depending on template).
Placeholder Naming Convention:
  • Component labels: COMPONENT_1_LABEL, COMPONENT_2_LABEL
  • Branch hierarchy: BRANCH_1, BRANCH_1_SUB_1, BRANCH_1_SUB_2
  • Level-based: LEVEL_1_LABEL, LEVEL_1_NODE_1

Changelog & Migration Notes

v2.0 (2026-02-15) - Root Cause Fixes

Breaking Changes:

  • architecture.mmd - Fixed node ID handling (space-safe)
  • Before: Used placeholder values as node IDs → failed when labels contained spaces
  • After: Uses fixed node IDs (C1, C2, C3) → labels can contain any characters
  • Migration: Remove COMPONENT_1, COMPONENT_2, COMPONENT_3 from content.json (only *_LABEL variants needed)
  • concept-map.mmd - Replaced mindmap with graph-based version
  • Before: Mindmap syntax with auto-colors, black-on-purple text (unreadable)
  • After: Graph LR syntax with explicit styling, white text on dark backgrounds
  • Result: +100% contrast improvement (2.6:1 → 5.2:1 on purple nodes)
New Features:
  • radial-concept.mmd - Progressive summarization diagrams with 4 color-coded levels
  • comparison-table.mmd - Side-by-side feature comparison (alternative to quadrant chart)
  • Validation - Generator now warns about text length, unresolved placeholders, special characters
All changes target root causes (template design flaws, missing validation) rather than surface symptoms.


Color Scheme (Consistent Across All Templates)

  • Primary Blue: #4A90E2 - Main components, actions
  • Secondary Purple: #7B68EE - Supporting elements
  • Tertiary Green: #90EE90 - External actors, success states
  • Warning Yellow: #FFD700 - Decisions, cautions
  • Error Red: #FF6B6B - Failures, critical paths

Output Structure

After generation, each chapter directory contains:

text
diagrams/chapter-01/
├── diagram-01-architecture.mmd   # Mermaid source
├── diagram-01-architecture.svg   # Vector output
├── diagram-01-architecture.png   # Raster output (1200px wide)
├── diagram-02-flowchart.mmd
├── diagram-02-flowchart.svg
├── diagram-02-flowchart.png
├── diagram-03-concept-map.mmd
├── diagram-03-concept-map.svg
├── diagram-03-concept-map.png
└── summary.json                   # Generation metadata

Error Handling

The generator includes robust error handling:

  • Template Selection Failure: Falls back to first N templates in order
  • Content Generation Failure: Skips diagram, continues with next
  • Rendering Failure: Reports error, saves .mmd source for manual debugging
  • Missing mmdc CLI: Exits early with installation instructions

Quality Validation

The validator checks each diagram for:

  • ✅ File readable and valid UTF-8
  • ✅ Theme configuration present
  • ✅ No unresolved placeholders ({{PLACEHOLDER}})
  • ✅ SVG file rendered
  • ✅ PNG file rendered
  • ✅ Syntax valid (can re-render without errors)
Validation workflow:

bash
# Generate diagrams
node scripts/generate.mjs --content content.json --out diagrams/chapter-01

# Validate output
node scripts/validate.mjs --dir diagrams/chapter-01

# Fix any failures and re-run

Cost Analysis

Per Chapter (3 diagrams):

  • Subagent LLM usage:
  • Chapter reading: ~3000 tokens input
  • Template selection: ~500 tokens output
  • Content generation (3 diagrams): ~1500 tokens output
  • Total: ~5000 tokens (~$0.002)
  • Rendering: Free (local mmdc)
At scale (e.g. 14 chapters × 3 diagrams = 42 diagrams):
  • 14 × $0.002 = ~$0.03 total
Comparison to AI image generation (42 images):
  • Mermaid diagrams: ~$0.03
  • GLM images: ~$0.63
  • DALL-E images: ~$2.52
  • Savings: 95-99% vs AI image generation

Customization

Modify Color Scheme

Edit theme variables in any template file (assets/*.mmd):

mermaid
%%{init: {'theme':'base', 'themeVariables': {
  'primaryColor':'#NEW_COLOR',
  'secondaryColor':'#NEW_COLOR',
  ...
}}}%%

Add New Template

  • Create assets/new-template.mmd with theme and placeholders
  • Add entry to TEMPLATES object in scripts/generate.mjs:
javascript
const TEMPLATES = {
  ...
  "new-template": "Description of when to use this template",
};
  • Test with content:
bash
node scripts/generate.mjs --content test-content.json --out test-output

Troubleshooting

"mmdc not found"

  • Install: npm install -g @mermaid-js/mermaid-cli
  • Verify: which mmdc
"Template not found"
  • Check template name in content.json matches file in assets/ (case-sensitive)
  • Available templates: architecture, flowchart, sequence, concept-map, radial-concept, timeline, comparison, comparison-table, gantt, mindmap, class-diagram, state-diagram
"Rendering failed"
  • Check .mmd file for syntax errors
  • Manually test: mmdc -i diagram.mmd -o test.svg
  • Validate with: node scripts/validate.mjs --dir output_dir
Unresolved placeholders in output ({{PLACEHOLDER}})
  • Subagent didn't generate all required placeholder values
  • Check template file to see required placeholders
  • Manually add missing values to content.json and re-run generate.mjs
Subagent failed
  • Check chapter file path is correct
  • Verify skill path is accessible from subagent
  • Ensure mmdc is installed globally (subagent needs it too)

Examples

Generated Architecture Diagram

mermaid
%%{init: {'theme':'base', ...}}%%
graph TB
    subgraph "Agent System"
        Gateway[Gateway Process]
        Session[Session Manager]
        Tools[Tool Registry]
    end

    User((User))
    Provider((LLM Provider))

    User -->|Request| Gateway
    Gateway -->|Route| Session
    Session -->|Select Tool| Tools
    Tools -->|Execute| Provider

Output: Clean, consistent, professional diagram with uniform styling across all chapters.

Best Practices

  • Consistent counts: Use same --max value for all chapters (e.g., 3)
  • Review before commit: Run validator on all outputs before pushing
  • Version control: Commit both .mmd source and .svg/.png renders
  • Iterate templates: If diagrams look wrong, adjust template then regenerate
  • Manual touch-ups: Edit .mmd files directly for fine-tuning, then re-render with mmdc

Testing

Installation Test

bash
./scripts/install-deps.sh

Verifies that mermaid-cli is installed and meets version requirements.

Functional Test

  • Create test content: assets/example-content.json (already included)
  • Generate diagrams: node scripts/generate.mjs --content assets/example-content.json --out test-output
  • Validate output: node scripts/validate.mjs --dir test-output
  • Verify all checks pass

References

Local Documentation

  • Mermaid Syntax Guide: references/mermaid-syntax.md - Quick reference for diagram syntax, theming, and common patterns
  • Example Content: assets/example-content.json - Real-world content structure example

External Resources

  • Mermaid Docs: https://mermaid.js.org/
  • Syntax Reference: https://mermaid.js.org/intro/syntax-reference.html
  • Theming Guide: https://mermaid.js.org/config/theming.html
  • CLI Documentation: https://github.com/mermaid-js/mermaid-cli
  • Live Editor: https://mermaid.live/ (interactive testing)

Installation

Terminal bash

openclaw install skill-mermaid-diagrams
    
Copied!

💻Code Examples

Generate 3 Mermaid diagrams for /path/to/chapter-01.md and save to diagrams/chapter-01/

generate-3-mermaid-diagrams-for-pathtochapter-01md-and-save-to-diagramschapter-01.txt
The subagent will:
1. Read chapter content
2. Select appropriate templates
3. Generate placeholder content
4. Create content.json
5. Run generation script
6. Validate output

**Manual Pattern:**

node scripts/validate.mjs --dir diagrams/chapter-01

node-scriptsvalidatemjs---dir-diagramschapter-01.txt
## Prerequisites

### Automated Installation (Recommended)

Run the installation script to automatically install and verify mermaid-cli:

./scripts/install-deps.sh

scriptsinstall-depssh.txt
The script will:
- Check Node.js version (>= 18.0.0 required)
- Install or upgrade mermaid-cli to latest version
- Verify installation and version compatibility
- Provide troubleshooting guidance if needed

### Manual Installation

Alternatively, install Mermaid CLI globally:

mmdc --version # Should be >= 11.0.0

mmdc---version--should-be--1100.txt
## Usage Patterns

### Subagent Workflow (Primary Pattern)

When a user requests diagram generation, spawn a subagent to handle the complete workflow:

- CONTENT_DIR: Path to your content/project directory

--contentdir-path-to-your-contentproject-directory.txt
### Manual Content Generation

If generating content.json manually:

node scripts/validate.mjs --dir /path/to/output

node-scriptsvalidatemjs---dir-pathtooutput.txt
**Parameters:**
- `--content` / `-c`: Content JSON file (required)
- `--out` / `-o`: Output directory (default: `./diagrams`)

### Validate All Generated Diagrams

done

done.txt
## Available Templates

The skill includes 12 professionally-themed templates with consistent color schemes:

1. **architecture.mmd** - System architecture, component diagrams, tool integration
   - Use for: System components, tool pipelines, agent interactions
   - **Fixed node IDs** (space-safe): Uses C1, C2, C3 internally, only labels are customizable
   
2. **flowchart.mmd** - Decision flows, processes, workflows, debugging steps
   - Use for: Decision trees, process flows, validation workflows
   
3. **sequence.mmd** - Actor interactions, message passing, session patterns
   - Use for: API call sequences, actor communication, message flows
   
4. **concept-map.mmd** - Key concepts, mental models, paradigms, relationships
   - Use for: Hierarchical concepts, mental models, knowledge graphs
   - **Improved version** (graph-based, not mindmap): Full color control, readable text
   
5. **radial-concept.mmd** - Layered concepts radiating from center   - Use for: Progressive summarization, abstraction layers, hierarchical models
   - 4 color-coded levels: green → orange → blue → purple
   
6. **timeline.mmd** - Temporal progression, optimization stages, evolution
   - Use for: Project phases, evolution timelines, staged processes
   
7. **comparison.mmd** - Trade-offs, quadrant analysis (2D plotting)
   - Use for: Cost vs performance, effort vs impact (X/Y coordinate plotting)
   - **Requires X/Y coordinates** for items
   
8. **comparison-table.mmd** - Side-by-side feature comparison
   - Use for: AI vs Script decisions, option comparisons, feature matrices
   - **Alternative to quadrant** when you need simple side-by-side, not 2D plotting

9. **gantt.mmd** - Project timelines, task scheduling   - Use for: Project planning, milestone tracking, task dependencies
   - Supports: Multiple sections, task status (done/active/crit), date ranges

10. **mindmap.mmd** - Organic radial mind maps    - Use for: Brainstorming, organic thought structures, free-form concept mapping
    - **Limitation:** Auto-assigns colors/text (limited theme control)
    - **Alternative:** Use radial-concept.mmd for better color control

11. **class-diagram.mmd** - UML class diagrams
    - Use for: Object models, database schemas, system architecture (OOP)
    - Supports: Attributes, methods, relationships (inheritance, composition, association)

12. **state-diagram.mmd** - State machines, lifecycle diagrams
    - Use for: Process states, object lifecycles, workflow stages
    - Supports: Transitions with labels, notes on states, start/end markers

### Template Placeholder Reference

Each template requires specific placeholders. **All placeholders must be provided** to avoid rendering errors.

| Template | Placeholders | Complexity | Required Fields |
|----------|--------------|------------|-----------------|
| architecture | 10 | Medium | SYSTEM_NAME, COMPONENT_1-3_LABEL, EXTERNAL_1-2_LABEL, FLOW_1-4 |
| flowchart | 11 | Medium | START_LABEL, DECISION_1-2, ACTION_1-4, CHOICE_1-2_YES/NO, END_LABEL |
| sequence | 8 | Medium | ACTOR_1-3, MESSAGE_1-5 |
| concept-map | 15 | High | CENTRAL_CONCEPT, BRANCH_1-4, BRANCH_X_SUB_1-3 |
| radial-concept | 13 | Medium | CENTRAL_CONCEPT, LEVEL_1-4_LABEL, LEVEL_X_NODE_1-3 |
| timeline | 6 | Low | EVENT_1-6, DATE_1-6 |
| comparison | 18 | High | COMPARISON_TITLE, X/Y_AXIS_LOW/HIGH, QUADRANT_1-4_LABEL, ITEM_1-5 + X/Y coords |
| comparison-table | 10 | Low | OPTION_1-2_TITLE, OPTION_X_CRITERION_1-4 |
| gantt | 14 | High | CHART_TITLE, SECTION_1-3_TITLE, TASK_X_Y (name/id/start/duration) |
| mindmap | 13 | Medium | ROOT_CONCEPT, BRANCH_1-4, BRANCH_X_CHILD_1-3 |
| class-diagram | 21 | High | CLASS_1-3_NAME, CLASS_X_ATTR_1-3, CLASS_X_METHOD_1-3, REL_1-3_TYPE/LABEL |
| state-diagram | 18 | Medium | STATE_1-8, TRANSITION_1-7_LABEL, STATE_1/4/7_NOTE |

**Important Notes:**

- **architecture.mmd**: Uses fixed node IDs (C1, C2, C3, E1, E2) internally. Only *_LABEL placeholders are customizable. **Labels can contain spaces** (space-safe).
- **concept-map.mmd**: Improved graph-based version (replaced mindmap). Better color control and readability.
- **comparison.mmd**: QuadrantChart requires X/Y coordinates. Use **comparison-table.mmd** for simple side-by-side comparisons.
- **gantt.mmd**: Task status options: `done`, `active`, `crit`, or blank. Date format: YYYY-MM-DD. Duration: Nd (days) or YYYY-MM-DD.
- **mindmap.mmd**: Limited theme control (auto-colors, auto-text). For controlled colors/text, use **radial-concept.mmd** instead.
- **class-diagram.mmd**: Relationship types: `<|--` (inheritance), `*--` (composition), `o--` (aggregation), `-->` (association), `..>` (dependency).
- **state-diagram.mmd**: Uses `stateDiagram-v2` syntax. States are simple identifiers (no spaces). Notes attach to states 1, 4, and 7.
- **Text length limits**: Generator warns if labels exceed recommended length (25-50 chars depending on template).

**Placeholder Naming Convention:**
- Component labels: `COMPONENT_1_LABEL`, `COMPONENT_2_LABEL`
- Branch hierarchy: `BRANCH_1`, `BRANCH_1_SUB_1`, `BRANCH_1_SUB_2`
- Level-based: `LEVEL_1_LABEL`, `LEVEL_1_NODE_1`

---

## Changelog & Migration Notes

### v2.0 (2026-02-15) - Root Cause Fixes

**Breaking Changes:**

1. **architecture.mmd** - Fixed node ID handling (space-safe)
   - **Before:** Used placeholder values as node IDs → failed when labels contained spaces
   - **After:** Uses fixed node IDs (C1, C2, C3) → labels can contain any characters
   - **Migration:** Remove COMPONENT_1, COMPONENT_2, COMPONENT_3 from content.json (only *_LABEL variants needed)

2. **concept-map.mmd** - Replaced mindmap with graph-based version
   - **Before:** Mindmap syntax with auto-colors, black-on-purple text (unreadable)
   - **After:** Graph LR syntax with explicit styling, white text on dark backgrounds
   - **Result:** +100% contrast improvement (2.6:1 → 5.2:1 on purple nodes)
**New Features:**

- **radial-concept.mmd** - Progressive summarization diagrams with 4 color-coded levels
- **comparison-table.mmd** - Side-by-side feature comparison (alternative to quadrant chart)
- **Validation** - Generator now warns about text length, unresolved placeholders, special characters

**All changes target root causes** (template design flaws, missing validation) rather than surface symptoms.

---

## Color Scheme (Consistent Across All Templates)

- **Primary Blue:** `#4A90E2` - Main components, actions
- **Secondary Purple:** `#7B68EE` - Supporting elements
- **Tertiary Green:** `#90EE90` - External actors, success states
- **Warning Yellow:** `#FFD700` - Decisions, cautions
- **Error Red:** `#FF6B6B` - Failures, critical paths

## Output Structure

After generation, each chapter directory contains:

└── summary.json # Generation metadata

-summaryjson--generation-metadata.txt
## Error Handling

The generator includes robust error handling:

- **Template Selection Failure:** Falls back to first N templates in order
- **Content Generation Failure:** Skips diagram, continues with next
- **Rendering Failure:** Reports error, saves .mmd source for manual debugging
- **Missing mmdc CLI:** Exits early with installation instructions

## Quality Validation

The validator checks each diagram for:

1. ✅ File readable and valid UTF-8
2. ✅ Theme configuration present
3. ✅ No unresolved placeholders ({{PLACEHOLDER}})
4. ✅ SVG file rendered
5. ✅ PNG file rendered
6. ✅ Syntax valid (can re-render without errors)

**Validation workflow:**

# Fix any failures and re-run

-fix-any-failures-and-re-run.txt
## Cost Analysis

**Per Chapter (3 diagrams):**
- Subagent LLM usage:
  - Chapter reading: ~3000 tokens input
  - Template selection: ~500 tokens output
  - Content generation (3 diagrams): ~1500 tokens output
  - Total: ~5000 tokens (~$0.002)
- Rendering: Free (local mmdc)

**At scale (e.g. 14 chapters × 3 diagrams = 42 diagrams):**
- 14 × $0.002 = **~$0.03 total**

**Comparison to AI image generation (42 images):**
- Mermaid diagrams: ~$0.03
- GLM images: ~$0.63
- DALL-E images: ~$2.52
- **Savings: 95-99% vs AI image generation**

## Customization

### Modify Color Scheme

Edit theme variables in any template file (`assets/*.mmd`):

}}}%%

.txt
### Add New Template

1. Create `assets/new-template.mmd` with theme and placeholders
2. Add entry to `TEMPLATES` object in `scripts/generate.mjs`:

Tags

#coding_agents-and-ides

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author chunhualiao
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install skill-mermaid-diagrams