SKILL.md
System Design Interview Skill
Structures a complete, interview-grade system design response — covering clarifying questions, requirements, capacity estimates, architecture, component design, and trade-offs. Works equally well for real architecture sessions.
Required Inputs
Ask for these if not provided:
- The system to design (e.g. "design a URL shortener", "design a notification service", "design Twitter's feed")
- Scope (interview prep / real architecture decision / practice run)
- Scale target (rough numbers: DAU, requests/sec, data volume — or "assume typical web scale")
- Constraints or priorities (e.g. prioritise availability over consistency, minimise cost, low-latency reads)
- Time available (interview context only: 30 / 45 / 60 minutes — skip for real architecture sessions)
- Emphasis (optional — any area to go deeper on, e.g. "focus on the DB design" or "spend more time on scaling")
Output Format
1. Clarifying Questions
Before designing, list 4–6 questions that would change the design. Examples:
- Read-heavy or write-heavy? (affects caching and DB choice)
- Global or single-region? (affects latency requirements)
- Strong or eventual consistency? (affects storage and replication)
- Acceptable latency targets? (p50 / p99)
- Any existing infrastructure constraints?
Then proceed with stated assumptions if answering an interview question.
2. Functional Requirements
Core features (must have):
- [Feature 1]
- [Feature 2]
- [Feature 3]
Out of scope (for this design):
- [What's deliberately excluded and why]
3. Non-Functional Requirements
| Requirement | Target |
|---|---|
| Availability | [e.g. 99.9% / 99.99%] |
