Skip to content

[E13] Acceptance checks do not ask what else is of the same class #422

Description

@TheAmericanMaker

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions