Mermaid diagram
Skill aksh-3141/claude-toolshed/plugins/mermaid/skills/mermaid-diagram
Provide and install pre-packaged plugins to extend Claude Code with new skills directly within your Claude environment.
npx -y skills add aksh-3141/claude-toolshed --skill mermaid-diagramAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 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.
What its author says it does
Copied from the file, not written here
Generate a Mermaid diagram from a text description
SKILL.md
6.0 KB, as published. Nobody here has run it
/mermaid-diagram
User request: "$ARGUMENTS"
Task
Analyze the user's description, select the appropriate diagram type, and generate the diagram.
Instructions
Step 1: Resolve Plugin Path
find "$HOME/.claude/plugins/cache" -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
If empty, run fallback (for dev/repo usage):
find "$HOME" -maxdepth 8 -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
Use the returned path as PLUGIN_DIR.
Step 2: Ensure Dependencies
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"
If .claude/mermaid.json does not exist, display a one-time nudge before continuing:
First time using the mermaid plugin? Run
/mermaid-configto pick a theme and output settings. Using defaults for now (zinc-light,./diagrams).
Step 3: Read Config
If .claude/mermaid.json exists, read it and apply:
theme(default: zinc-light)output_directory(default: ./diagrams)auto_validate(default: true)auto_render(default: false)
Resolve output path:
- If
output_directoryis"same"AND an input file path is known (e.g. the file being documented):OUTPUT_DIR=$(dirname {input_file}) - If
output_directoryis"same"AND no input file (text description only):OUTPUT_DIR=./diagrams - Otherwise:
OUTPUT_DIR={output_directory}
Theme-First Rule
Respect the configured theme/themeVariables as the visual source of truth.
- Do not emit hardcoded
classDef fill/stroke/colorby default. - Only add explicit color overrides if the user asks for a custom palette or semantic color coding.
Step 4: Analyze User Description
Analyze the request semantically — interpret intent regardless of language:
| What the user wants to show | Type |
|---|---|
| How a process works, step-by-step flow, approval workflow, user journey | Activity |
| Who calls whom, API interactions, request/response, message passing between services | Sequence |
| Infrastructure topology, cloud resources, deployment, servers, containers | Deployment |
| System components, microservices, layers, modules, high-level structure | Architecture |
| Classes, objects, inheritance, OOP design, data models | Class |
| Database tables, entities, foreign keys, schema design | ER |
| States a thing can be in, lifecycle, FSM, transitions | State |
If the description matches multiple types, present the top 2 options briefly and ask which.
If the request is "Not sure" or ambiguous, ask: "Briefly describe what you want to visualize — a process, a system, API calls, a database schema, or something else?"
Step 5: Present Recommendation
Based on your description "{description}", I recommend a **{type}** diagram because {reason}.
Proceeding with {type}...
Step 6: Load and Execute Specialist
Read the specialist file from $PLUGIN_DIR/specialists/mermaid-{type}.md and follow its Process and Output sections exactly. Do not ask the user again — generate the diagram.
Type-to-filename mapping:
- Activity →
mermaid-activity.md - Sequence →
mermaid-sequence.md - Deployment →
mermaid-deployment.md - Architecture →
mermaid-architecture.md - Class →
mermaid-class.md - ER →
mermaid-er.md - State →
mermaid-state.md
Step 7: Auto-render (if enabled)
If auto_render == true (or the user explicitly asks to render), render the generated .mmd file to SVG:
-
If
theme == "custom"andthemeVariablesis present in config:node "$PLUGIN_DIR/scripts/resilient_diagram.js" {file} --output-dir $OUTPUT_DIR --custom-theme '{serialized themeVariables JSON}' -
If
theme == "custom"butthemeVariablesis absent from config: Render without custom theme and display a note:Custom theme configured but no themeVariables found — run
/mermaid-config→ option 6 to define colors. -
Otherwise:
node "$PLUGIN_DIR/scripts/resilient_diagram.js" {file} --output-dir $OUTPUT_DIR --theme {theme}
If the script fails, tell the user to run /mermaid-config → option 7 (health check).
Step 8: Offer design document (opt-in)
If the user's request mentions "document", "design doc", "design", or similar, or the generated diagram has high complexity (5+ components/entities/states), offer to scaffold a full design document around the diagram.
Match the diagram type to a template:
| Diagram type | Template file |
|---|---|
| Architecture | $PLUGIN_DIR/assets/architecture-design-template.md |
| Sequence | $PLUGIN_DIR/assets/api-design-template.md |
| ER | $PLUGIN_DIR/assets/database-design-template.md |
| Activity, State, Class, Deployment | $PLUGIN_DIR/assets/feature-design-template.md |
Display:
💡 This diagram could anchor a full design document.
I can scaffold one using the {template_name} template — say "yes" to proceed.
If user accepts:
- Read the template from
$PLUGIN_DIR/assets/{template} - Embed the generated diagram in the relevant section
- Fill metadata placeholders (
[Name],[Date], etc.) with context from the user's request - Save the document to
$OUTPUT_DIR/{name}-design-doc.md
If not triggered (simple diagram, no design keywords): skip silently.
Code/Script Flow Requests
If the user asks to "diagram the flow" of a file or script:
- Read the file first and derive the flow from actual control paths.
- If the diagram type is still unclear, ask one short clarification.
- Execute as the appropriate specialist after confirming intent.
Examples
Input: /mermaid-diagram "order processing with payment gateway"
Analysis: Business workflow → Activity
Executes: $PLUGIN_DIR/specialists/mermaid-activity.md
Input: /mermaid-diagram "API call from React frontend to FastAPI backend"
Analysis: Service interaction → Sequence
Executes: $PLUGIN_DIR/specialists/mermaid-sequence.md