See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
A design doc is frozen at decision time, on purpose
The value of a design doc after shipping is exactly its staleness: it records what the team believed, which options were on the table, and why the tradeoffs fell the way they did. Editing it later to match the built system destroys that record while producing a bad current-state doc, because proposal structure, goals, alternatives, rollout plan, is the wrong shape for describing a running system.
This is the same principle that makes architecture decision records append-only: you supersede a decision with a new one, you do not edit the old record. The practice for ADRs is covered in keep ADRs up to date; design docs deserve the identical discipline with one addition, the harvest.
The harvest step nobody schedules
Between the design doc and the shipped system there is always a delta: the queue that got swapped mid-build, the phase two that never happened, the cache added during the launch incident. That delta is precisely the content current-state documentation needs and precisely what nobody writes down, because no ceremony exists at the moment the project ships.
The fix is putting one item on the launch checklist: harvest the design. Thirty minutes, done by the person who wrote the doc, producing three outputs: the current-state page describing what actually runs, the diagram of the built system, and the superseded banner on the proposal. Teams that skip this accumulate wikis where every page is a proposal and no page says what exists, which is how documentation debt compounds fastest.
Mark superseded docs so search stops lying
The reader who finds a two-year-old design doc through search has no way to know whether it describes the present. A status banner at the top of the doc fixes that in one edit, and the discipline is cheap enough to apply retroactively to a whole wiki in an afternoon. The banner answers three questions: did this ship, where is the current description, and why is this doc still here.
> **Status: shipped, March 2026. Historical document.** > This is the proposal as decided in November 2025, kept for the > reasoning and the alternatives we rejected. The system as it runs > today, including the changes made during the build, is described in > [Checkout architecture](../architecture/checkout.md), which carries > the live diagram.
Link the proposal to the diagram of what got built
The strongest harvest artifact is a diagram of the shipped system sitting next to the frozen proposal diagram, because the visible difference between the two is the honest history of the build. The proposal diagram stays static in the design doc. The current-state diagram lives in Datadef and stays current through the normal loop: edit it when the system changes, or let an agent connected to the Datadef MCP server, registry name io.datadef/mcp, update it from the repo after significant merges, as covered in keep architecture docs in sync with code. Datadef does not watch the repository; the update is an agent call or CI step, and the key the agent carries is issued on paid plans.
Shared public, the current-state diagram serves a permanent image URL that re-renders when the diagram changes, so the copy embedded in the current-state page follows edits within minutes. Teams that write design docs in Coda can put the same live view directly into the doc hub; embed diagrams in Coda covers the mechanics.
One rule for the wiki
Design docs, ADRs and current-state docs: three shapes, three lifecycles
The taxonomy that keeps a wiki sane: a design doc proposes a change and freezes at decision time; an ADR records one decision and is superseded, never edited; a current-state doc describes the running system and is the only one of the three that gets continuous updates. Most documentation confusion traces to one document trying to be two of these at once, usually a design doc drafted into service as the permanent description of a system it no longer matches.
Keeping the current-state docs actually current is its own discipline with its own tooling, which the rest of this cluster covers; the design doc's job ends when it hands its final state over.
FAQ
Should design docs be updated after the project ships?
What is the difference between a design doc and documentation?
What should happen to old design docs?
What is the harvest step for a design doc?
Who should do the harvest and when?