docs(board): register GT-633 — the guard whose expected value was a copy of its actual value - #290
docs(board): register GT-633 — the guard whose expected value was a copy of its actual value#290beyondnetPeru wants to merge 2 commits into
Conversation
…opy of its actual value GT-598 shipped a snapshot that declared itself a CAPTURE with nothing capturing it, and a guard that compared that snapshot's counts against six numbers typed into the test — the same six that are literals inside the snapshot. Expected and actual were copies of each other, so it passed for as long as the file went untouched, whatever Core actually pinned. It sat green through two separate drifts: `documentation-only` 129 against Core's 136, and twelve rules still recorded `unimplemented-native` after GT-595 and GT-632 gave them handlers. Registered as DONE across five merges (c856752, beb6f50, 104fd7a, 0aee3eb, 29e940d), with the four board files updated and the progress line recomputed 593/632 -> 594/633. The entry leads with the FAILURE MODES rather than the fixes, because those are the part that transfers: - a guard whose expected value is a copy of its actual value can only ever pass; the comparison must reach a source the artifact under test does not own; - a derived artifact stamped from another launders a stale input into something larger while each artifact's own --check still passes, which is why order belongs in a chain and not in prose; - a measurement reachable only by its own test cannot be captured, so the consumer copy gets hand-maintained and drifts; - a false `dead` in an evidence guard reads as stale evidence and invites repairing records that were already correct — 27 were reordered around one parser bug before it was fixed; - test positions typed as literals make an unrelated addition look like a regression elsewhere; - and the one caught in the act: two tests written to prove the parser fix passed against the OLD parser too, because the fixture root declared no `scripts` and the branch under test was skipped. The 38 surviving dead references are recorded as an accepted-scope remainder with the reason per class, not as unfinished work: each would need evidence INVENTED to clear it. A recorded command may be repaired when its artifact MOVED, never when it was deleted, replaced or absorbed. Worth noting about the closure record itself: it adds 17 validation commands and ZERO dead references — 1036 -> 1053 recorded commands, still 38 dead. The evidence for the gap about dead evidence is not itself dead. Verified: 08-validate-tracking green (633 gaps, ES 633, 609/609 catalog sections, 576 closure records); 41-validate-evidence-commands --strict --max-dead 38 exit 0; 01-validate-docs 1491 files; 04-check-bilingual-parity green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📊 Bilingual Coverage ImpactPR Changes
Repository Coverage
✅ Good: All EN changes have ES counterparts. Generated by GitHub Actions |
…ndency order
`Validate documentation` went red on `Reconcile maturity evidence`, and the cause
is the defect this very PR registers.
`maturity-reconciliation.json` is DERIVED FROM the gap board, and
`executive-summary.{md,es.md}` is derived from the reconciliation. Adding the
GT-633 row and moving the progress line to 594/633 invalidated both, and I
committed the board without replaying the chain — the exact ordering mistake
GT-630 exists to catch and GT-633's own entry describes as a transferable failure
mode. It cost one red required check, which is the cheapest possible way to be
reminded and still not a good look.
Regenerated in the declared order: 09-reconcile-maturity, then
generate-executive-summary. Not the other way round, and not both at once.
Verified: `46-validate-derived-artifact-order --verbose` reports the chain current
AND at a fixed point across 5 links / 7 artifacts; `09-reconcile-maturity --check`
green; 08-validate-tracking green; 01-validate-docs 1491 files;
04-check-bilingual-parity green.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Superseded by Closing rather than resolving the eight conflicts it now has against Two things this entry carried that
Say the word if either is worth amending onto the existing entry. |
Pull Request Summary
Registers the GT-598 follow-on as GT-633, status
DONE. Documentation only — all five code changes are already merged intomain.GT-598 shipped a snapshot that declared itself a CAPTURE with nothing capturing it, and a guard that compared that snapshot's counts against six numbers typed into the test — the same six that are literals inside the snapshot. Expected and actual were copies of each other, so it passed for as long as the file went untouched, whatever Core actually pinned. It sat green through two separate drifts:
documentation-only129 against Core's 136, and twelve rules still recordedunimplemented-nativeafter GT-595 and GT-632 gave them handlers.Closed across
c856752b,beb6f50f,104fd7a1,0aee3eb0,29e940d4.The entry leads with the failure modes, not the fixes
Those are the part that transfers to the next guard someone writes:
--checkstill passes, which is why order belongs in a chain and not in prose;deadin an evidence guard reads as stale evidence and invites repairing records that were already correct — 27 were reordered around one parser bug before it was fixed;link 2 of 3) make an unrelated addition look like a regression elsewhere;scriptsand the branch under test was skipped. With the fixture made live, the six failed 5 of 6.The remainder is recorded as accepted scope, not as unfinished work
38 dead references survive, and each would need evidence invented to clear: 15 name the vendored gitignored
.harness/bin/opa, 4 name a script ABSORBED into04-check-bilingual-parityrather than moved, 6 name deleted artifacts, 5 are root-levelnpm testrecorded without the workspace they ran in, the rest are build output and prose. A recorded command may be repaired when its artifact moved, never when it was deleted, replaced or absorbed. The standing rule is recorded too:--max-deadmay be lowered only from a count the CI job itself printed.One detail worth the reviewer's eye
The closure record adds 17 validation commands and zero dead references — 1036 → 1053 recorded commands, still 38 dead. The evidence for the gap about dead evidence is not itself dead.
Verification
08-validate-tracking.mjs— green: 633 gaps (ES 633), 609/609 EN/ES catalog sections, 576 closure records41-validate-evidence-commands.mjs --strict --max-dead 38— exit 001-validate-docs.mjs— 1491 markdown files04-check-bilingual-parity.mjs— greenProgress line recomputed in both languages: 593/632 → 594/633.
Note on the id: GT-633 was the first genuinely free id. GT-634 is already referenced by GT-624 as "registered separately", so it was left alone.
Evolith Core Quality Gates
01-validate-docs.mjsrun and green.04-check-bilingual-parity.mjsrun and green.Linked ADRs / Issues
GT-598; the affected guard isGT-578's ratchet.Conventional Commits
docs:🤖 Generated with Claude Code