a-test-fails-when-the-code-is-wrong — The suites that guard critical predicates are shown to fail when those predicates are wrong
Declared critical predicates carry a scheduled mutation run with published survivors, and the compatibility analyzer's algebraic invariants are property tests.
PLÁNOVÁNO 0 of 3 issues done
- připraveno
- 3
- blokováno
- 0
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
docs/COVERAGE.md (\"What this is not, yet\") states that coverage proves a line ran, not that a test would fail if the line were wrong. No mutation run exists (no cargo-mutants anywhere in the tree), and the release compatibility analyzer (src/release/compat.rs, 33 tests) has no property test, while 8 other modules use proptest. 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:c111#6.
Výsledek
Declared critical predicates carry a scheduled mutation run with published survivors, and the compatibility analyzer's algebraic invariants are property tests.
Aktuální stav
Verified on master 707a04c on 2026-10-18. proptest is a dev-dependency (Cargo.toml:87), used in mesh/cooperation, mesh/journal, mesh/protocol, mesh/state, deploy, served, integration and economics/stats. There is no mutation tooling.
Cílový stav
I3120 and I3121 land. docs/COVERAGE.md names which subsystems are mutation-tested and how often.
Rozsah
- apps/majordomus-cli/src/release/compat.rs
- .github/workflows
- .ai/repo/ci/gates.yaml
- docs/COVERAGE.md
Mimo rozsah
- A blocking mutation gate on every pull request
- Mutation of shell libraries
Kritéria přijetí
- A mutation run over the declared critical modules is recorded on a named revision and its survivors are listed
- Compatibility properties hold under proptest in the lib suite
Validace
- majordomus plan validate
Rizika
- A mutation run is expensive on the one-at-a-time CI pool (memory: ci-pool-runs-one-validate-at-a-time); schedule it outside the validate pool or offload it.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3120 | PŘIPRAVENO | 0 | — | A scheduled mutation run over the declared critical predicates records its survivors as evidence |
| I3121 | PŘIPRAVENO | 0 | — | The release compatibility analyzer's invariants hold under property tests |
| I3309 | PŘIPRAVENO | 0 | — | A fix finishes completed only with a named regression case that fails on the task's base and passes on its head |
Graf
flowchart LR
I3120["I3120<br/>A scheduled mutation run over the declared critical predicates records its survivors as evidence"]:::ready
I3121["I3121<br/>The release compatibility analyzer's invariants hold under property tests"]:::ready
I3309["I3309<br/>A fix finishes completed only with a named regression case that fails on the task's base and passes on its head"]:::ready
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazováno z tohoto diagramu (3)
Canonical record: .ai/repo/project/milestones/a-test-fails-when-the-code-is-wrong.yaml. Read it back with majordomus plan show a-test-fails-when-the-code-is-wrong.