Agent skill
mermaid-diagram
Use this skill when you need to draw diagrams including: Flowchart, Sequence Diagram, Class Diagram, State Diagram, ER Diagram, User Journey, Gantt Chart, Pie Chart, Quadrant Chart, Requirement Diagram, Gitgraph, Mindmap, Timeline, Sankey, XY Chart (Bar/Line), Block Diagram, Packet Diagram, Kanban, Architecture Diagram, C4 Diagram, Radar Chart, Treemap, and ZenUML. You MUST use this skill BEFORE outputting any mermaid code block.
Install this agent skill to your Project
npx add-skill https://github.com/wecode-ai/Wegent/tree/main/backend/init_data/skills/mermaid-diagram
SKILL.md
Diagram Visualization with Mermaid
When you need to visualize concepts, workflows, architectures, or relationships, use Mermaid diagram syntax.
IMPORTANT: Two-Step Workflow
To create mermaid diagrams, follow this two-step workflow:
- Step 1: Validate with
render_mermaidtool - Use the tool to validate your mermaid syntax - Step 2: Output mermaid code block - After successful validation, output the mermaid code block in your response
This ensures:
- Syntax is validated before displaying to the user
- The diagram is automatically saved in the conversation history
- The diagram can be referenced later in the conversation
Step 1: Use render_mermaid Tool
Call the render_mermaid tool with the following parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
code |
string | Yes | The mermaid diagram code (without the ```mermaid wrapper) |
diagram_type |
string | No | Diagram type hint (flowchart, sequence, etc.) |
title |
string | No | Optional title for the diagram |
Example Tool Call
{
"name": "render_mermaid",
"arguments": {
"code": "flowchart TD\n A[Start] --> B{Decision}\n B -->|Yes| C[Action 1]\n B -->|No| D[Action 2]\n C --> E[End]\n D --> E",
"title": "Decision Flow"
}
}
Step 2: Output Mermaid Code Block
When the render_mermaid tool returns success, it will include the mermaid code that you should output. Simply include the mermaid code block in your response:
flowchart TD
A[Start] --> B{Decision}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[End]
D --> E
This mermaid code block will be:
- Rendered as a diagram for the user to see
- Saved in the conversation history
- Available for future reference
Error Handling and Retry
If the diagram has syntax errors, the tool will return detailed error information including:
- Error message from the mermaid parser
- Line number where the error occurred (if available)
- Suggestions for fixing the error
When you receive an error, you should:
- Read the error message carefully
- Identify the problematic line
- Fix the syntax issue
- Call
render_mermaidagain with the corrected code - Only output the mermaid code block after successful validation
Example error response:
Mermaid diagram rendering failed.
Error: Parse error on line 3: Unexpected token 'invalid'
Suggestions:
- Check the syntax at line 3
- Ensure all node IDs use alphanumeric characters and underscores
- Verify arrow syntax (-->, ---, -.->)
Please fix the error and try again.
⚠️ CRITICAL: Automatic Retry and Error Handling
Automatic Correction System
The render_mermaid tool includes an automatic correction system that:
- Detects syntax errors in your Mermaid code
- Automatically attempts to fix common issues using AI
- Retries rendering up to 3 times
This means most syntax errors will be automatically corrected without your intervention. However, if all automatic retries fail, you will receive a special response.
When All Retries Fail
If you receive a response containing "final_instruction", this means:
- All automatic correction attempts have FAILED
- The syntax error is too complex for automatic fixing
- The system has exhausted all retry attempts
⛔ MANDATORY ACTIONS When Retries Fail
YOU MUST follow these rules when receiving a final_instruction response:
- NEVER output any mermaid code block
- NEVER try to render the diagram again
- MUST explain to the user that the diagram could not be rendered
- MUST show the error details so the user can help fix it
- MUST provide actionable suggestions for the user
Example Response When All Retries Fail
When you receive a response with final_instruction, respond to the user like this:
I apologize, but I was unable to render the Mermaid diagram after multiple attempts.
The automatic correction system tried to fix the syntax errors but was unsuccessful.
**Error Details:**
- Error: [error message from response]
- Line: [line number if available]
**Original Code:**
[show the original code for reference]
**What you can do:**
1. Check the Mermaid syntax documentation at https://mermaid.js.org/
2. Simplify the diagram structure
3. Provide a corrected version of the code
4. Try a different diagram type that might better suit your needs
Would you like me to help you troubleshoot the specific syntax issue?
Why This Matters
- The automatic retry system is designed to handle most common errors
- If it fails after 3 attempts, the error is likely fundamental
- Outputting broken mermaid code will result in rendering errors for the user
- Following the
final_instructionensures a good user experience
Complete Workflow Summary
- Generate the mermaid code based on user requirements
- Call
render_mermaidtool with the code to validate syntax - If failed: Read the error, fix the code, and retry from step 2
- If successful: Output the mermaid code block in your response
IMPORTANT: Only output the mermaid code block AFTER successful validation with the render_mermaid tool.
Diagram Types & References
Use the read_mermaid_reference tool to read the specific documentation for syntax details and examples. Pass the filename (e.g., flowchart.md) as the reference argument.
Core Structure & Logic
- Flowchart (
flowchart.md): Process flows, decision trees, workflows - Sequence (
sequenceDiagram.md): Interaction sequences between participants - Class (
classDiagram.md): Class structures and object-oriented relationships - State (
stateDiagram.md): State machines and state transitions - Entity Relationship (
erDiagram.md): Database schemas and relationships - Block (
block.md): Block diagrams for high-level structure - ZenUML (
zenuml.md): Alternative sequence diagram syntax
Project & Planning
- Gantt (
gantt.md): Project timelines and schedules - Kanban (
kanban.md): Work items and project status boards - Timeline (
timeline.md): Chronological events visualization - User Journey (
journey.md): User flows and experience mapping - Requirement (
requirementDiagram.md): Requirements traceability and risk - GitGraph (
gitgraph.md): Git branching and merging visualization
Data & Statistics
- Pie Chart (
pie.md): Proportional data distribution - XY Chart (
xyChart.md): Bar and line charts - Quadrant (
quadrantChart.md): Strategic planning matrices (2x2) - Radar (
radar.md): Multivariate data comparison - Sankey (
sankey.md): Flow volume visualization - Treemap (
treemap.md): Hierarchical data treemaps
System & Architecture
- Architecture (
architecture.md): Cloud and system architecture diagrams - C4 Context (
c4.md): C4 model for software architecture - Packet (
packet.md): Network packet structure visualization
General
- Common Examples (
examples.md): Collection of various diagram examples
Best Practices
- Focus: Keep diagrams focused on one concept or workflow.
- Labels: Use meaningful labels. For Chinese characters, always wrap in quotes (e.g.,
A["用户"]). - Complexity: Split complex diagrams into multiple smaller ones.
- IDs: Use English alphanumeric characters for node IDs (e.g.,
Start,User,DB) to avoid parsing errors. - Testing: Always validate with the
render_mermaidtool.
Common Issues
- Syntax Errors: Missing arrows, brackets, or unquoted special characters.
- Large Diagrams: Hard to read and render; break them down.
- Node IDs: Using Chinese or special characters in IDs can cause failures. Use
ID["Label"]format. - Rendering: If a diagram fails to render, try simplifying the structure or checking for valid syntax versions.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
wiki_submit
Submit wiki documentation sections to Wegent backend API. Simplifies the HTTP POST process for wiki content submission.
subscription-manager
Create and manage scheduled subscription tasks. Use when the user wants to set up recurring reminders, periodic reports, scheduled checks, or any automated tasks that run on a schedule. Supports cron expressions, fixed intervals, and one-time executions.
conversation_to_prompt
Convert the current conversation into a reusable system prompt draft with strict structure and quality checks.
wegent-knowledge
Knowledge base management tools for Wegent. Provides capabilities to list, create, and update knowledge bases and documents. Use this skill when the user wants to manage knowledge bases or documents programmatically.
sandbox
Provides read_file/write_file/exec/list_files/read_file/write_file for running process and managing filesystems in the sandbox. Ideal for code testing, file management, and command execution. The sub_claude_agent tool is available for advanced use cases. You MUST load this skill BEFORE use sandbox tools.
browser
Complete real user web tasks end-to-end via browser-tool, navigate, interact, wait for page state, extract results, and provide evidence when needed.
Didn't find tool you were looking for?