Problem
Three independent review rounds have now produced the same pattern:
| Round |
Reviewer found |
Fix closed |
Same class still open |
| E03 round 1 |
repository digested verbatim |
repository shape-checked |
executable still coerced |
| E03 round 2 |
executable coerced to false |
non-booleans refused |
— (swept) |
| B01 review |
GIT_CONFIG_COUNT not neutralized |
COUNT=0 added |
GIT_CONFIG_PARAMETERS still live |
In each case the fix was correct and verified, CI was green, and the author believed the work complete. In each case a defect of the same kind remained one identifier away. E03 round 2 found the executable collision only because a second review ran; B01's GIT_CONFIG_PARAMETERS gap reproduced the original failure byte-for-byte on a branch whose author had just declared it fixed.
The contract's acceptance checks are good at asking "did you fix the reported thing, and can you prove it." They do not ask "what else of this kind exists."
What this is not
Not a request for speculative hardening, and not a mandate to widen every fix. A change that grows without bound is its own defect — B01 deliberately left GIT_TEMPLATE_DIR out of scope and recorded it instead. The gap is the absence of a recorded answer, not the absence of a broader fix.
Proposed check
Add to the acceptance-check vocabulary a requirement along these lines:
Class sweep. For each defect a review finds, the implementer records what class it belongs to, what other instances of that class exist in the changed surface, and for each instance either closed it or stated why it is out of scope. An unanswered class is a blocking finding.
Concretely, for the three cases above the answers would have been:
- "
repository was digested without validation" → class: inputs that reach the digest without a shape check → sweep entries, excluded, uncovered_relevant_inputs, repository → would have found executable in round 1.
- "
GIT_CONFIG_COUNT is not neutralized" → class: environment-reachable git config sources → enumerate all four → would have found GIT_CONFIG_PARAMETERS before review.
Both sweeps are cheap. Neither requires guessing at hypothetical attacks; they require enumerating a surface the implementer already has open.
Scope
Contract/doc change plus, if warranted, a field on the review record so the sweep is recorded rather than asserted in prose. No change to record schemas or trust classification. Should not block E02.
Evidence
Problem
Three independent review rounds have now produced the same pattern:
repositorydigested verbatimrepositoryshape-checkedexecutablestill coercedexecutablecoerced tofalseGIT_CONFIG_COUNTnot neutralizedCOUNT=0addedGIT_CONFIG_PARAMETERSstill liveIn each case the fix was correct and verified, CI was green, and the author believed the work complete. In each case a defect of the same kind remained one identifier away. E03 round 2 found the
executablecollision only because a second review ran; B01'sGIT_CONFIG_PARAMETERSgap reproduced the original failure byte-for-byte on a branch whose author had just declared it fixed.The contract's acceptance checks are good at asking "did you fix the reported thing, and can you prove it." They do not ask "what else of this kind exists."
What this is not
Not a request for speculative hardening, and not a mandate to widen every fix. A change that grows without bound is its own defect — B01 deliberately left
GIT_TEMPLATE_DIRout of scope and recorded it instead. The gap is the absence of a recorded answer, not the absence of a broader fix.Proposed check
Add to the acceptance-check vocabulary a requirement along these lines:
Concretely, for the three cases above the answers would have been:
repositorywas digested without validation" → class: inputs that reach the digest without a shape check → sweepentries,excluded,uncovered_relevant_inputs,repository→ would have foundexecutablein round 1.GIT_CONFIG_COUNTis not neutralized" → class: environment-reachable git config sources → enumerate all four → would have foundGIT_CONFIG_PARAMETERSbefore review.Both sweeps are cheap. Neither requires guessing at hypothetical attacks; they require enumerating a surface the implementer already has open.
Scope
Contract/doc change plus, if warranted, a field on the review record so the sweep is recorded rather than asserted in prose. No change to record schemas or trust classification. Should not block E02.
Evidence
a63fa75(round 1) andb9c43b2(round 2)15fee9e(initial fix) andd631c4a(class gap closed)