Skip to content

:test: test(compare): kill the surviving EffectChallenge intervention mutant (TEST-02) - #79

Merged
konih merged 1 commit into
mainfrom
lane/aud2-s04-integrate
Aug 18, 2026
Merged

:test: test(compare): kill the surviving EffectChallenge intervention mutant (TEST-02)#79
konih merged 1 commit into
mainfrom
lane/aud2-s04-integrate

Conversation

@konih

@konih konih commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

AUD2-S04 (TEST-02). Adds a regression test and comparison-corpus case that kill the surviving EffectChallenge intervention mutant in internal/compare/classify_intervention.go.

Tests-and-corpus only — internal/compare/classify_intervention.go is byte-unchanged vs main.

  • internal/compare/classify_intervention_test.go — new coverage for the challenge-intervention path
  • examples/comparison/promotion-gates/** — new challenge-intervention-added case, candidate + suite + expected record
  • CHANGELOG.md — regenerated by the integrator (implementers are fenced from it)

Independent review: APPROVE, no P0/P1, no merge conditions.
Gate: cold task check (after go clean -testcache) exits 0 on the rebased head, including changelog-verify.

Rebased onto origin/main (f886381); opened from an integrate branch because the CHANGELOG amend rewrote the published lane/aud2-s04 head and force-push is not authorized.

… mutant (TEST-02)

The 2026-08-18 audit (TEST-02) demonstrated by mutation that deleting
`|| e == aggregate.EffectChallenge` from `isStricterInterventionEffect`
left `go test ./internal/compare/...` AND `task dogfood-comparison`
green: a regression that stops classifying challenge-effect deltas as
stricter interventions could merge through every wired gate. Confirmed
independently on this lane's base before writing anything (both tiers
exit 0 with the term deleted).

Unit tier (REQ-AUD2-S04-01): new `classify_intervention_test.go` pins a
baseline-APPROVE / candidate-adds-`challenge` delta to
`stricter-intervention-added`, plus the predicate pair directly and the
already-carried-challenge negative that exercises
`interventionFindingsByIdentity`. The fixture is built so the four
higher-priority detectors (D-117 ladder) stay silent, otherwise the
assertion never reaches the mutated predicate.

Corpus tier (REQ-AUD2-S04-03): new `challenge-intervention-added` case
under `examples/comparison/promotion-gates/` — a `/retentionMs` shrink,
a candidate-only `retention-ack` challenge rule scoped to that pointer,
its D-121 bundle pin, an `explicitly-accepted-deltas` allowlist row, and
the recorded ComparisonRecord. The four pre-existing records regenerate
byte-identical.

Mutation re-performed with the tests in place (REQ-AUD2-S04-02 /
REQ-AUD2-S04-04): `go test ./internal/compare/...` fails on
TestClassifyStricterInterventionAddedChallengeEffect and
TestInterventionEffectPredicates; `task dogfood-comparison` fails with
`exit status 6` fail-closed on the new case. The predicate itself is
byte-unchanged.

`isMissedInterventionEffect` deliberately still excludes `challenge` and
is pinned as such — out of scope, not a bug.

REQ-AUD2-S04-01, REQ-AUD2-S04-02, REQ-AUD2-S04-03, REQ-AUD2-S04-04
@konih
konih merged commit 39333fd into main Aug 18, 2026
5 checks passed
@konih
konih deleted the lane/aud2-s04-integrate branch August 18, 2026 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant