Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Structure a complete system design answer for interview questions or real architecture sessions. Use when asked to design a system, answer a system design interview question, or architect a solution at scale. Produces a structured answer covering requirements, capacity estimates, high-level design, component deep-dives, trade-offs, and follow-up considerations.
.claude/skills/mohitagw15856-system-design-interview/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 98% | 0% |
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.
Ask for these if not provided:
Before designing, list 4–6 questions that would change the design. Examples:
Then proceed with stated assumptions if answering an interview question.
Core features (must have):
Out of scope (for this design):
| Requirement | Target | |---|---| | Availability | e.g. 99.9% / 99.99%] | | Latency | e.g. p95 < 100ms for reads] | | Throughput | e.g. 10k writes/sec peak] | | Consistency | Strong / Eventual] | | Durability | e.g. 99.999% — no data loss] |
Traffic:
Storage:
Bandwidth:
Draw an ASCII diagram specific to this system. Do not default to the client→CDN→LB→API→Cache→DB template unless it genuinely applies. Label each component with the specific technology chosen (e.g. "Kafka" not "Message Queue", "PostgreSQL" not "DB"). Describe each component in 1–2 sentences explaining its role and why that technology was chosen.
Pick the 2–3 most critical/interesting components and go deep:
Component 1: e.g. Database Layer]
Component 2: e.g. Caching Strategy]
Component 3: e.g. API Design]
Walk through the two most critical paths end-to-end:
Write path: Step 1 → Step 2 → Step 3...] Read path: Step 1 → Step 2 → Step 3...]
| Bottleneck | Mitigation | |---|---| | e.g. DB write throughput] | e.g. sharding by user_id, write batching] | | e.g. Hot-key cache misses] | e.g. local in-process cache, probabilistic early expiry] | | e.g. Single region latency] | e.g. multi-region deployment, GeoDNS routing] |
Be explicit about what was chosen and what was sacrificed:
| Decision | Why | Trade-off | |---|---|---| | e.g. Eventual consistency] | Higher availability, lower latency] | Stale reads possible] | | e.g. SQL over NoSQL] | Complex queries, ACID transactions] | Harder to shard horizontally] | | e.g. Async processing via queue] | Decoupled, more resilient] | Eventual delivery, harder to debug] |
Things to tackle in production but out of scope for this design session:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 47,211 | 55,538 | +18% | 1 | 1 | 0% | 8,324 | 10,001 | +20% | 0 | 0 | — |
case-02 | fail→fail | 63,656 | 62,663 | -2% | 1 | 1 | 0% | 8,319 | 9,996 | +20% | 0 | 0 | — |
case-03 | fail→pass | 52,544 | 48,747 | -7% | 1 | 1 | 0% | 8,333 | 9,519 | +14% | 0 | 0 | — |
case-04 | fail→pass | 51,958 | 37,099 | -29% | 1 | 1 | 0% | 8,258 | 8,367 | +1% | 0 | 0 | — |
case-05 | fail→pass | 46,964 | 48,171 | +3% | 1 | 1 | 0% | 8,108 | 8,529 | +5% | 0 | 0 | — |
case-06 | fail→pass | 32,508 | 45,592 | +40% | 1 | 1 | 0% | 4,568 | 9,046 | +98% | 0 | 0 | — |
case-07 | fail→pass | 37,925 | 40,736 | +7% | 1 | 1 | 0% | 6,249 | 8,607 | +38% | 0 | 0 | — |
case-08 | fail→pass | 30,002 | 58,133 | +94% | 1 | 1 | 0% | 4,802 | 9,518 | +98% | 0 | 0 | — |
case-09 | fail→pass | 55,910 | 43,790 | -22% | 1 | 1 | 0% | 7,915 | 8,977 | +13% | 0 | 0 | — |
case-10 | fail→pass | 50,935 | 39,742 | -22% | 1 | 1 | 0% | 8,225 | 8,268 | +1% | 0 | 0 | — |
case-11 | fail→fail | 35,467 | 48,952 | +38% | 1 | 1 | 0% | 5,571 | 9,892 | +78% | 0 | 0 | — |
case-12 | fail→pass | 35,193 | 43,376 | +23% | 1 | 1 | 0% | 4,888 | 9,146 | +87% | 0 | 0 | — |
case-13 | fail→fail | 34,253 | 44,374 | +30% | 1 | 1 | 0% | 5,858 | 9,265 | +58% | 0 | 0 | — |
case-14 | fail→fail | 34,702 | 42,238 | +22% | 1 | 1 | 0% | 5,609 | 8,602 | +53% | 0 | 0 | — |
case-15 | fail→pass | 28,383 | 38,333 | +35% | 1 | 1 | 0% | 4,710 | 7,794 | +65% | 0 | 0 | — |
case-16 | fail→pass | 32,753 | 38,040 | +16% | 1 | 1 | 0% | 5,376 | 7,941 | +48% | 0 | 0 | — |
case-17 | fail→fail | 32,278 | 38,658 | +20% | 1 | 1 | 0% | 5,424 | 8,334 | +54% | 0 | 0 | — |
case-18 | fail→pass | 29,348 | 41,313 | +41% | 1 | 1 | 0% | 4,870 | 7,386 | +52% | 0 | 0 | — |
case-19 | pass→pass | 30,105 | 41,107 | +37% | 1 | 1 | 0% | 5,255 | 7,601 | +45% | 0 | 0 | — |
case-20 | pass→pass | 12,527 | 22,226 | +77% | 1 | 1 | 0% | 2,368 | 5,026 | +112% | 0 | 0 | — |
case-21 | pass→pass | 18,197 | 18,779 | +3% | 1 | 1 | 0% | 3,703 | 5,397 | +46% | 0 | 0 | — |
case-22 | pass→fail | 16,826 | 17,272 | +3% | 1 | 1 | 0% | 2,862 | 4,724 | +65% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.