I3120 — A scheduled mutation run over the declared critical predicates records its survivors as evidence
Declare the critical predicates once in .ai/repo/ci (mesh trust and protocol, guard judge, evidence freshness, finish vacuous-verify, release compatibility). Run cargo-mutants over those files on a schedule or an offload host. Record the run (killed, survived, timeout per mutant) through the existing ledger path, and list the survivors in docs/COVERAGE.md's evidence section.
PŘIPRAVENO wave 0 · p2 · deep-work profile · parallel safe
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3120 bude přijato.
Cíl
Declare the critical predicates once in .ai/repo/ci (mesh trust and protocol, guard judge, evidence freshness, finish vacuous-verify, release compatibility). Run cargo-mutants over those files on a schedule or an offload host. Record the run (killed, survived, timeout per mutant) through the existing ledger path, and list the survivors in docs/COVERAGE.md's evidence section.
Proč
The owner asked for mutation testing of critical subsystems on 2026-09-11 (c113#16), 2026-09-16 (c158#10, \"coverage theatre\"), and again on 2026-10-17 (c293#2). docs/COVERAGE.md states that the gate does no mutation testing or fault injection. Proposed in ADR 0190 (Mutation testing is scheduled evidence over declared critical predicates, never a gate on every change) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c113#16, chatgpt-majordomus:c139#5, chatgpt-majordomus:c158#10, chatgpt-majordomus:c158#20, chatgpt-majordomus:c293#2, chatgpt-majordomus:c087#1.
Aktuální stav
No mutation tooling in the tree. Adversarial suites exist for the mesh (proptest in mesh/*).
Cílový stav
One scheduled job, its declaration in gates.yaml (not in every plan), and survivors visible with the revision.
Rozsah
- .ai/repo/ci/gates.yaml
- .github/workflows
- docs/COVERAGE.md
- docs/CLAIMS.yaml
- .ai/repo/project/intents
- scripts/ci/evidence-collect
- scripts/ci/claim-proof-check
- .ai/repo/evidence/ledger.json
- test/fixtures/coverage
- .ai/repo/adrs/0190-mutation-testing-is-scheduled-evidence-over-declared-critical-pr.md
Mimo rozsah
- Blocking pull requests on mutation score
- Shell mutation
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A recorded run on a named revision lists every mutant of the declared files with its outcome
- A deliberately weakened predicate in a fixture crate shows as a survivor
- docs/CLAIMS.yaml gains claim critical-predicates-are-mutated citing the mutation_run_recorded record, and intent criterion critical-predicates-mutated is rebound to that claim
- The mutation run is started by one command that .ai/repo/ci/gates.yaml declares; a hand run on an offload host records the same execution shape as the scheduled one
Validace
- scripts/ci/claim-proof-check
- majordomus plan validate
Požadované důkazy
- mutation_run_recorded
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3120.yaml. Read it back with majordomus plan show I3120.