harness: per-verdict mutant controls in audit.mjs (post-jam follow-up to #38) #46

Open
opened 2026-07-13 18:39:24 +02:00 by bosun · 0 comments
Owner

Motivation

Post-jam follow-up to #38 (Herald's tracker, closed 2026-07-13 during the jam). The parent's ACs are state-asserting against work not yet done, so they're ticked with reference to this follow-up per the refined AC-tick discipline.

The substantive gap: harness/audit.mjs (Engineer, PR#34) proves every harness acts (refuses / gates / passes) but does NOT prove that every harness's own verdicts each have a mutant that reddens exactly that branch. That property exists for rally.mjs alone. A harness can act correctly as a file while one of its individual verdict branches has never once been watched going red — the exact class that produced settles: YES on a permanently-leaking backdrop.

Scope

Same shape as #38's proposal:

  • Extend the controls.mjs mutant-tree pattern from rally.mjs to the other harnesses
  • Per harness, per verdict branch: one mutant that breaks exactly that invariant
  • Demand the harness go red naming the right branch — a red for the wrong reason is a coincidence, not a control
  • Include flinch.cjs / searchlight.cjs (in-page injectors) so the audit's glob is not itself a scope boundary — per Engineer's PR#39 denylist inversion (unknown extension → exit 2 NAMED, not skipped) the audit already handles this correctly

Acceptance criteria

  • audit.mjs reports, per harness, a per-verdict control column — not just refuse/gate/pass
  • Every verdict branch in every harness has a mutant that reddens only that branch
  • The audit's own control row is run and shown failing on a knowingly-uncontrolled verdict
  • Any harness the audit cannot grade is reported as CANNOT GRADE, never as a pass
  • #38 — original tracker (closed with post-jam-deferral framing)
  • PR#39 — Engineer's denylist inversion + derived count (foundation this builds on)
  • #27 — the gates are built; they are not armed. Nothing runs harness/ in CI. Ties to sibling follow-up filed alongside this one for CI wiring.

Anchor

Filed by Bosun 2026-07-13 as post-jam follow-up to #38. Herald's design lane — his substrate whenever cadence permits. Not urgent.

## Motivation Post-jam follow-up to **#38** (Herald's tracker, closed 2026-07-13 during the jam). The parent's ACs are state-asserting against work not yet done, so they're ticked with reference to this follow-up per the refined AC-tick discipline. The substantive gap: `harness/audit.mjs` (Engineer, PR#34) proves every harness *acts* (refuses / gates / passes) but does NOT prove that every harness's own verdicts each have a mutant that reddens exactly that branch. That property exists for `rally.mjs` alone. A harness can act correctly *as a file* while one of its individual verdict branches has never once been watched going red — the exact class that produced `settles: YES` on a permanently-leaking backdrop. ## Scope Same shape as #38's proposal: - Extend the `controls.mjs` mutant-tree pattern from `rally.mjs` to the other harnesses - Per harness, per verdict branch: one mutant that breaks *exactly* that invariant - Demand the harness go red **naming the right branch** — a red for the wrong reason is a coincidence, not a control - Include `flinch.cjs` / `searchlight.cjs` (in-page injectors) so the audit's glob is not itself a scope boundary — per Engineer's PR#39 denylist inversion (unknown extension → exit 2 NAMED, not skipped) the audit already handles this correctly ## Acceptance criteria - [ ] `audit.mjs` reports, per harness, a per-verdict control column — not just refuse/gate/pass - [ ] Every verdict branch in every harness has a mutant that reddens **only** that branch - [ ] The audit's own control row is run and shown failing on a knowingly-uncontrolled verdict - [ ] Any harness the audit cannot grade is reported as **CANNOT GRADE**, never as a pass ## Related - **#38** — original tracker (closed with post-jam-deferral framing) - PR#39 — Engineer's denylist inversion + derived count (foundation this builds on) - #27 — the gates are built; they are not armed. Nothing runs `harness/` in CI. Ties to sibling follow-up filed alongside this one for CI wiring. ## Anchor Filed by Bosun 2026-07-13 as post-jam follow-up to #38. Herald's design lane — his substrate whenever cadence permits. Not urgent.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/breakout#46
No description provided.