teal-sea / zeta-labstate of record · compiled 14 Aug 2026 · revision 9ebdea0 · source

Library · hunts/r_cb5ffe/MISSION.md

Hunt R-CB5FFE — what `tests/test_doors.py` actually catches

700 words · 83 lines · source

harness/departments/guard_ledger.py carries this record:

name            tests/test_doors.py
guards_against  a docs/doors/ entry page whose quoted command no longer runs
                — a front door that opens onto a wall
smallest_mutant a door page quoting a command that exits non-zero
                (e.g. a renamed script)
fired           None
scope           undetermined until demonstrated

harness/guards.py says what fired=None means: nobody has demonstrated anything, and the state is kept visible instead of defaulting to trust. The question it asks of every guard is what exact incorrect computation is this guard supposed to detect, and has that detection power actually been demonstrated?

This hunt builds the named mutant, plus the nine nearest neighbours that the guard's own docstring implies it should or should not see, and records which tier of the guard notices each one. The output is a power measurement and a miss list — the two fields the ledger record is missing.

Scope

hunts/r_cb5ffe/ only. No mutation is ever applied to the working tree: each one goes into a throwaway git worktree checked out at HEAD and is discarded. Nothing here is evidence for or against RH (docs/08).

The hunt does not edit harness/departments/guard_ledger.py. Flipping a ledger record from None to a measured value is a change to a demoted package (harness/VERDICT.md) and is the operator's call, not the probe's; the measurement is reported so that call can be made.

id: r_cb5ffe
question: Which door-breaking mutants does tests/test_doors.py detect, and which pass it?
frontier: fired=None, scope "undetermined until demonstrated" — no mutant has ever been built against this guard
proposed_attack: build ten mutants spanning the guard's three stated checks and its unstated gaps, run both tiers against each in an isolated worktree, and report the catch/escape table
dead_routes:
  - trusting the guard because it exists — harness/guards.py records three guards that failed exactly that way
required_oracles:
  - the pytest process exit status of tests/test_doors.py on the mutated worktree
  - the exit status of the door scripts themselves, run directly
kill_conditions:
  - the null control (unmutated worktree) fails either tier, which would make every catch unattributable
  - a mutant cannot be built without editing outside hunts/r_cb5ffe/ or the throwaway worktree
  - the slow tier cannot be run inside budget, in which case only fast-tier verdicts are reported and said to be partial
agents_may:
  - build mutants and run them in a throwaway worktree
  - record catch and escape outcomes as data
  - report a proposed ledger amendment
agents_may_not:
  - edit tests/test_doors.py, docs/doors/, interactive_lab/ or scripts/ in the working tree
  - write the measured value into harness/departments/guard_ledger.py
  - describe an escape as a defect in the guard rather than a bound on its scope

The ten mutants

idmutantfamily
M1the doors README names a script that does not existREADME command unrunnable
M2a door's script is renamed on disk, README left pointing at the old nameREADME command unrunnable
M3a door page names a missing script; README untoucheddoor-page command unrunnable
M4a command quoted only by a door page exits non-zerodoor-page command unrunnable
M5the command quoted by the README refute row exits non-zeroREADME command unrunnable
M6a README row's command is replaced by one naming no script at allREADME command unrunnable
M7the certify door's Lean command is misspelledREADME command unrunnable
M8the adopt door's pytest command names a missing test fileREADME command unrunnable
M9an interactive_lab page loads code from another hostinteractive_lab contract
M10an interactive_lab page loses its <title>interactive_lab contract

M4 and M5 are the ledger's named mutant, split by where the command is quoted: M5 in the README table the guard reads, M4 in a door page it does not.

Files