From 16d11cd6cdc342af2d9805e6950b3a21e0cc0c0a Mon Sep 17 00:00:00 2001 From: mos-dt-0 Date: Fri, 31 Jul 2026 23:59:25 -0500 Subject: [PATCH] docs(remediation): bank D-29 (syntactic criterion binding) and D-30 (false comparator, mine) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit D-29: rev-974 moved two criterion bindings to an unrelated case, reformatted the manifest, and gate:verify still exited 0. The registry verifies a criterion HAS a binding, not that the bound case can fail for that criterion's stated reason — RM02-REQ-03 unsatisfied. The keystone reproduced the defect it exists to eliminate, in its own coverage check. Caught only by mutating and re-running; inspection would have passed it. D-30: my review brief claimed the ci-postgres FAIL appeared on #2167 — it did not (#2167 is OK). My own banked D-21 says so explicitly; I restated from memory instead of reading my record. D-26 recurring, in a reviewer brief, hours after promoting render-not-restate to the charter. The harm is not the inaccuracy but that I supplied a reviewer with fabricated supporting evidence for my own reading. It refuted me — query-for-refutation paying for itself in the same document that introduced it. Requirement: briefs cite evidence from the record with identifiers, never from recall. Co-Authored-By: Claude Opus 5 (1M context) --- docs/remediation/TASKS.md | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/remediation/TASKS.md b/docs/remediation/TASKS.md index 4a8d2d58..aa4a0ca5 100644 --- a/docs/remediation/TASKS.md +++ b/docs/remediation/TASKS.md @@ -179,6 +179,46 @@ outage and defers the degraded path to "later", which in this codebase means **a under incident pressure**. Three such bypasses are already on the books; do not create the conditions for a fourth. +### D-29 — the registry's own coverage clause was SYNTACTIC, not semantic + +`rev-974` blocked PR #1030 with a finding that lands in the keystone's own enforcement: + +> It **moved** `RM02-MEANING-PROVENANCE` and `RM02-PROSE-CONTROL` from the stale-build-lock case to an +> **unrelated type-error case**, reformatted the manifest, and **`pnpm gate:verify` still exited 0.** + +So the registry verifies that a criterion **has a binding**, not that the bound case **can fail for that +criterion's stated reason**. That is exactly what **RM02-REQ-03 (clause 2, from D-17)** requires, and it +is not satisfied — `gates/gates.manifest.json:471-488` + `scripts/gate-verify.mjs:410-417`. + +**The keystone reproduced the defect it was built to eliminate, in its own coverage check.** D-17 said a +green suite can leave a criterion untested; here the tool that enforces that clause enforces only its +_syntax_. A binding that can be pointed anywhere without complaint is a binding that proves nothing — +**D-24's "true answer to a different question" wearing a manifest.** + +Caught only because the reviewer **mutated the binding and re-ran**, rather than reading the manifest and +confirming the entries existed. Inspection would have passed it. + +### D-30 — the orchestrator fed a reviewer a false comparator supporting its own conclusion + +In the review brief for #1030 I stated the `ci-postgres` FAIL had "appeared under overall-success on +**#2167**/#2170/#2175". `rev-974` refuted it: **#2167's `ci-postgres` step is `OK`.** Verified — +#2158 `OK`, **#2167 `OK`**, #2170 `FAIL`, #2175 `FAIL`, #2182 `FAIL`. + +**My own banked D-21 says so explicitly:** _"Observed on #2170 and #2175 (**not on #2158, #2167**, or the +manual #2171)."_ I contradicted my own written record — because I **restated it from memory instead of +reading it.** That is **D-26 recurring**, committed by the orchestrator, in a reviewer brief, hours after +promoting render-not-restate to the charter. + +**The specific harm is worse than the inaccuracy.** I supplied a reviewer with **fabricated supporting +evidence for my own reading**, in a brief that also asked it to accept my `ci-postgres` interpretation. +Had it deferred, the false comparator would have propagated into the review record and strengthened a +conclusion it never supported. It refuted me instead — which is the query-for-refutation rule paying for +itself in the same document that introduced it. + +**Requirement.** A brief that supplies evidence must **cite it from the record, not from recall** — +findings are quoted with their identifier, not paraphrased. RM-02 registers it: where a document cites a +finding, the citation must match the banked text, with a must-fail control on divergence. + ### D-28 — a swallowed diagnostic destroyed the evidence a fail-closed check needed RM-02's CI run failed on four `scripts/gate-history.test.mjs` sandbox tests. **The fail-closed logic