docs(prd): v0.4 addendum resolving INTEGRITY-AUDIT D-02 / D-03 / D-06 - #94
Conversation
Closes #68. A new agent opening docs/prd/PRD-trajectory-cache-v0.2.md today reads an ACCEPTED document telling them the test-bed is Grafana Cloud and the commercial anchor is Datadog. Both were superseded by ADR-0003 and the census FAIL, and the PRD's own open questions concede it -- in the same file as the stale text, which is not a fix. The stale document is the one people open. New docs/prd/PRD-v0.4-addendum.md, by pointer. The v0.2 body is unedited: 10 insertions, 0 deletions, all of them redirect banners. Rewriting an accepted document would destroy the audit trail that makes the two FAILs credible. D-02 -- redirect table for every stale §8 claim: self-hosted Grafana OSS (ADR-0003), no commercial anchor, gate task is the TestData Stat dashboard (ADR-0006), no vertical locked (ADR-0004). D-03 -- resolved as a STATUS LABEL, not a number. The §9 thresholds are marked PROPOSED and UNVALIDATED, with the founder named as who accepts them and gate-memo time (>=42 runs, >=400 step-executions) as when. No value was chosen; choosing one would be the category-B failure the audit exists to catch. Kill-line precedence -- the pivot brief's own open question ("which document controls") is answerable from the pivot brief itself, and the answer is §9. Its §5 says "Gate: unchanged from §9"; its supersession table lists only the §8 selection rule; and its "~50%" is introduced as a restatement carrying BOTH of §9's kill clauses. A document proposing a competing gate would not reproduce the other document's second clause. Precedence rule stated for the gate memo. D-06 -- "~6 survivors" recorded as historical. Worth noting the executed line (<=2) was STRICTER, so both searches failed under either: a documentation defect, not a decision defect. Left open on purpose, and named: whether the §9 threshold VALUES stay binding after two FAILs is the founder's call, and D-01 / D-05 / D-07 / D-08 are not closed here. Anchors verified by hand -- lint:docs does not validate them, and a dead link in a documentation-integrity PR would be self-refuting. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Code reviewThis is a docs-only PR, so I reviewed it the way its own content demands: by fact-checking the claims against the actual source documents rather than trusting the PR body, and by programmatically verifying every link and cross-document OverviewCloses #68. Resolves INTEGRITY-AUDIT D-02 (Critical), D-03 (High), and D-06 (Medium) by adding a new Claims verified against source, not taken on faithI pulled the actual referenced documents at this PR's merge-base and checked every substantive claim in the new addendum against them:
I did not find a factual, sourcing, or reference error anywhere in this PR. The judgment call the author flagged for reviewThe author explicitly asks for a call on whether the two inline redirect banners placed directly under the I'd keep them. The top-of-file banner alone provably fails the stated goal — this repo cross-links to specific PRD sections elsewhere, so a reader arriving via One minor gap, not blocking
ProcessCI green ( Verdict: Merge 🤖 Reviewed with Claude Code |
Closes #68. Branched from
main; docs-only, independent of #89/#91/#92/#93.A new agent opening PRD v0.2 today reads an accepted document telling them the test-bed is Grafana Cloud and the commercial anchor is Datadog. Both were superseded — and the PRD's own Open questions already concede it, in the same file as the stale text. That is not a fix: the stale document is the one people open.
The v0.2 body is unedited
Every one of those ten lines is a redirect banner. No original sentence, number or verdict was changed. Rewriting an accepted document would destroy the audit trail that makes the two FAILs credible — the same reason the pivot brief superseded §8 by pointer rather than editing it.
A judgement call worth flagging for review: the issue says "do not edit the v0.2 body", and also that a reader landing on §8 or §9 must be redirected "before they can act on stale content". A top-of-file banner alone does not catch someone arriving via an anchor link. I added a one-line redirect immediately under the
## 8.and## 9.headings as well — additive, clearly marked editorial, no claim touched. If you read the constraint more strictly, those two lines are the ones to drop; the top banner and frontmattersuperseded_bystand on their own.D-02 — the redirect table
A reader should leave §8 knowing there is no anchor, not guessing at one.
D-03 — resolved as a status label, not a number
The addendum deliberately does not pick different numbers. D-03 is not a disagreement about what the thresholds should be — it is a disagreement about their status, and inventing a value here would be exactly the category-B failure the audit exists to catch.
It also answers the part the issue asked for: who accepts them (the founder —
owner: founderon the PRD) and when (gate-memo time, on the first measurement clearing §9's own sampling protocol of ≥42 runs / ≥400 step-executions). Accepting a threshold before there is a measurement to test it against would make the gate unfalsifiable.The kill-line question answers itself
The pivot brief's open questions ask which document controls: §9's four-part gate, or the pivot's single "~50%". It is answerable from the pivot brief itself, and the answer is §9. Three pieces of evidence, all in that document:
supersedes: … §8).< ~50%validity and repair cost ≈ fresh-reasoning. A document proposing a competing single-number gate would not reproduce the other document's second clause.So the precedence rule is stated for the gate memo: §9 is the gate specification; the pivot's "~50%" is shorthand for §9's kill half; the pivot's framing governs how the number is obtained, not what it must clear. This had to be settled before the memo is written, or the memo argues with the spec while reporting the number.
D-06 — historical, and stricter than written
§8's "~6 survivors" was never the operative rule; A8 and C5 both applied ≤2. Worth stating plainly: the executed line was stricter, so both searches would have failed under either. It is a documentation defect, not a decision defect.
What this does not close, named rather than skipped
Also raised as a new open question: whether "task-level success ≥ 90%" is reachable at all on a 12-step task that ADR-0006 predicts compiles to 5 strong / 7 weak assertions. That could make a §9 gate unreachable for reasons unrelated to the thesis.
Verification
docs/INTEGRITY-AUDIT.mdmarks D-02, D-03, D-06 resolved with links, and the category-D count now reads 8 (5 resolved) — matching the existing convention on category E rather than deleting rows.Anchors checked by hand.
lint:docsvalidates link targets but not fragments — I found that gap reviewing #79 — and a dead anchor in a documentation-integrity PR would be self-refuting. Every link and#fragmentacross all four changed files resolves against the actual heading slugs.Reader-side test from the issue: walking v0.2 from the top hits the banner at line 14; landing directly on
## 8.or## 9.hits a redirect on the next line.🤖 Generated with Claude Code