System Design Session Guide
System design methodology

Drives an interactive system design session: classifies depth, elicits scale/SLO/consistency inputs, computes capacity, then reveals components one by one, each justified by a constraint. Use when designing a system or running a design…
---
name: system-design-methodology
description: "Drives an interactive system design session: classifies depth, elicits scale/SLO/consistency inputs, computes capacity, then reveals components one by one, each justified by a constraint. Use when designing a system or running a design session; diagrams go through `common-architecture-diagramming`."
metadata:
triggers:
keywords:
- system design
- design a system
- design session
- high-level design
- low-level design
- HLD
- LLD
- requirements clarification
- capacity planning
- scale this
---
Overview
Requirements before solutions. Never draw a full architecture before numbers justify it.
Manual install (npx, ZIP)
Claude Code
npx skills add HoangNguyen0403/agent-skills-standard --skill system-design-methodology -g -a claude-codeClaude Code (degit)
npx degit HoangNguyen0403/agent-skills-standard/.agents/skills/system-design/system-design-methodology#develop ~/.claude/skills/system-design-methodologyClaude.ai / desktop
Codex, Cursor, other agents
Connects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md7.0 KB
Read SKILL.md here
SKILL.md
Show the full text100 lines
System Design Methodology
Priority: P0 (CRITICAL)
Requirements before solutions. Never draw a full architecture before numbers justify it.
Phase 0 - Classify Depth (always first)
- Quick sketch: exploratory ask, no scale numbers available, answer needed now. Assume defaults, label each one
ASSUMED, skip gates. - Full session: real build, migration, or budget commitment. Run every phase gate.
- State depth and mode (new design | review existing | interview practice) in one line, then continue. Interview practice runs through
system-design-interview-coaching: the round on a clock, the rubric after. - Escalate quick to full when a hard constraint or irreversible choice appears.
Phase 1 - Intake (gate)
- Parse request: verbs to use cases, nouns to entities, adjectives to constraints.
- Ask max 3 blocking questions per turn, each with a recommended default. See intake checklist.
- Required before design: DAU/actors, top 3 use cases, read:write ratio, latency SLO, consistency need, retention, peak shape, budget, team size.
- Freeze scope: list what is explicitly out of scope.
Phase 2 - Estimation (gate)
- Compute QPS, storage, bandwidth, and working-set memory via
system-design-estimation. - Present the numbers, name the one quantity that shapes the design, confirm before drawing anything.
Phase 3 - High-Level Design (incremental)
- Price the null option first: do nothing, buy it, or let an existing service absorb it. Rejecting it needs a stated reason, not silence.
- Start with the smallest system satisfying functional requirements: client, API, service, store.
- Add one component at a time. For each, state
constraint -> component -> costin one line. No component without a named constraint. - Define API surface (one endpoint per functional requirement) and data ownership before optimizing.
- Select views only when they answer a named question, per
common-architecture-diagramming: a context/container, sequence, dataflow, deployment, or state view may be used when useful; prose or a table is sufficient otherwise. Carrymetricandconstraintonly when the design states them; never invent a number to populate a node. See phase deliverables.
HLD, LLD, and Low-Level Design Routing
- HLD answers audience-level boundaries, shaping constraints, ownership, failure domains, and the decision to make. Use context/container or prose only when that is enough; no diagram is mandatory.
- LLD (the same lane as “low-level design”) answers one component or critical flow: data/state ownership, API or event contracts, ordering, idempotency, failure behavior, and verification. Use sequence, dataflow, or state only when that view resolves a named question.
- Trace every handoff as
requirement -> HLD decision -> component -> LLD contract -> verification. Give each link a stable ID and carry unresolved assumptions forward; an LLD must not silently change the HLD invariant. - Each selected view declares
audience,question,decision,scenario,invariant,scope,status,evidence, andomissions. Lifecycle isproposed|implemented|retired;evidenceis a citation, not confidence. Keepevidence_kindandevidence_confidenceseparate per the renderer-owned diagram spec and view manifest; never infer deployment from a code/document citation. - Views are evidence for a question, not a completeness checklist. Prefer a precise paragraph or table over a diagram that adds no decision value.
Specialist Deep-Dive Contract
- Have the user pick the 2-3 riskiest components, then send one specialist brief per component with profile, audience/question, workload/SLO/team/budget, invariant, scope, evidence status, and current HLD decision. The specialist does not re-run intake, add neighboring components, or invent numbers.
- Require options with rejection reasons, the recommended LLD contract, failure timeline/recovery, verification hooks, and any ADR reversal trigger. Merge the result back into the HLD-to-LLD trace before scoring.
Brownfield Path (review-existing mode)
- Map current state before proposing anything: components, owners, traffic, incidents.
- Measure, do not assume: pull real QPS, data volume, and p99 from the running system.
- Find the binding constraint - the one that fails first at the next growth step.
- Design the smallest change that moves it, then re-measure. A rewrite needs a structural constraint the current shape cannot satisfy.
Phase 4 - Deep Dives and Trade-offs
- Stage what to build now, the enabling seam and metric threshold; record one ADR per irreversible decision with its reversal trigger, then score with
system-design-review.
Design-to-Delivery Gate
- Once HLD/LLD is fixed, list bounded docs/diagram slices: exact files, evidence, acceptance, verification, integrator. Route production to the cheapest qualified configured executor if available; lead owns decisions and final review.
- If still defective after one focused correction, use the configured fallback or report BLOCKED. Log executor/model, corrections, exceptions and fallback reason; report actual usage/cost or
unavailable, never assumed savings.
Anti-Patterns
- No architecture before requirements: no diagram until Phase 1 answers exist or defaults are flagged.
- No unjustified components: every box names the constraint it solves.
- No design without the null option: state why doing nothing or buying loses before building.
- No silent assumptions: an unknown input becomes a labeled
ASSUMEDdefault, never a hidden guess. - No full-stack reveal: never dump a finished diagram before incremental agreement.
Red Flags
- Stop if "just give me the architecture": deliver a quick sketch with
ASSUMEDlabels, not fake precision. - Stop if scale is unknown at Phase 3: return to Phase 2 and estimate from a stated assumption.
References
- Four-Phase Process - per-phase gates, outputs, escalation rules
- Intake Checklist - question bank with defaults
- Phase Deliverables - interview phase to artifact and diagram map
- Interview Coaching - timed mock rounds, rubric, mistakes
| 1 | |
| 2 | name system-design-methodology |
| 3 | description "Drives an interactive system design session: classifies depth, elicits scale/SLO/consistency inputs, computes capacity, then reveals components one by one, each justified by a constraint. Use when designing a system or running a design session; diagrams go through `common-architecture-diagramming`." |
| 4 | metadata |
| 5 | triggers |
| 6 | keywords |
| 7 | - system design |
| 8 | - design a system |
| 9 | - design session |
| 10 | - high-level design |
| 11 | - low-level design |
| 12 | - HLD |
| 13 | - LLD |
| 14 | - requirements clarification |
| 15 | - capacity planning |
| 16 | - scale this |
| 17 | |
| 18 | |
| 19 | # System Design Methodology |
| 20 | |
| 21 | ## **Priority: P0 (CRITICAL)** |
| 22 | |
| 23 | Requirements before solutions. Never draw a full architecture before numbers justify it. |
| 24 | |
| 25 | ## Phase 0 - Classify Depth (always first) |
| 26 | |
| 27 | **Quick sketch**: exploratory ask, no scale numbers available, answer needed now. Assume defaults, label each one `ASSUMED`, skip gates. |
| 28 | **Full session**: real build, migration, or budget commitment. Run every phase gate. |
| 29 | State depth and mode (new design | review existing | interview practice) in one line, then continue. Interview practice runs through `system-design-interview-coaching`: the round on a clock, the rubric after. |
| 30 | Escalate quick to full when a hard constraint or irreversible choice appears. |
| 31 | |
| 32 | ## Phase 1 - Intake (gate) |
| 33 | |
| 34 | Parse request: verbs to use cases, nouns to entities, adjectives to constraints. |
| 35 | Ask max 3 blocking questions per turn, each with a recommended default. See [intake checklist]. |
| 36 | Required before design: DAU/actors, top 3 use cases, read:write ratio, latency SLO, consistency need, retention, peak shape, budget, team size. |
| 37 | Freeze scope: list what is explicitly out of scope. |
| 38 | |
| 39 | ## Phase 2 - Estimation (gate) |
| 40 | |
| 41 | Compute QPS, storage, bandwidth, and working-set memory via `system-design-estimation`. |
| 42 | Present the numbers, name the one quantity that shapes the design, confirm before drawing anything. |
| 43 | |
| 44 | ## Phase 3 - High-Level Design (incremental) |
| 45 | |
| 46 | Price the null option first: do nothing, buy it, or let an existing service absorb it. Rejecting it needs a stated reason, not silence. |
| 47 | Start with the smallest system satisfying functional requirements: client, API, service, store. |
| 48 | Add one component at a time. For each, state `constraint -> component -> cost` in one line. No component without a named constraint. |
| 49 | Define API surface (one endpoint per functional requirement) and data ownership before optimizing. |
| 50 | Select views only when they answer a named question, per `common-architecture-diagramming`: a context/container, sequence, dataflow, deployment, or state view may be used when useful; prose or a table is sufficient otherwise. Carry `metric` and `constraint` only when the design states them; never invent a number to populate a node. See [phase deliverables]. |
| 51 | |
| 52 | ## HLD, LLD, and Low-Level Design Routing |
| 53 | |
| 54 | **HLD** answers audience-level boundaries, shaping constraints, ownership, failure domains, and the decision to make. Use context/container or prose only when that is enough; no diagram is mandatory. |
| 55 | **LLD** (the same lane as “low-level design”) answers one component or critical flow: data/state ownership, API or event contracts, ordering, idempotency, failure behavior, and verification. Use sequence, dataflow, or state only when that view resolves a named question. |
| 56 | Trace every handoff as `requirement -> HLD decision -> component -> LLD contract -> verification`. Give each link a stable ID and carry unresolved assumptions forward; an LLD must not silently change the HLD invariant. |
| 57 | Each selected view declares `audience`, `question`, `decision`, `scenario`, `invariant`, `scope`, `status`, `evidence`, and `omissions`. Lifecycle is `proposed|implemented|retired`; `evidence` is a citation, not confidence. Keep `evidence_kind` and `evidence_confidence` separate per the renderer-owned [diagram spec] and [view manifest]; never infer deployment from a code/document citation. |
| 58 | Views are evidence for a question, not a completeness checklist. Prefer a precise paragraph or table over a diagram that adds no decision value. |
| 59 | |
| 60 | ## Specialist Deep-Dive Contract |
| 61 | |
| 62 | Have the user pick the 2-3 riskiest components, then send one specialist brief per component with profile, audience/question, workload/SLO/team/budget, invariant, scope, evidence status, and current HLD decision. The specialist does not re-run intake, add neighboring components, or invent numbers. |
| 63 | Require options with rejection reasons, the recommended LLD contract, failure timeline/recovery, verification hooks, and any ADR reversal trigger. Merge the result back into the HLD-to-LLD trace before scoring. |
| 64 | |
| 65 | ## Brownfield Path (review-existing mode) |
| 66 | |
| 67 | Map current state before proposing anything: components, owners, traffic, incidents. |
| 68 | Measure, do not assume: pull real QPS, data volume, and p99 from the running system. |
| 69 | Find the binding constraint - the one that fails first at the next growth step. |
| 70 | Design the smallest change that moves it, then re-measure. A rewrite needs a structural constraint the current shape cannot satisfy. |
| 71 | |
| 72 | ## Phase 4 - Deep Dives and Trade-offs |
| 73 | |
| 74 | Stage what to build now, the enabling seam and metric threshold; record one ADR per irreversible decision with its reversal trigger, then score with `system-design-review`. |
| 75 | |
| 76 | ## Design-to-Delivery Gate |
| 77 | |
| 78 | Once HLD/LLD is fixed, list bounded docs/diagram slices: exact files, evidence, acceptance, verification, integrator. Route production to the cheapest qualified configured executor if available; lead owns decisions and final review. |
| 79 | If still defective after one focused correction, use the configured fallback or report BLOCKED. Log executor/model, corrections, exceptions and fallback reason; report actual usage/cost or `unavailable`, never assumed savings. |
| 80 | |
| 81 | ## Anti-Patterns |
| 82 | |
| 83 | **No architecture before requirements**: no diagram until Phase 1 answers exist or defaults are flagged. |
| 84 | **No unjustified components**: every box names the constraint it solves. |
| 85 | **No design without the null option**: state why doing nothing or buying loses before building. |
| 86 | **No silent assumptions**: an unknown input becomes a labeled `ASSUMED` default, never a hidden guess. |
| 87 | **No full-stack reveal**: never dump a finished diagram before incremental agreement. |
| 88 | |
| 89 | ## Red Flags |
| 90 | |
| 91 | **Stop if "just give me the architecture"**: deliver a quick sketch with `ASSUMED` labels, not fake precision. |
| 92 | **Stop if scale is unknown at Phase 3**: return to Phase 2 and estimate from a stated assumption. |
| 93 | |
| 94 | ## References |
| 95 | |
| 96 | [Four-Phase Process] - per-phase gates, outputs, escalation rules |
| 97 | [Intake Checklist] - question bank with defaults |
| 98 | [Phase Deliverables] - interview phase to artifact and diagram map |
| 99 | [Interview Coaching] - timed mock rounds, rubric, mistakes |
| 100 |
Details
- License
- MIT
- Stars on the repo
- ★ 569
- Checked
- Source
- HoangNguyen0403/agent-skills-standard ↗
- Creator
- HoangNguyen0403 · 21 listings
Similar skills
See all →
SkillHyperresearch Analysis
SkillScientific Claims Evaluator
AgentResearch Literature Synthesizer
AgentAcademic Research Specialist
SkillDisciplined Multi-Source Research
SkillArXiv Paper FinderMore from HoangNguyen0403
SkillAndroid Test Writer
SkillArchitecture Diagram Designer
SkillCode Review Expert
SkillCybersecurity Framework Mapper
SkillDecision Discipline Framework
SkillFlutter Robot Pattern Tests