Commit 94d435d
feat(devx): hold the census page's
* feat(devx): hold the census page's `row N` references to the table by SEAM, not by number
`check-system-context-census` held every `file:line` anchor on the page to the
tree, but nothing held the two other hand-maintained claims on the same page: the
page's own prose row references and the `why:` strings in `NON_READ_ANCHORS` that
name a row by number. A row inserted into the behaviour table renumbers every row
below it and silently falsifies every reference past the insertion point, with the
gate green — measured on #15687 (three references went stale) and #15395 (all
three became true again by coincidence, observed by nothing).
Each reference now declares the SEAM it is about — a literal occurring in exactly
one numbered row — and the gate resolves the seam, reads the number the reference
carries, and refuses when they disagree, naming the reference, its number and the
row the key resolves to. A ledger keyed by number would rot in the same edit.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
* test(devx): self-test battery for row references, with the #15687 insertion as an ablation
23 cases: a positive control, one per spelling the page uses (`Row N`, `row N's`,
`row N`, `rows N–M`, and `row-N` inside a `why:`), a `why:` disagreement, keys that
resolve to no row and to two rows, the undeclared-reference population refusal, and
the real page today.
The ablation copies the REAL page into a temp dir, inserts one row above row 34 and
renumbers — the exact edit PR #15687 made under a green gate — and asserts the check
reddens naming `Row 34` (now row 35), the two `why:` strings for rows 34 and 60, and
both stated row extents. A byte assertion proves the real page was never written.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
---------
Co-authored-by: Claude <noreply@anthropic.com>row N references to the table by SEAM, and refuse when the numbering moves under them (#15896)1 parent f9a3c32 commit 94d435d
1 file changed
Lines changed: 743 additions & 3 deletions
0 commit comments