← Code review and governance guides

How to use SpecDD in architecture reviews

How-To Code review and governance Advanced 1141003HOWTO-1141003

HOWTO-1141003Code review and governanceAdvanced

This guide shows you how to use spec-driven development in architecture reviews without turning .sdd files into long design documents.

Architecture review is where teams compare options and make decisions. SpecDD is where accepted local contracts live after the decision is made, so implementation can proceed from reviewed source-adjacent rules instead of a long thread or RFC.

Short answer

Use the architecture review to discuss tradeoffs, alternatives, rollout, and approval. Once a decision is accepted, update the relevant SpecDD specs with ownership, dependencies, boundaries, Must, Must not, Forbids, tasks, and Done when. Review those spec changes before implementation begins.

When to use this guide

Use this guide when:

Steps

1. Keep exploration in the design review

Use the design review or RFC for:

Do not force all of that into .sdd files. Specs should describe the accepted subject contract, not the full history of the debate.

2. Map decisions to owning specs

For each accepted decision, ask where it should live:

Project-wide conventions for naming, levels, syntax, commands, or team workflow belong in .specdd/bootstrap.project.md, not in root specs or local specs.

3. Review inheritance and boundaries

SpecDD uses parent specs for inherited context and constraints. Child specs can add or narrow behavior, but they must not silently loosen parent constraints.

During architecture review, check:

Resolve conflicts in the specs before implementation begins.

4. Define write authority

Architecture decisions often fail in implementation because authority is vague.

Use Can modify when the writable files should be explicit:

Can modify:
  ./itinerary-service.js
  ./itinerary-service.test.js

Use Owns for governed files or responsibilities when ownership and modification scope are the same:

Owns:
  Itinerary persistence behavior.
  ./itinerary-service.js

Use Can read or References for context that should not become writable authority.

5. Record rejected approaches

Architecture review usually rejects some tempting options. Preserve the important ones only when they are likely to prevent future mistakes.

Use Must not for behavior or responsibility boundaries:

Must not:
  Store itinerary state directly from UI components.

Use Forbids for dependencies, paths, modules, libraries, tools, or access:

Forbids:
  Direct browser storage writes from itinerary components.

Do not list every rejected idea. Capture the boundaries that future humans or agents are likely to cross accidentally.

6. Approve tasks and Done when

Turn accepted work into local tasks:

Tasks:
  [ ] Route itinerary saves through the storage adapter.

Then make completion reviewable:

Done when:
  Itinerary saves use the storage adapter.
  Existing itinerary ordering behavior still passes.

Tasks should be local to the spec that owns the work. A task that requires another area may mean the ownership model or the plan needs another reviewed spec change.

7. Implement from the accepted specs

After architecture review, implementation should use the approved spec changes, not the entire design discussion.

Use one implementation prompt:

Implement the Itinerary Storage adapter task.

If the spec still contains [?] decisions or conflicting rules, pause implementation and resolve the contract first.

Architecture review checklist

Before accepting the design, ask:

Common mistakes

How to verify the result

SpecDD is working in architecture review when:

← Code review and governance guides