docs(adr): reconstruct ADR-009 from the code that cites it - #47
Merged
Conversation
Twenty-two references across eleven files invoke "ADR-009 invariant #N" as
normative authority. No ADR-009 file has ever existed on any branch. The
decision was made and enforced; only the record was missing — a provenance
defect rather than a documentation gap, since a citation reads as an appeal to a
review decision and eleven files' worth appealed to nothing a reader could open.
Each citation states inline the invariant it relies on, so the document is
reconstructible. It carries exactly those five and nothing more:
1 prompt profiles are repository resources; app owns semantic intent,
runtime owns transport
2 a runtime transmits the selected prompt without re-instruction or
provider-specific reinterpretation
3 a new model behind an existing transport is configuration, not a type
4 optional behaviour is capability-advertised, not method-mandatory
5 canonical benchmark inputs and identities are immutable
Invariant 2 accounts for twelve of the twenty-two: it is what lets a recorded
promptHash attest the bytes that actually left the process, and 1 and 5 are what
keep that hash meaningful over time.
**Commit H's configured/ready split is classified as a later compatible
refinement**, not reconstructed evidence about original scope. Reading it back
into this document would be inference presented as history.
The provenance appendix locates each citation by **symbol**, not line: lines will
move as lane A integrates the runtime, and a locator that rots is worse than
none. Historical line numbers appear as a snapshot pinned to 0dfae3c.
Landed alone, ahead of the runtime, so the registry is provably valid before the
citations arrive and the reconstruction gets its own review surface.
Proof, in a scratch export outside the repository — nothing pushed:
11 citing files imported from 0dfae3c, no ADR-009
hard mode FAIL, 22 errors
reported locations set-compared against the harvested citations: EQUAL
(a count can coincide while the set differs)
same tree + this document
hard mode PASS, 0 warnings
On this branch: hard PASS, all mode PASS with the one preserved historical
warning, 16/16 reference tests, filename and heading agree, registry contiguous
001–010.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The finding
Twenty-two references across eleven files invoke "ADR-009 invariant #N" as normative authority. No ADR-009 file has ever existed on any branch. The decision was made and enforced; only the record was missing.
That's a provenance defect, not a documentation gap: a citation reads as an appeal to a review decision, and eleven files' worth appealed to nothing a reader could open.
Each citation states inline the invariant it relies on, so the document is reconstructible from them. It carries exactly those five and nothing more:
Invariant 2 dominating is not an accident: it's what lets a recorded
promptHashattest the bytes that actually left the process, and 1 and 5 are what keep that hash meaningful over time.Scope discipline
Commit H's
configured/readysplit is classified as a later compatible refinement, not reconstructed evidence about original scope. A document inferred from code is already inference; folding in a subsequent decision would be inference presented as history.Locators are symbols, not lines. Lines move as lane A integrates the runtime, and a locator that rots is worse than none. Historical line numbers appear only as a snapshot pinned to
0dfae3c.Landed alone, ahead of the runtime
So the registry is provably valid before the citations arrive, and the reconstruction gets its own review surface rather than riding along with 23 runtime files.
Proof
In a scratch export outside the repository — nothing pushed:
On this branch:
This is the first time D0-R's gate has been exercised against the defect it was built for: lane A cannot now land those 22 citations without this document.