Skip to content
Back to skills

Mermaid Diagram

ASecurity

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.

  • 866 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 8, 2026
documentationgoshellnodetestinggitdatabasedocumentation

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add wecode-ai/Wegent --skill mermaid-diagram --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mermaid Diagram?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mermaid Diagram
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wecode-ai-mermaid-diagram/badge)](https://www.skillsdirectory.com/skills/wecode-ai-mermaid-diagram)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: "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."
displayName: "绘制图表"
version: "2.0.0"
author: "Wegent Team"
tags: ["diagram", "visualization", "mermaid"]
bindShells: ["Chat"]
provider:
  module: provider
  class: MermaidToolProvider
tools:
  - name: render_mermaid
    provider: mermaid
    config:
      timeout: 30
  - name: read_mermaid_reference
    provider: mermaid
dependencies:
  - app.chat_shell.tools.pending_requests
---

# 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:

1. **Step 1: Validate with `render_mermaid` tool** - Use the tool to validate your mermaid syntax
2. **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

```json
{
  "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:

```mermaid
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:**

1. Read the error message carefully
2. Identify the problematic line
3. Fix the syntax issue
4. Call `render_mermaid` again with the corrected code
5. 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:

1. Detects syntax errors in your Mermaid code
2. Automatically attempts to fix common issues using AI
3. 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:**

1. **NEVER** output any mermaid code block
2. **NEVER** try to render the diagram again
3. **MUST** explain to the user that the diagram could not be rendered
4. **MUST** show the error details so the user can help fix it
5. **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_instruction` ensures a good user experience

---

### Complete Workflow Summary

1. **Generate** the mermaid code based on user requirements
2. **Call** `render_mermaid` tool with the code to validate syntax
3. **If failed**: Read the error, fix the code, and retry from step 2
4. **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_mermaid` tool.

## Common Issues

1. **Syntax Errors**: Missing arrows, brackets, or unquoted special characters.
2. **Large Diagrams**: Hard to read and render; break them down.
3. **Node IDs**: Using Chinese or special characters in IDs can cause failures. Use `ID["Label"]` format.
4. **Rendering**: If a diagram fails to render, try simplifying the structure or checking for valid syntax versions.

Files in this skill

  • SKILL.md8.8 KB
  • provider.py3.3 KB
  • read_reference.py35 KB
  • render_mermaid.py20 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.