Shipped work becomes memory
When you accept a feature, the spec has done its job — and Specline keeps the parts of it worth keeping. Graduation is the step that turns a finished, perishable spec into permanent product memory, so the why behind the feature outlives the people, vendors, and models that happened to build it. This is the payoff of putting the spec in the repo in the first place.
The accepted feature splits into two permanent artifacts:
archive/ — the contract, frozen
The final spec, verbatim, with its acceptance results linked. Read-only forever. This is what was promised — the record you can point to when someone asks what this feature was supposed to do and how done was certified.
knowledge/ — the living description
A short, present-tense doc of what's true now: intent, the rules that still bind, and the rationale the code itself can't state. This is what it became — the part that stays current as the code changes, because it records meaning, not mechanics.
Then the in-flight spec is deleted. The contract survives only in archive/;
the living truth lives in knowledge/; the working draft is gone, because a
perishable artifact that lingers just rots and misleads.
If a knowledge doc would lose an argument with the code, it shouldn't exist.
That sentence is the whole test for what belongs in knowledge/. A doc that
describes how the code works competes with the code — and the code wins, because
it's the source of truth for mechanics and it's always current. But a doc that records
why the code is the way it is can't lose that argument: the code can't state its
own intent, the options that were rejected, or the rule it's enforcing. Keep that. Cut
anything the code already says.
Reference: the docs/ layout (where archive/ and knowledge/ live) and the spec lifecycle — shape to graduation.