Agent skill

mermaid-expert

Expert guidance for Mermaid.js diagramming library. Create flowcharts, sequence diagrams, class diagrams, state diagrams, Gantt charts, git graphs, and block diagrams. Use when working with Mermaid syntax, creating diagrams, or visualizing complex concepts and workflows.

Stars 1
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/StrayDragon/my-claude-skills/tree/main/mermaid-expert

SKILL.md

Mermaid Expert

Expert guidance for Mermaid.js, the powerful JavaScript library for creating diagrams and visualizations using text-based syntax. Mermaid transforms simple text descriptions into professional-looking diagrams that can be embedded in documentation, presentations, and web applications.

Additional Resources

For comprehensive documentation and advanced features, see the Mermaid Source Documentation which includes:

  • Flow Charts Guide - Complete flowchart syntax and examples

For integration details and configuration options, refer to the main documentation at docs/snapshot/v11.12.1/.

Core Concepts

Mermaid is a text-to-diagram tool that allows you to create:

  • Flowcharts for processes and decision trees
  • Sequence diagrams for interactions and timelines
  • Class diagrams for software architecture
  • State diagrams for finite state machines
  • Gantt charts for project management
  • Git graphs for version control visualization
  • Block diagrams for system layouts

Getting Started

Basic Mermaid syntax structure:

mermaid
diagramType
    [diagram content]

Simple flowchart example:

mermaid
flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process 1]
    B -->|No| D[Process 2]
    C --> E[End]
    D --> E

Installation and Setup

In HTML:

html
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>

In Markdown/Documentation: Most modern platforms (GitHub, GitLab, Notion) support Mermaid natively using code blocks with mermaid language identifier.

Node.js/npm:

bash
npm install mermaid

Command Line Interface

For flowchart diagrams only: mmdr (mermaid-rs-renderer)

mmdr is a fast native Rust renderer for flowchart diagrams only. It is ~1000x faster than mermaid-cli and requires no browser or Node.js.

Check if installed:

bash
mmdr --version

If not found, install from: https://github.com/1jehuang/mermaid-rs-renderer

Usage (flowcharts only):

bash
# Pipe to stdout
echo 'flowchart LR; A-->B-->C' | mmdr -e svg

# File to file
mmdr -i diagram.mmd -o output.svg -e svg

For all other diagram types: mermaid-cli

Check if installed:

bash
mmdc --version

If not found, install from: https://github.com/mermaid-js/mermaid-cli

bash
# Convert to SVG
mmdc -i input.mmd -o output.svg

# Convert to PNG with dark theme
mmdc -i input.mmd -o output.png -t dark -b transparent

# Process markdown files
mmdc -i readme.template.md -o readme.md

Flow Charts

Basic Flowchart

mermaid
flowchart LR
    A[Start] --> B[Process]
    B --> C{Decision}
    C -->|Yes| D[Action 1]
    C -->|No| E[Action 2]
    D --> F[End]
    E --> F

Flowchart Syntax

  • flowchart TD - Top Down direction
  • flowchart LR - Left to Right direction
  • A[Text] - Rectangle node
  • A{Text} - Diamond decision node
  • A((Text)) - Circle node
  • A>Text] - Stadium shape
  • A --> B - Arrow connection
  • A -->|Label| B - Labeled arrow

Sequence Diagrams

Basic Sequence Diagram

mermaid
sequenceDiagram
    participant Alice
    participant Bob
    Alice->>Bob: Hello Bob, how are you?
    Bob-->>Alice: I am good thanks!
    Alice->>Bob: See you later!

Sequence Diagram Syntax

  • participant Name - Define participant
  • A->>B: Message - Synchronous message
  • A-->B: Message - Async message (dashed line)
  • A-->>B: Message - Return message
  • rect rgb(...) - Group messages
  • loop / alt / opt - Control structures

Class Diagrams

Basic Class Diagram

mermaid
classDiagram
    class Animal{
        +String name
        +eat()
    }
    class Duck{
        +quack()
    }
    Animal <|-- Duck

Class Diagram Syntax

  • class ClassName{ ... } - Define class
  • +Type name - Public member
  • -Type name - Private member
  • methodName() - Method
  • Child <|-- Parent - Inheritance
  • A *-- B - Composition
  • A o-- B - Aggregation

State Diagrams

Basic State Diagram

mermaid
stateDiagram-v2
    [*] --> Idle
    Idle --> Processing
    Processing --> Success
    Processing --> Failed
    Success --> [*]
    Failed --> [*]

State Diagram Syntax

  • [*] - Start/end state
  • A --> B - Transition
  • A: event - Triggered transition
  • state A { ... } - Composite state
  • [*] --> A - Initial state

Gantt Charts

Basic Gantt Chart

mermaid
gantt
    title Project Timeline
    dateFormat  YYYY-MM-DD
    section Phase 1
    Design      :a1, 2024-01-01, 7d
    section Phase 2
    Development :a2, after a1, 14d
    Testing     :a3, after a2, 7d

Gantt Syntax

  • title Text - Chart title
  • dateFormat YYYY-MM-DD - Date format
  • section Name - Section header
  • Task :id, start, duration - Define task
  • after taskId - Dependency

Git Graphs

Basic Git Graph

mermaid
gitGraph
    commit
    commit
    branch develop
    checkout develop
    commit
    commit
    checkout main
    merge develop
    commit

Git Graph Syntax

  • commit - Create commit
  • branch name - Create branch
  • checkout name - Switch branch
  • merge name - Merge branch
  • cherry-pick id - Cherry-pick commit

Block Diagrams

Basic Block Diagram

mermaid
block-beta
    columns 1
    block:db:1
      database[(Database)]
    end
    block:app:2
      service[Service]
      api[API]
    end
    db -- API

Block Diagram Syntax

  • block:name:width - Define block
  • node[(Text)] - Rounded node
  • node[Text] - Square node
  • A -- B - Connection
  • columns N - Column layout

Integration and Usage

In Markdown

Most platforms support Mermaid natively:

markdown
```mermaid
flowchart LR
    A --> B
```

In HTML

html
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<div class="mermaid">
flowchart LR
    A --> B
</div>

In JavaScript

javascript
import mermaid from 'mermaid';

mermaid.initialize({ startOnLoad: true });

// Render programmatically
const diagram = await mermaid.render('diagram-id', 'flowchart LR\nA-->B');

Best Practices

  1. Keep diagrams simple - Complex diagrams are hard to read
  2. Use consistent styling - Same shapes for similar elements
  3. Add labels to connections - Clarify relationships
  4. Break down complex diagrams - Split into multiple simpler ones
  5. Test rendering - Different tools may render differently

Troubleshooting

Common Issues:

  • Syntax errors: Check for missing semicolons or incorrect syntax
  • Rendering issues: Ensure correct Mermaid version
  • Platform support: Not all platforms support all diagram types
  • Performance: Large diagrams may render slowly

Debug Tips:

  • Start with simple diagrams
  • Use official syntax validator
  • Test on multiple platforms
  • Check Mermaid version compatibility

See references/ADVANCED.md for advanced features including styling, theming, and complex diagram patterns.

Expand your agent's capabilities with these related and highly-rated skills.

StrayDragon/my-claude-skills

python-expert-tester

Expert guidance for Python testing that analyzes your existing setup and provides evidence-based recommendations. I'll examine your current tests, configurations, and dependencies before suggesting changes. Use when writing tests, improving coverage, debugging issues, or optimizing testing setup.

1 0
Explore
StrayDragon/my-claude-skills

langgraph-python-expert

Expert guidance for LangGraph Python library. Build stateful, multi-actor applications with LLMs using nodes, edges, and state management. Use when working with LangGraph, building agent workflows, state machines, or complex multi-step LLM applications. Requires langgraph, langchain-core packages.

1 0
Explore
StrayDragon/my-claude-skills

ui-ux-pro-max

UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.

1 0
Explore
StrayDragon/my-claude-skills

vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

1 0
Explore
StrayDragon/my-claude-skills

python-log-expert

Expert guidance for Python logging libraries including structlog, standard logging, and log analysis. Use when working with Python logs, troubleshooting logging issues, implementing logging best practices, or analyzing structlog source code implementation. Includes complete structlog source code in source/structlog/ for deep implementation analysis. Requires structlog package.

1 0
Explore
StrayDragon/my-claude-skills

feishu-openapi-dev

Expert guidance for Feishu (飞书) / Lark OpenAPI Python development. Build Feishu applications, robots, handle event subscriptions, card callbacks, and API integrations. Use when working with Feishu SDK, lark-oapi, building Feishu bots, or mentioning 飞书 development.

1 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results