You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -121,19 +121,21 @@ Claude runs the full loop — clarifies scope, sizes it with back-of-the-envelop
121
121
122
122
1.**Run the workflow.**`/design <system>` runs the whole process (or dispatches to the **`system-design-orchestrator`** agent). Best for full designs and interview practice — it scores the result against the GUIDE quality bar and persists the design doc.
123
123
2.**Start a design conversationally.** Trigger the **system-design** orchestrator skill ("design WhatsApp-scale messaging"); it runs the same loop and routes to the blocks.
124
+
> **Preparing for an interview?**[`docs/study-path.md`](docs/study-path.md) sequences the plugin into a learn → drill → self-test path (method, numbers, building-block syllabus, mistakes checklist, and the practice bank).
125
+
124
126
3.**Reason about one part.** Trigger a building block directly ("what caching strategy here?", "SQL or NoSQL for this?", "how do I shard this table?") — the recipe, trade-offs, and provider variants for just that part.
125
127
126
128
---
127
129
128
130
## Building blocks
129
131
130
-
21 skills: an orchestrator, a diagram engine, and 19 building blocks arranged **bottom-up** so each layer depends only on the ones beneath it.
132
+
22 skills: an orchestrator, a diagram engine, and 20 building blocks arranged **bottom-up** so each layer depends only on the ones beneath it.
131
133
132
134
| Layer | Blocks | What they decide |
133
135
|:------|:-------|:-----------------|
134
136
|**L0 Frame**|`requirements-scoping` · `back-of-the-envelope`| what to build, how big |
135
137
|**L1 Edge**|`dns` · `load-balancing` · `content-delivery`| get traffic in, served close |
136
-
|**L2 Contract**|`api-design`| the interface boundary |
138
+
|**L2 Services**|`api-design`· `service-decomposition`| the interface boundary + how the system is split into services|
137
139
|**L3 State**|`data-storage` · `caching` · `blob-store` · `sequencer` · `sharded-counters` · `distributed-search`| store it, read it fast |
@@ -212,7 +214,7 @@ A realistic eval harness measures whether the skills make Claude design *better*
212
214
213
215
-**Eval set** — `meta/evals/evals.json`: multi-turn exercises (URL shortener, rate limiter, news feed, observability pipeline, typeahead, WhatsApp) that each lead with different blocks. Scored on 6 GUIDE behaviors (clarify / quantify / trade-offs / failure / pivot / concrete-API) + a composition check.
214
216
-**Trigger evals** — `meta/evals/trigger-evals.json`: ~20 should / should-not routing queries.
215
-
-**Run a comparison** (with-skill vs baseline, then a judge): see `meta/evals/whatsapp-eval.workflow.js`. The first run (`meta/evals/iteration-1/`) scored **with-skill 30/30 vs baseline 20/30** with composition confirmed real.
217
+
-**Run a comparison** (with-skill vs baseline, then a judge) — the method is in `meta/evals/README.md`; run it with whatever orchestration you have. The first run (`meta/evals/iteration-1/`) scored **with-skill 30/30 vs baseline 20/30** with composition confirmed real.
216
218
-**Deterministic check** (the one objectively-scriptable surface):
217
219
```bash
218
220
python3 skills/back-of-the-envelope/scripts/test_botec.py # asserts calculator == golden fixture
@@ -235,13 +237,16 @@ system-design-skills/
235
237
│ └── design.md # /design <system> — runs the workflow
-The project's `GUIDE.md` — the ten failure modes that shape the reasoning loop
283
+
-[`docs/GUIDE.md`](docs/GUIDE.md) — the ten system-design failure modes that shape the reasoning loop (condensed, runtime version embedded in `skills/system-design/references/failure-modes.md`)
Copy file name to clipboardExpand all lines: agents/system-design-orchestrator.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ Invoke the `system-design` skill (Skill tool) to load the method — the reasoni
37
37
38
38
1.**Clarify requirements** — invoke `requirements-scoping`. Separate functional / non-functional / explicitly out-of-scope. Pick 2–4 core features; say so. Ask the user a clarifying question when an answer is load-bearing (consistency model, single vs multi-region, sync vs async) and you cannot assume it safely.
39
39
2.**Estimate scale** — invoke `back-of-the-envelope`. Convert "high traffic" into peak QPS (read vs write), storage/day & /year, bandwidth, working set. Let the numbers force the architecture.
40
-
3.**High-level design** — invoke `api-design` for the entry contract, then compose whichever building blocks the numbers demand. The **full catalog is the building-blocks index** in the `system-design` skill (21 blocks across the bottom-up layers L0–L7) — consult it; don't design from the short list below. Common reaches: `dns`, `load-balancing`, `content-delivery` (edge); `data-storage`, `caching`, `blob-store`, `sequencer`, `sharded-counters`, `distributed-search` (state); `messaging-streaming`, `task-scheduling` (async); `observability`, `distributed-logging` (ops). Pick the *cheapest* design that meets the constraints.
40
+
3.**High-level design** — invoke `api-design` for the entry contract, then compose whichever building blocks the numbers demand. The **full catalog is the building-blocks index** in the `system-design` skill (20 building blocks across the bottom-up layers L0–L7) — consult it; don't design from the short list below. Common reaches: `dns`, `load-balancing`, `content-delivery` (edge); `api-design`, `service-decomposition` (services — boundaries / monolith-vs-microservices / gateway / discovery); `data-storage`, `caching`, `blob-store`, `sequencer`, `sharded-counters`, `distributed-search` (state); `messaging-streaming`, `task-scheduling` (async); `observability`, `distributed-logging` (ops). Pick the *cheapest* design that meets the constraints — default to a monolith and split only when a real driver appears (`service-decomposition`).
41
41
4.**Evaluate trade-offs** — for every major choice, state **what it solves / what it worsens / what would make you change it.** Never name a tool without this.
42
42
5.**Stress-test failure modes** — invoke `resilience-failure`. Find SPOFs, decide the degradation story (stale beats error), plan recovery without stampede. Use `consistency-coordination` when consistency/coordination is contested.
43
43
6.**Iterate / deep-dive** — go deep on the most fragile component; when the user changes a constraint ("10× writes", "lose a region", "<50 ms"), name the invalidated assumption and redesign only the affected part. Invoke `scaling-evolution` to project the next bottleneck.
Copy file name to clipboardExpand all lines: commands/design.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Run the system-design process for: **$ARGUMENTS**
9
9
Drive this as a collaborative design session using the `system-design-skills` plugin, following the GUIDE reasoning loop. Do not jump to a finished architecture.
10
10
11
11
1.**Launch the orchestrator.** Use the Task tool to run the `system-design-orchestrator` agent on the problem above. It loads the `system-design` skill (the method) and composes the building-block skills.
12
-
- If subagent launch is unavailable, run the loop inline yourself: invoke the `system-design` skill first, then route to building-block skills as each concern arises — invoke each skill, don't paraphrase it. The full catalog (21 blocks, bottom-up layers) is the building-blocks index inside the `system-design` skill; reach for whichever fit, including the less-obvious ones (`dns`, `sequencer`, `blob-store`, `observability`, `distributed-logging`, `distributed-search`, `task-scheduling`, `sharded-counters`) alongside the core (`requirements-scoping`, `back-of-the-envelope`, `api-design`, `data-storage`, `caching`, `load-balancing`, `messaging-streaming`, `consistency-coordination`, `resilience-failure`, `content-delivery`, `scaling-evolution`).
12
+
- If subagent launch is unavailable, run the loop inline yourself: invoke the `system-design` skill first, then route to building-block skills as each concern arises — invoke each skill, don't paraphrase it. The full catalog (the 20 building blocks, bottom-up layers) is the building-blocks index inside the `system-design` skill; reach for whichever fit, including the less-obvious ones (`service-decomposition`, `dns`, `sequencer`, `blob-store`, `observability`, `distributed-logging`, `distributed-search`, `task-scheduling`, `sharded-counters`) alongside the core (`requirements-scoping`, `back-of-the-envelope`, `api-design`, `data-storage`, `caching`, `load-balancing`, `messaging-streaming`, `consistency-coordination`, `resilience-failure`, `content-delivery`, `scaling-evolution`). For "monolith vs microservices / where are the service boundaries", that is `service-decomposition`.
13
13
14
14
2.**Work the loop out loud:** clarify requirements (functional / non-functional / out-of-scope) → estimate scale with numbers → propose a high-level design + API → articulate trade-offs (solves / worsens / when-to-change) per major choice → stress-test failure modes → iterate, pivoting the affected part when a constraint changes.
0 commit comments