system-design
$
npx mdskill add anthropics/knowledge-work-plugins/system-designDesigns systems and architectures by gathering requirements, creating diagrams, and analyzing trade-offs for scalability.
- Helps with API design, data modeling, and service boundaries for scalable solutions.
- Integrates with architectural frameworks for component diagrams and data flow analysis.
- Decides recommendations based on functional requirements, constraints, and trade-off evaluations.
- Presents results as structured design documents with ASCII diagrams and explicit assumptions.
SKILL.md
.github/skills/system-designView on GitHub ↗
--- name: system-design description: Design systems, services, and architectures. Trigger with "design a system for", "how should we architect", "system design for", "what's the right architecture for", or when the user needs help with API design, data modeling, or service boundaries. --- # System 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.