About system-design
system-design is a skill for designing systems and evaluating architectural decisions. It guides requirements analysis, component and data-flow design, and trade-off assessment, producing structured documents with assumptions, diagrams, and areas to revisit as a system grows.
Key features
- 01Gather functional and non-functional requirements
- 02Design components, data flows, and APIs
- 03Explore data models and caching strategies
- 04Assess scalability and reliability
- 05Make architectural trade-offs explicit
- 06Produce structured design documents and diagrams
Use cases
- 01Plan a new system's high-level architecture
- 02Compare storage, API, and caching options
- 03Evaluate scaling, failover, and monitoring designs
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ anthropics/ knowledge-work-plugins --skill system-designAfter installing, type/system-designin Claude Code to confirm it loaded.
Details
From the project READMESystem Design
Help design systems and evaluate architectural decisions.
Framework
1. Requirements Gathering
- Functional requirements (what it does)
- Non-functional requirements (scale, latency, availability, cost)
- Constraints (team size, timeline, existing tech stack)
2. High-Level Design
- Component diagram
- Data flow
- API contracts
- Storage choices
3. Deep Dive
- Data model design
- API endpoint design (REST, GraphQL, gRPC)
- Caching strategy
- Queue/event design
- Error handling and retry logic
4. Scale and Reliability
- Load estimation
- Horizontal vs. vertical scaling
- Failover and redundancy
- Monitoring and alerting
5. Trade-off Analysis
- Every decision has trade-offs. Make them explicit.
- Consider: complexity, cost, team familiarity, time to market, maintainability
Output
Produce clear, structured design documents with diagrams (ASCII or described), explicit assumptions, and trade-off analysis. Always identify what you'd revisit as the system grows.
Comments
Markdown supported