record(ENG-RECORD-CONFLICT-SURFACES): index #1543, the projection gate that never tests key uniqueness - #1656
Merged
Merged
Conversation
…e that never tests key uniqueness `.agents/issue-index.md` did not track #1543. Verified with a positive control rather than a bare grep: the index carries 563 rows on `origin/main` and `issues/1217` resolves to exactly one of them, while `issues/1543` resolves to none, on `origin/main` and on the head of every open pull request. The issue was filed and never indexed, so the three places AGENTS.md requires to agree, the index, the owning row's spec, and the pull request body, agreed on nothing. #1543 records that `scripts/check-public-doc-tables.py` gates the projection documents for size and shape and never for key uniqueness, so one key can carry two contradictory rows with nothing indicating which is current. That is a checker-semantics change, which AGENTS.md routes to its own row, spec, red-before test, and green-after evidence. This change therefore indexes the issue and does not touch the checker, and #1543 stays open. The row names `ENG-RECORD-CONFLICT-SURFACES` as its owner because that row is already the standing owner of `check-public-doc-tables.py` semantics: #460, #495, #498, #507 and #1055 all sit there, and #1055's own row records that the redesign of the doc budgets is that row's scope. The alternative, a dash plus an `## Owed` entry in a spec, would have to pick a spec whose work left this debt, and no spec did; the defect surfaced on PR #1081, whose separate repair collapses the duplicate without closing the blindness. Ownership is not a promise that the scope is already written, so the row says in its own text that the fixing row still owes the spec and the red-before. Ownership is gated, not decorative. `check_issue_index` counts rows that name neither an owner nor a spec `## Owed` entry and refuses any count above UNOWNED_HIGH_WATER, currently 33. Mutating the new row's owner to a dash in this worktree takes the count to 34 and reds `check-agent-record.py` with `#1543` named, which also proves the checker read this tree and not the shared checkout. Restored byte-for-byte afterwards. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
…1543 row before it becomes immutable The fresh review confirmed the owner choice and the gate evidence, and found two imprecise enumerations inside the appended cell. The row is append-only, so it can never be corrected after it lands; both are corrected here, on the branch, and the range still diffs against the merge base as a pure append. The first enumeration attributed all five prior rows to `check-public-doc-tables.py`. The ownership claim is exactly true, the script attribution is not: #460's `check_links` is defined in `scripts/check-agent-record.py`, and #498's retired `MAX_README_CHARS` lives in `scripts/check-readme-structure.py`. Neither symbol occurs in `check-public-doc-tables.py`, verified at this head. The group is now named "public-document projection-gate semantics", which is accurate for all five, and the row says why that width was chosen so the next reader does not narrow it back. The row also now records what the review established about the owner itself: it is `READY` rather than `DONE`, and its spec already names `tests/scripts/test_check_public_doc_tables.py` as a red-before suite, so the owner is a live row whose declared test surface is the checker #1543 indicts. The second enumeration claimed the only duplicate-key checks under `scripts/` were three named files. `scripts/check-agent-record.py` holds two more: `check_matrices` refuses a `duplicate ID` over the matrix inventories, and `check_issue_index` refuses `issue #N listed twice`, which is the refusal this very row had to be checked against before it was appended. That file also reads `docs/BENCHMARKS.md` through `markdown_files`. The substantive claim survives and is now stated as what it always was, that no checker asserts uniqueness on a projection document; and `check_matrices` is named as existing prior art, because it is the shape the fixing row should mirror, and an immutable row that implied there was none would cost someone that discovery later. The prior art is cited as `path::symbol` rather than `path:line` on purpose. `ENG-RECORD-ANCHOR-RATCHET` measured that every stale anchor found in the 2026-08-13/14 campaign was still in range, so a line number in a row that can never be edited rots silently. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
`origin/main` advanced by two commits while this row was under review, so the trailer gates would have taken their behind-base skip arm rather than run. The merge is authored rather than left to `--no-edit`, which produces a trailerless commit the trailer gate rejects. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
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.
.agents/issue-index.mddid not track #1543. Verified with a positive control rather than a bare grep, because a null grep proves the terms wrong before it proves anything absent: the index carries 563 rows onorigin/main,issues/1217resolves to exactly one of them, andissues/1543resolves to none, onorigin/mainand on the head of every open pull request. 18 of the 19 open heads carry the index and answer the control with 1 and #1543 with 0; the nineteenth, PR #361, predates the file, sogit showexits 128 there and the row cannot be present. The issue was filed and never indexed, so the three places AGENTS.md requires to agree, the index, the owning row's spec, and the pull request body, agreed on nothing.This change appends one row and changes nothing else.
What #1543 says, and why the checker is not touched here
scripts/check-public-doc-tables.pygates the projection documents for size and shape, the section and paragraph counts, the cell cap, the shrink-only oversized-cell ratchet, and never for key uniqueness. A public document is defined as the keyed current projection, one row per key carrying what is true now, and no gate enforces the "one" part. On PR #1081docs/BENCHMARKS.mdcarried the key**NemotronH paged forward** (MODEL-NEMOTRON-H-ABI-A2P, #810)twice with contradictory content, one row reporting a GB10 read of 4/24 with the re-run pending and the other reporting the same gate passing 96/96, and the checker returned rc=0 on that file.That is a checker-semantics change, which AGENTS.md routes to its own row, spec, red-before test or mutation, and green-after evidence. So this change indexes the issue and leaves
scripts/check-public-doc-tables.pyuntouched, and #1543 stays open.Why the row names an owning row rather than a spec
AGENTS.md gives an index row two admissible shapes: it names an owning row ID, or it names a spec that lists the issue under
## Owed.ENG-RECORD-CONFLICT-SURFACESis already the standing owner of public-document projection-gate semantics. #460, #495, #498, #507 and #1055 all sit there, and #1055's own row records in words that redesigning the doc budgets is that row's scope. That group is named at exactly this width on purpose: the five do not all sit in one script, since #460'scheck_linksis defined inscripts/check-agent-record.pyand #498's retiredMAX_README_CHARSlives inscripts/check-readme-structure.py, so calling themcheck-public-doc-tables.pysemantics would be false of two of them. The owner is also live rather than historical: the row isREADY, notDONE, and its spec already namestests/scripts/test_check_public_doc_tables.pyas a red-before suite, so its declared test surface is the checker #1543 indicts.The
## Owedshape was considered and rejected on its meaning.## Owednames the spec whose own work left the debt, and no spec here did. The defect surfaced during the review of PR #1081, whose separate repair collapses the duplicate rows into one without closing the blindness, because the next append reproduces it. Naming an owner is also not a claim that the scope is already written, so the row says in its own text that the fixing row still owes the spec and the red-before, and it carries the two cautions the issue records: the assertion has to be scoped per table, sinceaudit-live-rows --checkreports three IDs living in two matrices, BACKEND-CPU, BACKEND-CUDA-SM121 and BACKEND-VULKAN, so a naive global check redsmainon day one; and the red-before is available rather than hypothetical, because PR #1081's own pre-repair head contains a real duplicate.What the review changed
The fresh review reproduced the premise, the duplicate count, the ownership mutation and the gates, confirmed the owner choice on stronger grounds than the first draft gave, and returned one minor finding: two enumerations inside the appended cell were imprecise. The cell is append-only, so it can never be corrected once it lands, and both were corrected on the branch before it did.
The first is the script attribution above. The second claimed the only duplicate-key checks under
scripts/were three named files.scripts/check-agent-record.pyholds two more, verified at this head:check_matricesrefuses aduplicate IDover the matrix inventories, andcheck_issue_indexrefusesissue #N listed twice, which is the refusal this very row had to be checked against before it was appended. That file also readsdocs/BENCHMARKS.md, throughmarkdown_files. The substantive claim survives and is now stated as what it always was, that no checker asserts uniqueness on a projection document, andcheck_matricesis named as prior art, because it is the shape the fixing row should mirror and an immutable row implying there was none would cost someone that discovery later. The prior art is cited aspath::symbolrather thanpath:line, becauseENG-RECORD-ANCHOR-RATCHETmeasured that every stale anchor found in its 2026-08-13/14 campaign was still in range, so a line number in a row that can never be edited rots silently.origin/mainadvanced by two commits during the review, so it is merged here with an authored, trailered message rather than by--no-edit, which produces the trailerless commit the trailer gate rejects. The range against the merge base remains a pure append,check-issue-index-append-only.pyreports zero removed lines, and the pull request still shows one added line in one file.Evidence
Ownership is gated, not decorative.
check_issue_indexcounts the rows that name neither an owner nor a spec## Owedentry and refuses any count aboveUNOWNED_HIGH_WATER, currently 33. Mutating this row's owner cell to a dash in the worktree takes the count to 34 and redscheck-agent-record.pywith#1543named in the message, which also proves the checker read this worktree and not the shared checkout, a distinction that has silently inverted verdicts here before. The tree was restored byte-for-byte afterwards and the mutation was confirmed to have applied before the run.Green after, re-run on the corrected and merged head:
check-agent-record.pyrc=0,check-issue-index-append-only.pyrc=0, andscripts/agent-preflight.sh --fail-on-skipwith zero skips. The two trailer gates were confirmed to have RUN rather than read as green:origin/mainresolved to a commit, soBASE_UNRESOLVEDdoes not apply;git merge-base --is-ancestorexited 0, so neitherANCESTRY_UNKNOWNnor the behind-base arm applies; andgit rev-list --countexited 0 printingRANGE_COUNT=3, a numeric count above zero, soRANGE_UNKNOWNdoes not apply andcommit-trailersandcommit-styleboth took their run arm over the one commit under judgement.FOLLOWING_AGENTS_PROTOCOL
Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [claude-code]