<< All versions
Skill v1.0.1
currentAutomated scan100/100ynulihao/agentskillos/diagramming
1 files
──Details
PublishedJuly 6, 2026 at 09:09 PM
Content Hashsha256:1afa45fc60d00e00...
Git SHAc3cfae10ea34
Bump Typepatch
──Files
Files (1 file, 9.4 KB)
SKILL.md9.4 KBactive
SKILL.md · 397 lines · 9.4 KB
version: "1.0.1" name: diagramming description: "Create technical diagrams using Mermaid syntax for architecture, sequences, ERDs, flowcharts, and state machines. Use for visualizing system design, data flows, and processes. Triggers: diagram, mermaid, architecture diagram, sequence diagram, flowchart, ERD, entity relationship, state diagram, C4 model, component diagram, visualize, draw."
Diagramming
Overview
Create clear, maintainable technical diagrams using Mermaid syntax. This skill covers architecture diagrams, sequence diagrams, entity-relationship diagrams, flowcharts, and state diagrams for documenting software systems.
Instructions
1. Choose the Right Diagram Type
| Diagram Type | Use When | |
|---|---|---|
| Architecture/C4 | Showing system structure and components | |
| Sequence | Showing interactions over time | |
| ERD | Showing data models and relationships | |
| Flowchart | Showing decision logic and processes | |
| State | Showing state transitions |
2. General Mermaid Principles
- Keep diagrams focused on one concept
- Use consistent naming conventions
- Add descriptive labels to relationships
- Limit complexity (split large diagrams)
- Use comments for documentation
Best Practices
- Simplicity: One diagram, one concept
- Consistency: Same naming across related diagrams
- Readability: Left-to-right or top-to-bottom flow
- Labels: Always label relationships and transitions
- Context: Include a title and brief description
Examples
Architecture Diagrams (C4 Model)
Context Diagram (Level 1)
mermaid
C4Contexttitle System Context Diagram for E-Commerce PlatformPerson(customer, "Customer", "A user who purchases products")Person(admin, "Admin", "Manages products and orders")System(ecommerce, "E-Commerce Platform", "Allows customers to browse and purchase products")System_Ext(payment, "Payment Gateway", "Handles payment processing")System_Ext(shipping, "Shipping Provider", "Handles order fulfillment")System_Ext(email, "Email Service", "Sends notifications")Rel(customer, ecommerce, "Browses, purchases")Rel(admin, ecommerce, "Manages")Rel(ecommerce, payment, "Processes payments")Rel(ecommerce, shipping, "Creates shipments")Rel(ecommerce, email, "Sends emails")
Container Diagram (Level 2)
mermaid
C4Containertitle Container Diagram for E-Commerce PlatformPerson(customer, "Customer")Container_Boundary(ecommerce, "E-Commerce Platform") {Container(web, "Web Application", "React", "Customer-facing UI")Container(api, "API Gateway", "Node.js", "REST API")Container(cart, "Cart Service", "Node.js", "Shopping cart management")Container(catalog, "Catalog Service", "Python", "Product catalog")Container(order, "Order Service", "Java", "Order processing")ContainerDb(db, "Database", "PostgreSQL", "Stores all data")ContainerQueue(queue, "Message Queue", "RabbitMQ", "Async messaging")}Rel(customer, web, "Uses", "HTTPS")Rel(web, api, "Calls", "JSON/HTTPS")Rel(api, cart, "Routes to")Rel(api, catalog, "Routes to")Rel(api, order, "Routes to")Rel(cart, db, "Reads/writes")Rel(catalog, db, "Reads")Rel(order, db, "Reads/writes")Rel(order, queue, "Publishes events")
Component Diagram (Level 3)
mermaid
flowchart TBsubgraph "Order Service"controller[Order Controller]service[Order Service]repo[Order Repository]validator[Order Validator]publisher[Event Publisher]endsubgraph "External"db[(PostgreSQL)]queue[RabbitMQ]endcontroller --> serviceservice --> validatorservice --> reposervice --> publisherrepo --> dbpublisher --> queue
Sequence Diagrams
Basic Request Flow
mermaid
sequenceDiagramautonumberparticipant C as Clientparticipant G as API Gatewayparticipant A as Auth Serviceparticipant S as Serviceparticipant D as DatabaseC->>G: POST /api/resourceG->>A: Validate tokenA-->>G: Token validG->>S: Forward requestS->>D: Query dataD-->>S: Return resultsS-->>G: Response (200 OK)G-->>C: Response with data
Error Handling Flow
mermaid
sequenceDiagramparticipant C as Clientparticipant S as Serviceparticipant D as DatabaseC->>S: POST /api/usersS->>S: Validate inputalt Validation failsS-->>C: 400 Bad Requestelse Validation passesS->>D: INSERT useralt Database errorD-->>S: Constraint violationS-->>C: 409 Conflictelse SuccessD-->>S: User createdS-->>C: 201 Createdendend
Async Processing
mermaid
sequenceDiagramparticipant C as Clientparticipant API as APIparticipant Q as Queueparticipant W as Workerparticipant N as NotificationC->>API: Submit jobAPI->>Q: Enqueue jobAPI-->>C: 202 Accepted (job ID)Note over Q,W: Async processingQ->>W: Dequeue jobW->>W: Process jobW->>N: Send notificationN-->>C: Job complete notification
Entity-Relationship Diagrams
Basic ERD
mermaid
erDiagramUSER ||--o{ ORDER : placesUSER {uuid id PKstring email UKstring nametimestamp created_at}ORDER ||--|{ ORDER_ITEM : containsORDER {uuid id PKuuid user_id FKdecimal totalstring statustimestamp created_at}ORDER_ITEM }|--|| PRODUCT : referencesORDER_ITEM {uuid id PKuuid order_id FKuuid product_id FKint quantitydecimal price}PRODUCT ||--o{ PRODUCT_CATEGORY : "belongs to"PRODUCT {uuid id PKstring nametext descriptiondecimal priceint stock}CATEGORY ||--o{ PRODUCT_CATEGORY : containsCATEGORY {uuid id PKstring nameuuid parent_id FK}PRODUCT_CATEGORY {uuid product_id PK,FKuuid category_id PK,FK}
ERD with Relationships Explained
mermaid
erDiagramCUSTOMER ||--o{ ORDER : "places (1:N)"ORDER ||--|{ LINE_ITEM : "contains (1:N, required)"PRODUCT ||--o{ LINE_ITEM : "appears in (1:N)"CUSTOMER }|--|| ADDRESS : "has billing (N:1, required)"CUSTOMER }o--o{ ADDRESS : "has shipping (N:N)"
Relationship notation:
||exactly oneo|zero or one}|one or more}ozero or more
Flowcharts
Decision Logic
mermaid
flowchart TDA[Start: User Login] --> B{Valid credentials?}B -->|Yes| C{2FA enabled?}B -->|No| D[Show error message]D --> AC -->|Yes| E[Send 2FA code]E --> F{Code valid?}F -->|Yes| G[Create session]F -->|No| H{Attempts < 3?}H -->|Yes| EH -->|No| I[Lock account]C -->|No| GG --> J[Redirect to dashboard]J --> K[End]I --> K
Process Flow
mermaid
flowchart LRsubgraph "CI Pipeline"A[Push Code] --> B[Run Tests]B --> C{Tests Pass?}C -->|Yes| D[Build Image]C -->|No| E[Notify Developer]D --> F[Push to Registry]endsubgraph "CD Pipeline"F --> G[Deploy to Staging]G --> H[Run E2E Tests]H --> I{Tests Pass?}I -->|Yes| J[Deploy to Production]I -->|No| K[Rollback]end
State Diagrams
Order State Machine
mermaid
stateDiagram-v2[*] --> Draft: Create orderDraft --> Pending: SubmitDraft --> Cancelled: CancelPending --> Confirmed: Payment receivedPending --> Cancelled: Payment failedPending --> Cancelled: Timeout (24h)Confirmed --> Processing: Begin fulfillmentConfirmed --> Cancelled: Customer cancelProcessing --> Shipped: Ship orderProcessing --> Cancelled: Out of stockShipped --> Delivered: Delivery confirmedShipped --> Returned: Return initiatedDelivered --> Returned: Return requestedDelivered --> [*]: CompleteReturned --> Refunded: Process refundRefunded --> [*]: CompleteCancelled --> [*]: Complete
Connection State Machine
mermaid
stateDiagram-v2[*] --> DisconnectedDisconnected --> Connecting: connect()Connecting --> Connected: successConnecting --> Disconnected: failureConnected --> Disconnected: disconnect()Connected --> Reconnecting: connection lostReconnecting --> Connected: successReconnecting --> Disconnected: max retriesnote right of ReconnectingExponential backoffMax 5 retriesend note
Class Diagrams
mermaid
classDiagramclass Repository~T~ {<<interface>>+findById(id: string) T+findAll() List~T~+save(entity: T) T+delete(id: string) void}class UserRepository {-db: Database+findById(id: string) User+findAll() List~User~+save(entity: User) User+delete(id: string) void+findByEmail(email: string) User}class User {+id: string+email: string+name: string+createdAt: Date+validate() boolean}Repository~T~ <|.. UserRepositoryUserRepository --> User