mermaid
Generate diagrams from text with Mermaid.js. Use when a user asks to create flowcharts, sequence diagrams, ERD diagrams, Gantt charts, class diagrams, or embed diagrams in Markdown documentation.
What this skill does
# Mermaid — Diagrams as Code in Markdown
## Overview
You are an expert in Mermaid, the JavaScript-based diagramming library that renders diagrams from text definitions embedded in Markdown. You help developers create flowcharts, sequence diagrams, class diagrams, ERDs, Gantt charts, and architecture diagrams that live alongside code and documentation — versioned in Git, rendered in GitHub, GitLab, Notion, and VitePress.
## Instructions
### Flowcharts
```mermaid
flowchart TD
A[User Request] --> B{Authenticated?}
B -->|Yes| C{Rate Limited?}
B -->|No| D[Return 401]
C -->|Under Limit| E[Process Request]
C -->|Over Limit| F[Return 429]
E --> G{Success?}
G -->|Yes| H[Return 200]
G -->|No| I[Return 500]
I --> J[Log Error]
J --> K[Alert On-Call]
```
### Sequence Diagrams
```mermaid
sequenceDiagram
actor User
participant App as Frontend
participant API as API Gateway
participant Auth as Auth Service
participant DB as Database
User->>App: Click "Login"
App->>API: POST /auth/login {email, password}
API->>Auth: Validate credentials
Auth->>DB: SELECT user WHERE email = ?
DB-->>Auth: User record
Auth->>Auth: Verify password hash
alt Valid credentials
Auth-->>API: JWT token + refresh token
API-->>App: 200 {token, user}
App->>App: Store token in httpOnly cookie
App-->>User: Redirect to dashboard
else Invalid credentials
Auth-->>API: Authentication failed
API-->>App: 401 Unauthorized
App-->>User: Show error message
end
```
### Entity Relationship Diagrams
```mermaid
erDiagram
USERS ||--o{ ORDERS : places
USERS ||--o{ REVIEWS : writes
USERS {
uuid id PK
string email UK
string name
string plan
timestamp created_at
}
ORDERS ||--|{ ORDER_ITEMS : contains
ORDERS {
uuid id PK
uuid user_id FK
decimal amount
string status
timestamp created_at
}
PRODUCTS ||--o{ ORDER_ITEMS : "included in"
PRODUCTS ||--o{ REVIEWS : "reviewed by"
PRODUCTS {
uuid id PK
string name
decimal price
integer stock
}
ORDER_ITEMS {
uuid order_id FK
uuid product_id FK
integer quantity
decimal price
}
```
### Architecture Diagrams (C4)
```mermaid
C4Context
title System Context — E-Commerce Platform
Person(customer, "Customer", "Browses and purchases products")
Person(admin, "Admin", "Manages products and orders")
System(webapp, "Web Application", "Next.js frontend")
System(api, "API Gateway", "Node.js REST API")
System(payments, "Payment Service", "Stripe integration")
System_Ext(stripe, "Stripe", "Payment processing")
System_Ext(email, "SendGrid", "Email delivery")
System_Ext(cdn, "CloudFront", "Static asset delivery")
Rel(customer, webapp, "Browses products")
Rel(admin, webapp, "Manages store")
Rel(webapp, api, "API calls", "HTTPS/JSON")
Rel(api, payments, "Process payments")
Rel(payments, stripe, "Charge cards", "HTTPS")
Rel(api, email, "Send emails", "HTTPS")
Rel(webapp, cdn, "Load assets")
```
### Gantt Charts
```mermaid
gantt
title Product Launch Timeline
dateFormat YYYY-MM-DD
axisFormat %b %d
section Discovery
User interviews :done, d1, 2026-01-06, 2w
Assumption testing :done, d2, after d1, 1w
PRD writing :done, d3, after d2, 1w
section Development
Backend API :active, dev1, 2026-02-03, 3w
Frontend UI :active, dev2, 2026-02-10, 3w
Integration testing : dev3, after dev1, 1w
section Launch
Beta rollout : l1, after dev3, 2w
GA launch :milestone, l2, after l1, 0d
Post-launch monitoring: l3, after l2, 2w
```
### State Diagrams
```mermaid
stateDiagram-v2
[*] --> Draft
Draft --> Review: Submit for review
Review --> Approved: Approve
Review --> Draft: Request changes
Approved --> Published: Publish
Published --> Archived: Archive
Draft --> Deleted: Delete
Archived --> Published: Restore
state Review {
[*] --> PeerReview
PeerReview --> ManagerReview: Peer approved
PeerReview --> [*]: Peer rejected
ManagerReview --> [*]
}
```
## Installation
```bash
npm install mermaid # JavaScript library
# Or use CDN: <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
# GitHub, GitLab, Notion render Mermaid natively in Markdown
# Just use ```mermaid code blocks
```
## Examples
**Example 1: User asks to set up mermaid**
User: "Help me set up mermaid for my project"
The agent should:
1. Check system requirements and prerequisites
2. Install or configure mermaid
3. Set up initial project structure
4. Verify the setup works correctly
**Example 2: User asks to build a feature with mermaid**
User: "Create a dashboard using mermaid"
The agent should:
1. Scaffold the component or configuration
2. Connect to the appropriate data source
3. Implement the requested feature
4. Test and validate the output
## Guidelines
1. **Diagrams as code** — Keep Mermaid diagrams in Markdown files alongside code; they version, diff, and review in PRs
2. **GitHub native rendering** — GitHub renders Mermaid in README and docs automatically; no extra tooling needed
3. **Sequence diagrams for APIs** — Use sequence diagrams to document API flows; clearer than prose for multi-service interactions
4. **ERDs from actual schema** — Generate Mermaid ERDs from your database schema; keep them in sync with migrations
5. **Keep it simple** — Mermaid diagrams should fit on one screen; split complex systems into multiple diagrams
6. **Theme for presentations** — Use `%%{init: {'theme': 'dark'}}%%` for dark-mode diagrams in presentations
7. **C4 for architecture** — Use C4 context/container/component diagrams for system architecture documentation
8. **Gantt for planning** — Use Gantt charts in project READMEs to communicate timelines; auto-renders in GitHub
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.