Build ErsatzTV Image / CI toolchain image resolves (pull_request) Successful in 11s
Build ErsatzTV Image / Delimiter ban (release path) (pull_request) Successful in 18s
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 15s
PR Gates / Docs update reminder (pull_request) Successful in 12s
PR Gates / Fix proofs (Proves trailers) (pull_request) Successful in 9s
PR Gates / decisions lifecycle (pull_request) Successful in 27s
Review verdict / Set review-verdict status (pull_request_target) Successful in 15s
PR Gates / Script lint and tests (ruff + pytest) (pull_request) Successful in 7m45s
review-verdict/h10 Review-verdict: MERGEABLE @ ae8f736 (base: main)
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 13m36s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 9m18s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 8m58s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 11s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 8s
#784 generalized `docs.no-session-narrative` and REPORTED the leak rather than remediating it. This is the remediation: 64 dispositions, manifest in the PR body. THE POPULATION WAS NOT 21. The issue's table is dated at706674272(2026-08-21). Since then 1924 lines have been added to `docs/**/*.md` outside `docs/decisions/` plus root-level `*.md`, measured against origin/main at8aeacd534, and every line number in the issue had drifted. Measured, not assumed: - one of the 21 no longer exists — #872 rewrote guard-inventory.md's scope-limit section and the autobiography went with it, the *why* surviving. No action. - FOUR sites postdate the sweep (ci-cd 1674/1682, remote-state 149 x2). - The rest were already in the corpus and missed by BOTH of the sweep's passes. - Some are invisible to the detector BY CONSTRUCTION: it is line-based, so "an earlier \n draft" wrapped across a newline never matches. A line-based grep inherits that blind spot, which is how several sites stayed hidden until the sweep was re-run over WHITESPACE-JOINED text. Auditing exactly the named lines would have repeated the defect the issue is about — `guard-inventory.md` already records it as "the issue's list of files to assess was a starting point, not the population". DISPOSITIONS — 64 sites, one row per site in the PR body. Three kinds, not the issue's binary, because for most sites the corrected claim and the autobiography sat in ONE sentence: cutting loses the finding (#542), leaving it keeps the narrative. The rule already licenses the third — "only the corrected claim enters the doc". 50 sites EDITED (53 clauses; three sites carried two each), 13 KEPT as carve-outs, 1 ALREADY REMEDIATED. Phrase-level only — no paragraph was restructured. NO CLOSURE IS CLAIMED OVER A PHRASING SPACE, and that is the finding rather than a caveat. One class was swept — a bare attribution of who found a finding, where the reasons follow in the next clause. SIX review rounds each surfaced another survivor, every round's grep a locally-correct word-list that never converged; the last found "(revised after Fable review)" in a file whose SIBLING this change had already edited, which is the fix-one-path-check-its-twin shape. So the claim is bounded: the manifest's sites were remediated. NOT that the class is closed — not globally, and not inside the docs corpus either. #876 carries the same bounded wording for the corpus outside `docs/`. THE EXEMPTION TEST NEEDED A CLOSED-FORM PROOF, and three finite ones failed first. `hits(out) == set()` passes when the scan examined NOTHING, so a non-exempt control is required and that part always held. But proving a sample's absence is due to the PREFIX rather than its SHAPE defeated a depth-1 control (by a depth-1 rule), a depth-3 control (by a `count("/") <= 3` cap) and minimal twins (by a directory-NAME rule keyed on the rename). Each was locally correct; the sequence did not converge. I retracted the claim; review then showed the RETRACTION was itself premature, because a closed-form proof exists that is not a fixture: `is_scanned_path` compared against an INDEPENDENT restatement of the rule — written over path segments, not string prefixes — across every tracked `*.md` path, plus a cross product of four dimensions a population rule has been OBSERVED to key on here, since widened with basename, case and dotted directories. That list enumerates; it is not a universal over the space of rules. THE RESIDUAL AFTER ALL OF THAT IS THE WIRING, and it is named rather than closed. Every proof above is about `is_scanned_path`; none establishes that the SCAN consults it. A `continue` added at either call site re-exempts a path with the function untouched — measured to drop `--all` from 66 files to 31 while the oracle stays green. A fixture under `docs/superpowers/` is asserted to reach the OUTPUT so the one re-exemption this change argues against is witnessed; the general residual stands. `docs/superpowers/**` IS REACHED BY THE RULE and the detector's population is UNCHANGED. A wholesale exemption was built, then killed under review: `--diff`, the mode CI runs, scans ADDED lines and a frozen file contributes none, so it buys nothing where the check runs; what it WOULD suppress is a plan being written or revised now — 15 of the 35 have more than one commit. Two dated review SECTIONS there ("## Post-review revisions (Fable, 2026-07-20)" and "## Fable review fold (2026-07-21)") are kept as stated snapshot boundaries; the bare parenthetical attributions around them are not. `--all` goes 9 -> 1. The survivor is the carved-out one: a rejected design kept with the concrete harm that killed it. Corrected in review: the sweep had replaced a true attribution at ci-cd.md:1910 with a FALSE location — the third nil-slice instance was introduced by #622 on 2026-07-25, 12 days before the #751 fix, which does not touch that gate. And two edits had converted observed defects into hypotheticals (ci-cd.md:982) and one round's yield into a total (ci-cd.md:951); both are restored. fixes #812 Decisions-Edit: yes Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019T79beF1Ufid3dXju4yqkF