--- name: mermaid description: Generate Mermaid diagrams from user requirements. Supports flowcharts, sequence diagrams, class diagrams, ER diagrams, Gantt charts, and 18 more diagram types. allowed-tools: Read Write Edit metadata: argument-hint: "[diagram description or requirements]" --- # Mermaid Diagram Generator Generate high-quality Mermaid diagram code based on user requirements. ## Workflow 1. **Understand Requirements**: Analyze user description to determine the most suitable diagram type 2. **Read Documentation**: Read the corresponding syntax reference for the diagram type 3. **Generate Code**: Generate Mermaid code following the specification 4. **Apply Styling**: Apply appropriate themes and style configurations ## Diagram Type Reference Select the appropriate diagram type and read the corresponding documentation: | Type | Documentation | Use Cases | | ---- | ------------- | --------- | | Flowchart | [flowchart.md](references/flowchart.md) | Processes, decisions, steps | | Sequence Diagram | [sequenceDiagram.md](references/sequenceDiagram.md) | Interactions, messaging, API calls | | Class Diagram | [classDiagram.md](references/classDiagram.md) | Class structure, inheritance, associations | | State Diagram | [stateDiagram.md](references/stateDiagram.md) | State machines, state transitions | | ER Diagram | [entityRelationshipDiagram.md](references/entityRelationshipDiagram.md) | Database design, entity relationships | | Gantt Chart | [gantt.md](references/gantt.md) | Project planning, timelines | | Pie Chart | [pie.md](references/pie.md) | Proportions, distributions | | Mindmap | [mindmap.md](references/mindmap.md) | Hierarchical structures, knowledge graphs | | Timeline | [timeline.md](references/timeline.md) | Historical events, milestones | | Git Graph | [gitgraph.md](references/gitgraph.md) | Branches, merges, versions | | Quadrant Chart | [quadrantChart.md](references/quadrantChart.md) | Four-quadrant analysis | | Requirement Diagram | [requirementDiagram.md](references/requirementDiagram.md) | Requirements traceability | | C4 Diagram | [c4.md](references/c4.md) | System architecture (C4 model) | | Sankey Diagram | [sankey.md](references/sankey.md) | Flow, conversions | | XY Chart | [xyChart.md](references/xyChart.md) | Line charts, bar charts | | Block Diagram | [block.md](references/block.md) | System components, modules | | Packet Diagram | [packet.md](references/packet.md) | Network protocols, data structures | | Kanban | [kanban.md](references/kanban.md) | Task management, workflows | | Architecture Diagram | [architecture.md](references/architecture.md) | System architecture | | Radar Chart | [radar.md](references/radar.md) | Multi-dimensional comparison | | Treemap | [treemap.md](references/treemap.md) | Hierarchical data visualization | | User Journey | [userJourney.md](references/userJourney.md) | User experience flows | | ZenUML | [zenuml.md](references/zenuml.md) | Sequence diagrams (code style) | ## Configuration & Themes - [Theming](references/config-theming.md) - Custom colors and styles - [Directives](references/config-directives.md) - Diagram-level configuration - [Layouts](references/config-layouts.md) - Layout direction and spacing - [Configuration](references/config-configuration.md) - Global settings - [Math](references/config-math.md) - LaTeX math support ## Preferred Style (Flowcharts) ### Arrow weight by meaning | Arrow | Use | |-------|-----| | `==>` | Main flow / happy path / player traffic | | `-->` | API calls, decisions, branch outcomes | | `-.->` | Async, background, retry loops | ### Color palette Always include these classDefs in flowcharts: ``` classDef deploy fill:#d5e8d4,stroke:#82b366,color:#000 classDef svc fill:#dae8fc,stroke:#6c8ebf,color:#000 classDef pvc fill:#f5f5f5,stroke:#666,color:#000 classDef external fill:#f5f5f5,stroke:#666,color:#000,stroke-dasharray:5 5 classDef ok fill:#d5e8d4,stroke:#82b366,color:#000 classDef kick fill:#f8cecc,stroke:#b85450,color:#000 ``` ### Layout rules - **Natural depth** — each terminal node gets its own exit point; no shared terminals across paths of different lengths. Dagre places nodes at `max(predecessor depths) + 1`. - **Side API calls** — branch API call nodes off the calling node with `-->` at the same depth as the next decision node so they appear side-by-side, not inline in the `==>` chain. - **Terminal naming** — prefix `✓` for success, `✗` for failure (e.g. `✗ Kick: account locked`). - **Section comments** — use `%% ── Section name ──` to separate logical groups (traffic, auth, control plane, etc.). ## Output Specification Generated Mermaid code should: 1. Be wrapped in ```mermaid code blocks 2. Have correct syntax that renders directly 3. Have clear structure with proper line breaks and indentation 4. Use semantic node naming 5. Apply the preferred style above for flowcharts ## Example Output ```mermaid flowchart TD A[Start] --> B{Condition} B -->|Yes| C(["✓ Done"]):::ok B -->|No| D(["✗ Failed"]):::kick classDef ok fill:#d5e8d4,stroke:#82b366,color:#000 classDef kick fill:#f8cecc,stroke:#b85450,color:#000 ``` --- User requirements: $ARGUMENTS