Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Mermaid diagram specialist for creating flowcharts, sequence diagrams, ERDs, and architecture visualizations
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 264% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 467% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 426% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 553% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 458% | 0% |
Purpose: Expert in creating comprehensive Mermaid diagrams for documentation, architecture visualization, and process mapping
Category: Tech Primary Users: tech-writer, architecture-validator, product-technical, tech-lead
Required:
Optional:
What the skill needs:
Objective: Choose appropriate diagram type for requirements
Available Diagram Types:
Decision Matrix:
Validation:
Output: Selected diagram type
Objective: Create process and decision flow diagrams
Syntax:
mermaidflowchart TD Start([Start]) --> Input[/User Input/] Input --> Validate{Valid?} Validate -->|Yes| Process[Process Data] Validate -->|No| Error[Show Error] Error --> Input Process --> Save[(Save to DB)] Save --> Success[/Success Response/] Success --> End([End])
Node Shapes:
[Rectangle] - Process step([Rounded]) - Start/End{Diamond} - Decision[/Parallelogram/] - Input/Output[(Database)] - Data storage((Circle)) - ConnectorDirection Options:
TD - Top to DownLR - Left to RightBT - Bottom to TopRL - Right to LeftExample - Booking Flow:
mermaidflowchart TD Start([User Initiates Booking]) --> CheckDates[Check Date Availability] CheckDates --> Available{Dates Available?} Available -->|No| ShowError[/Show Unavailable Message/] ShowError --> End([End]) Available -->|Yes| CreateBooking[Create Pending Booking] CreateBooking --> Payment[Process Payment] Payment --> PaymentSuccess{Payment Success?} PaymentSuccess -->|No| CancelBooking[Cancel Booking] CancelBooking --> ShowError PaymentSuccess -->|Yes| ConfirmBooking[Confirm Booking] ConfirmBooking --> SendEmail[/Send Confirmation Email/] SendEmail --> SaveDB[(Save to Database)] SaveDB --> Success[/Show Success/] Success --> End
Validation:
Output: Process flowchart
Objective: Document API interactions and message flows
Syntax:
mermaidsequenceDiagram actor User participant Frontend participant API participant DB participant Payment User->>Frontend: Click "Book" Frontend->>API: POST /api/bookings API->>DB: Check availability DB-->>API: Available API->>Payment: Process payment Payment-->>API: Payment successful API->>DB: Create booking DB-->>API: Booking created API-->>Frontend: 201 Created Frontend-->>User: Show confirmation
Participant Types:
actor - Human userparticipant - System/Servicedatabase - DatabaseArrow Types:
-> - Solid line (synchronous)--> - Dotted line (response)->> - Solid arrow (async message)-->> - Dotted arrow (async response)Example - Authentication Flow:
mermaidsequenceDiagram actor User participant Frontend participant API participant Clerk participant DB User->>Frontend: Enter credentials Frontend->>Clerk: Login request Clerk->>Clerk: Validate credentials alt Credentials valid Clerk-->>Frontend: JWT token Frontend->>API: Request with token API->>Clerk: Verify token Clerk-->>API: Token valid API->>DB: Fetch user data DB-->>API: User data API-->>Frontend: User session Frontend-->>User: Logged in else Credentials invalid Clerk-->>Frontend: Auth error Frontend-->>User: Show error end
Validation:
Output: Sequence diagram
Objective: Document database schema and relationships
Syntax:
mermaiderDiagram USER ||--o{ BOOKING : creates ACCOMMODATION ||--o{ BOOKING : "booked for" USER { uuid id PK string email UK string name timestamp created_at } BOOKING { uuid id PK uuid user_id FK uuid accommodation_id FK date check_in date check_out enum status } ACCOMMODATION { uuid id PK string name text description decimal price_per_night }
Relationship Types:
||--|| - One to one||--o{ - One to many}o--o{ - Many to many||--o| - One to zero or oneCardinality Symbols:
|| - Exactly oneo| - Zero or one}o - Zero or more}| - One or moreExample - Full Hospeda ERD:
mermaiderDiagram USER ||--o{ BOOKING : creates USER ||--o{ REVIEW : writes USER ||--o{ ACCOMMODATION : owns ACCOMMODATION ||--o{ BOOKING : "has bookings" ACCOMMODATION ||--o{ REVIEW : "has reviews" ACCOMMODATION }o--o{ AMENITY : includes BOOKING ||--|| PAYMENT : "has payment" USER { uuid id PK string clerk_id UK string email UK string name enum role timestamp created_at } ACCOMMODATION { uuid id PK uuid owner_id FK string name text description decimal price_per_night int max_guests enum status } BOOKING { uuid id PK uuid user_id FK uuid accommodation_id FK date check_in date check_out int guests enum status decimal total_price } REVIEW { uuid id PK uuid user_id FK uuid accommodation_id FK int rating text comment timestamp created_at } PAYMENT { uuid id PK uuid booking_id FK string mercadopago_id UK decimal amount enum status timestamp processed_at } AMENITY { uuid id PK string name string icon }
Validation:
Output: ERD diagram
Objective: Document system architecture at different levels
Context Level (System in environment):
mermaidC4Context title System Context - Hospeda Platform Person(guest, "Guest", "Tourist looking for accommodation") Person(owner, "Owner", "Accommodation owner") System(hospeda, "Hospeda Platform", "Tourism booking platform") System_Ext(clerk, "Clerk", "Authentication provider") System_Ext(mercadopago, "Mercado Pago", "Payment processor") System_Ext(email, "Email Service", "Transactional emails") Rel(guest, hospeda, "Searches and books", "HTTPS") Rel(owner, hospeda, "Manages listings", "HTTPS") Rel(hospeda, clerk, "Authenticates users", "API") Rel(hospeda, mercadopago, "Processes payments", "API") Rel(hospeda, email, "Sends notifications", "SMTP")
Container Level (Applications and data stores):
mermaidC4Container title Container - Hospeda Platform Person(user, "User") Container(web, "Web App", "Astro + React", "Public-facing website") Container(admin, "Admin Panel", "TanStack Start", "Management interface") Container(api, "API", "Hono", "Backend services") ContainerDb(db, "Database", "PostgreSQL", "Stores all data") Rel(user, web, "Uses", "HTTPS") Rel(user, admin, "Manages", "HTTPS") Rel(web, api, "Calls", "JSON/HTTPS") Rel(admin, api, "Calls", "JSON/HTTPS") Rel(api, db, "Reads/Writes", "SQL")
Component Level (Internal structure):
mermaidC4Component title Components - API Application Container(api, "API", "Hono") Component(routes, "Routes", "Hono Router", "HTTP endpoints") Component(services, "Services", "Business Logic", "Domain operations") Component(models, "Models", "Data Access", "DB operations") Component(middleware, "Middleware", "Cross-cutting", "Auth, logging, errors") Rel(routes, middleware, "Uses") Rel(routes, services, "Calls") Rel(services, models, "Uses") Rel(models, db, "Queries")
Validation:
Output: C4 architecture diagrams
Objective: Document state machines and lifecycles
Syntax:
mermaidstateDiagram-v2 [*] --> Pending Pending --> Confirmed : Payment Success Pending --> Cancelled : Payment Failed Pending --> Cancelled : User Cancels Confirmed --> CheckedIn : Check-in Date Confirmed --> Cancelled : Cancellation Request CheckedIn --> CheckedOut : Check-out Date CheckedOut --> Reviewed : User Submits Review CheckedOut --> [*] : 30 Days Elapsed Reviewed --> [*] Cancelled --> [*]
Example - Booking Lifecycle:
mermaidstateDiagram-v2 [*] --> Draft : Create Booking state "Pending Payment" as Pending state "Payment Processing" as Processing Draft --> Pending : Submit Booking Pending --> Processing : Initiate Payment Processing --> Confirmed : Payment Approved Processing --> PaymentFailed : Payment Declined PaymentFailed --> Pending : Retry Payment PaymentFailed --> Cancelled : Max Retries Confirmed --> Active : Check-in Date Reached Active --> Completed : Check-out Date Reached Confirmed --> CancelRequested : Cancellation Request CancelRequested --> RefundProcessing : Approve Cancellation RefundProcessing --> Cancelled : Refund Complete Completed --> [*] Cancelled --> [*] note right of Confirmed Owner notified Calendar blocked end note note right of Completed Review requested Payment released end note
Validation:
Output: State diagram
Objective: Apply consistent styling to diagrams
Theme Application:
mermaid%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#3B82F6', 'primaryTextColor':'#fff', 'primaryBorderColor':'#2563EB', 'lineColor':'#6B7280', 'secondaryColor':'#10B981', 'tertiaryColor':'#F59E0B' }}}%% flowchart TD A[Start] --> B[Process] B --> C[End]
Class Styling:
mermaidflowchart TD A[Normal] --> B[Success] B --> C[Error] classDef successClass fill:#10B981,stroke:#059669,color:#fff classDef errorClass fill:#EF4444,stroke:#DC2626,color:#fff class B successClass class C errorClass
Validation:
Output: Styled diagrams
Produces:
Success Criteria:
mermaidsequenceDiagram Client->>+API: GET /resource API->>+Service: fetchResource() Service->>+Model: findById() Model->>+DB: SELECT query DB-->>-Model: Row data Model-->>-Service: Entity Service-->>-API: DTO API-->>-Client: JSON response
mermaidflowchart TD Request[Incoming Request] --> Validate{Valid?} Validate -->|No| ValidationError[Validation Error] ValidationError --> ErrorHandler[Error Handler] Validate -->|Yes| Process[Process Request] Process --> DB{DB Success?} DB -->|No| DBError[Database Error] DBError --> ErrorHandler DB -->|Yes| Success[Success Response] ErrorHandler --> LogError[Log Error] LogError --> ErrorResponse[Error Response]
Other measured skills in the registry, with their headline benchmark lift.