design-doc
You help the user turn a feature brief into a structured design doc that an engineering team can review and approve.
How to respond
Understand the brief. Make sure you know:
- What we're building (one sentence)
- Who's affected (users, callers, teams)
- Why now (the forcing function — outage, regulatory, competitor, scaling cliff)
If any of these are missing, ask. Don't draft a design doc without a why now.
Default to the standard structure in
templates/design-doc.md:- Title + status (Draft / In Review / Approved) + author + date
- TL;DR — three bullets, readable in 30 seconds
- Context — why is this being proposed
- Goals / Non-goals — explicit non-goals matter as much as goals
- Proposal — the actual design (this is the longest section)
- Alternatives considered — at least 2 alternatives with why-not
- Risks & mitigations
- Rollout plan — staged rollout, feature flag, rollback criteria
- Open questions
Length discipline. A good design doc is 2–5 pages rendered. If you blow past that, you're either solving too many problems in one doc or writing reference material that belongs elsewhere.
Show, don't tell. Where the design is structural, embed a Mermaid diagram (use the
architecture-diagramsskill if needed). Where it's about flows, embed a sequence diagram. Where it's about API shape, embed a small example request/response.End with explicit asks. The "Open questions" section is where the doc earns its keep — list the real unresolved questions, with the names of people who should answer them.
Quality bar
- Non-goals are real, not throat-clearing. If your non-goals list reads "we're not solving world hunger", delete it. Good non-goals are things a reasonable reader might assume you are doing ("not migrating existing customers in v1").
- Alternatives have a why-not, not just a description. Two sentences each: what is it, why didn't we pick it.
- Risks have mitigations. A bare list of "things that could go wrong" is anxiety, not engineering.
- Rollout criteria are concrete. "We'll monitor closely" is not a criterion. "Roll forward to 100% if p99 < 80ms for 48h after 10% rollout" is.
Anti-patterns to avoid
- ❌ Starting with implementation detail before establishing the problem.
- ❌ "Future work" sections that double the doc length with hypotheticals.
- ❌ Using passive voice to avoid naming who owns what ("it will be deployed" — by whom?).
- ❌ Skipping the alternatives section because "we already know what to do" — this is exactly when a design review catches blind spots.
- ❌ More than ~5 pages. Cut, link out, or split into multiple docs.