Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when designing, architecting, or planning a new system from requirements or ideas - transforms concepts into navigable design catalog using EventStorming methodology, Mermaid diagrams, and progressive elaboration through 5 phases (Requirements, Big Picture, Processes, Data/Flows, Integration)
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 139% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 194% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 128% | 0% |
Transform requirements into navigable design catalogs using EventStorming methodology and Mermaid diagrams.
Core principle: Progressive elaboration through event-driven thinking, producing token-efficient visual artifacts in standardized catalog structure.
Announce at start: "I'm using the system-design skill to create a design catalog for your system."
Use when:
Don't use when:
| Phase | Key Activities | Output Files | | ------------------- | -------------------------------------------- | ------------------------------------------------ | | 1. Requirements | Ask questions, identify actors/constraints | requirements.md | | 2. Big Picture | EventStorming timeline with events/commands | big-picture.mmd | | 3. Processes | Zoom into critical processes, add aggregates | process-{name}.mmd | | 4. Data & Flows | ERD, state charts, sequences | erd.mmd, state-{entity}.mmd, sequence-{flow}.mmd | | 5. Integration | Generate catalog README | README.md |
NEVER make "industry-standard assumptions" without asking the user first.
Bad:
❌ "I'll assume standard PostgreSQL for data storage"
❌ "Proceeding with industry-standard assumptions"
❌ "I'll design for moderate scale (10K users)"Good:
✅ "What database are you currently using?" (AskUserQuestion with options)
✅ "What scale are you targeting?" (AskUserQuestion: 100 users / 10K / 100K+)
✅ "Budget constraints for infrastructure?" (Ask directly)All diagrams MUST use Mermaid format. NO exceptions.
Bad:
❌ ASCII art entity relationships
❌ Text-based flowcharts
❌ "I'll create ASCII diagrams because they're universal"Good:
✅ Mermaid ER diagrams
✅ Mermaid flowcharts
✅ Mermaid sequence diagrams
✅ Mermaid state chartsUse EventStorming methodology for Phases 2-3. Required.
Bad:
❌ "Using traditional waterfall analysis"
❌ "Creating use cases and functional specs"
❌ "Based on proven patterns" (without events)Good:
✅ "Let's identify key business events" (EventStorming)
✅ "What triggers each event?" (Commands)
✅ "What data changes when this event happens?" (Aggregates)All artifacts go into docs/design-catalog/ with specific structure.
docs/design-catalog/
README.md # Navigation hub
requirements.md
big-picture.mmd
processes/
process-{name}.mmd
data/
erd.mmd
state-{entity}.mmd
flows/
sequence-{flow}.mmdNo random file names. No mixed concerns.
Stay at design abstraction. NO implementation details in design phase.
Forbidden in design artifacts:
Allowed:
Prefer Mermaid diagrams over lengthy text descriptions.
Token targets by project complexity:
If exceeding targets, check:
Bad:
❌ 4,000 lines of documentation
❌ Verbose explanations of every decision
❌ Repeating information across files
❌ "This is complex so 50K tokens is reasonable"Good:
✅ Mermaid diagram with annotations
✅ Cross-reference: "See big-picture.mmd for event flow"
✅ Tables for entity attributes
✅ Minimal prose, maximum visual clarityREQUIRED: Use TodoWrite to track phase progress.
Copy this checklist:
System Design Progress:
- [ ] Phase 1: Requirements (actors, constraints, goals identified)
- [ ] Phase 2: Big Picture (EventStorming timeline created)
- [ ] Phase 3: Processes (Critical processes detailed)
- [ ] Phase 4: Data & Flows (ERD, state charts, sequences created)
- [ ] Phase 5: Integration (Catalog assembled, next steps planned)Goal: Understand context before designing
Activities:
Questions to ask:
Output: Create docs/design-catalog/requirements.md
Validation: Present requirements summary, ask: "Does this capture the scope?"
Goal: Understand business process through events
Announce: "Let's explore the business process through EventStorming."
Activities:
EventStorming Color Conventions (Mermaid):
mermaidflowchart LR %% Style definitions classDef event fill:#ff9800,stroke:#e65100,color:#000 classDef command fill:#2196f3,stroke:#0d47a1,color:#fff classDef actor fill:#ffeb3b,stroke:#f57f17,color:#000 classDef system fill:#9c27b0,stroke:#4a148c,color:#fff classDef aggregate fill:#4caf50,stroke:#1b5e20,color:#fff classDef hotspot fill:#f44336,stroke:#b71c1c,color:#fff Actor[Customer]:::actor Cmd1[Place Order]:::command Evt1[Order Placed]:::event Agg1[Order]:::aggregate Sys1[Payment Gateway]:::system Hot1[? Refund policy unclear]:::hotspot Actor --> Cmd1 Cmd1 --> Evt1 Evt1 --> Agg1 Agg1 --> Sys1 Evt1 -.question.- Hot1
Output: Create docs/design-catalog/big-picture.mmd
Validation: Present diagram, ask: "Does this capture the high-level flow?"
Goal: Detail specific processes from big picture
Activities:
Criteria for "critical" processes:
Output: Create docs/design-catalog/processes/process-{name}.mmd (one per process)
Validation: Review each process diagram before moving to next
Goal: Model data, state, and interactions
4.1 Entity-Relationship Diagram
Output: docs/design-catalog/data/erd.mmd
4.2 State Charts
Output: docs/design-catalog/data/state-{entity}.mmd (one per entity)
4.3 Sequence Diagrams
Output: docs/design-catalog/flows/sequence-{flow}.mmd (one per flow)
Don't diagram everything - focus on what adds clarity.
Validation: Present all artifacts, ask: "Does this design feel complete?"
Goal: Assemble catalog and plan next actions
Activities:
CRITICAL: The README must include the FULL Mermaid diagram content inline, not just links. Copy the entire contents of each .mmd file into the README's mermaid code blocks. This enables preview without opening individual files.
Options:
Output: docs/design-catalog/README.md (with all diagrams embedded)
User can jump back to earlier phases when insights emerge.
Support non-linear progression:
Flexibility principle: Design is discovery - support iteration
See templates/ directory for:
big-picture-template.mmd - EventStorming timelineprocess-template.mmd - Process EventStormingerd-template.mmd - Entity-Relationshipstate-template.mmd - State chartsequence-template.mmd - Sequence diagramrequirements-template.md - Requirements structurecatalog-readme-template.md - Catalog README| Excuse | Reality | | --------------------------------------------- | -------------------------------------------------- | | "Industry-standard assumptions are fine" | Ask questions to understand THIS project | | "ASCII diagrams are version control friendly" | Mermaid is required - renders AND version controls | | "Comprehensive documentation is better" | Token-efficient diagrams beat verbose prose | | "Traditional approach works" | EventStorming reveals events you'd miss otherwise | | "Production-ready blueprint needed" | Design phase stays conceptual, not implementation | | "All aspects should be covered" | Focus on design artifacts, defer implementation | | "Database schema helps developers" | Too early - stay at entity/relationship level | | "Technology choices are obvious" | Mark as hotspot or ask user, don't assume |
If you catch yourself doing ANY of these, you're violating the skill:
All of these mean: Stop, re-read the skill, start over correctly.
Design is successful when:
mermaidflowchart LR %% Styles classDef event fill:#ff9800,stroke:#e65100,color:#000 classDef command fill:#2196f3,stroke:#0d47a1,color:#fff classDef actor fill:#ffeb3b,stroke:#f57f17,color:#000 classDef system fill:#9c27b0,stroke:#4a148c,color:#fff classDef hotspot fill:#f44336,stroke:#b71c1c,color:#fff %% Actors Customer[Customer]:::actor Seller[Seller]:::actor %% Commands & Events Browse[Browse Products]:::command Add[Add to Cart]:::command Checkout[Checkout]:::command ProductViewed[Product Viewed]:::event ItemAdded[Item Added to Cart]:::event OrderPlaced[Order Placed]:::event PaymentProcessed[Payment Processed]:::event %% Systems PaymentGW[Payment Gateway]:::system %% Hotspots Hot1[? Refund policy unclear]:::hotspot Hot2[? Inventory sync timing?]:::hotspot %% Flow Customer --> Browse Browse --> ProductViewed Customer --> Add Add --> ItemAdded Customer --> Checkout Checkout --> OrderPlaced OrderPlaced --> PaymentProcessed PaymentProcessed --> PaymentGW OrderPlaced -.question.- Hot1 ItemAdded -.question.- Hot2
This is minimal - real design would be more detailed. But shows the pattern.
System design through EventStorming:
Result: Navigable design catalog that feeds into implementation planning.
Other measured skills in the registry, with their headline benchmark lift.