The one instrument in this workspace that could mechanically detect a test which runs but cannot reach the defect it names has never emitted a single data point, and cannot report that it hasn't.
Measured
gh run list --workflow mutants-nightly.yml --limit 100 → 87 runs, conclusion success on all 87. Oldest 27133754825 (2026-06-08, the workflow's inception), newest 33599619308 (2026-09-02).
Newest run, all five legs, 27–38 seconds each, every one success:
mutants / wcore-config success 06:36:45 → 06:37:13
mutants / wcore-agent success 06:36:46 → 06:37:23
mutants / wcore-providers success 06:36:45 → 06:37:20
mutants / wcore-cli success 06:36:46 → 06:37:18
mutants / wcore-cron success 06:36:46 → 06:37:22
and every one of them died the same way:
Error: create output parent directory "target/mutants-wcore-config"
No such file or directory (os error 2)
There is no cargo build and no mkdir -p target before cargo mutants --output target/..., so on a fresh runner the parent does not exist. cargo mutants exits non-zero, the step swallows it, and the job concludes success.
A real leg takes minutes and reports e.g. 54 mutants tested in 2m: 9 missed, 28 caught, 17 unviable. Thirty seconds is not a fast run; it is no run.
Why this is worth its own ticket
A gate that cannot fail is worth exactly as much as one that cannot pass. This one has read green 87 times, and anything built on top of it would be graded on a shrug. It was found while trying to answer "is mutation coverage already guarding the vacuous-by-data test class?" — the answer is no, and it never has been.
The two known-positive controls matter here: the only run that ever filed issues is 27133754825, and those issues (#1, #3, #5) read **Catch rate**: N/A%, **Summary**: no summary, none under Top surviving mutants. So even the run that produced output produced no data.
Acceptance
- c1 RED ARM — the diagnosis reproduces before anything else counts. On a checkout with no
target/ present, cargo mutants -p wcore-cron --no-shuffle --timeout 90 --output target/mutants-wcore-cron exits non-zero in under 60 seconds printing create output parent directory / No such file or directory (os error 2).
- c2 THE FIX PRODUCES REAL DATA, read from the artifact, not the job log. After the fix, one
workflow_dispatch run has a mutants / wcore-cron leg whose uploaded artifact contains a line matching ^[0-9]+ mutants tested in .
- c3 THE LEG CAN NOW CONCLUDE
failure. With the fix in place, a run in which cargo-mutants produces no summary line makes the job conclude failure. Demonstrated, not asserted — this is the half that stops it being unfalsifiable, and it is the half that has been missing for 87 runs.
- c4 THE "no data ever" CLAIM CARRIES ITS CONTROL. Any scan asserting a log contains no summary line is run in the same invocation against a copy of that log with a real summary line inserted, and both arms reported: real logs → 0 hits, seeded copy → exactly 1 hit.
- c5 SCOPE, RECORDED SO THE FIX IS NOT OVER-CLAIMED. The closing comment records the
wcore-cron summary line from c2 verbatim as the first mutation-coverage baseline this repository has ever measured, and states that fixing the harness does not by itself establish coverage for any other crate.
Found while adjudicating whether the "vacuous-by-data test" class needed a ticket of its own. It does not — journal_envelope_roundtrip.rs already pins the float case with a 2048-value sweep whose assert names a dropped float_roundtrip feature. This is the real gap underneath that question.
The one instrument in this workspace that could mechanically detect a test which runs but cannot reach the defect it names has never emitted a single data point, and cannot report that it hasn't.
Measured
gh run list --workflow mutants-nightly.yml --limit 100→ 87 runs, conclusionsuccesson all 87. Oldest27133754825(2026-06-08, the workflow's inception), newest33599619308(2026-09-02).Newest run, all five legs, 27–38 seconds each, every one
success:and every one of them died the same way:
There is no
cargo buildand nomkdir -p targetbeforecargo mutants --output target/..., so on a fresh runner the parent does not exist.cargo mutantsexits non-zero, the step swallows it, and the job concludessuccess.A real leg takes minutes and reports e.g.
54 mutants tested in 2m: 9 missed, 28 caught, 17 unviable. Thirty seconds is not a fast run; it is no run.Why this is worth its own ticket
A gate that cannot fail is worth exactly as much as one that cannot pass. This one has read green 87 times, and anything built on top of it would be graded on a shrug. It was found while trying to answer "is mutation coverage already guarding the vacuous-by-data test class?" — the answer is no, and it never has been.
The two known-positive controls matter here: the only run that ever filed issues is
27133754825, and those issues (#1,#3,#5) read**Catch rate**: N/A%,**Summary**: no summary,noneunder Top surviving mutants. So even the run that produced output produced no data.Acceptance
target/present,cargo mutants -p wcore-cron --no-shuffle --timeout 90 --output target/mutants-wcore-cronexits non-zero in under 60 seconds printingcreate output parent directory/No such file or directory (os error 2).workflow_dispatchrun has amutants / wcore-cronleg whose uploaded artifact contains a line matching^[0-9]+ mutants tested in.failure. With the fix in place, a run in which cargo-mutants produces no summary line makes the job concludefailure. Demonstrated, not asserted — this is the half that stops it being unfalsifiable, and it is the half that has been missing for 87 runs.wcore-cronsummary line from c2 verbatim as the first mutation-coverage baseline this repository has ever measured, and states that fixing the harness does not by itself establish coverage for any other crate.Found while adjudicating whether the "vacuous-by-data test" class needed a ticket of its own. It does not —
journal_envelope_roundtrip.rsalready pins the float case with a 2048-value sweep whose assert names a droppedfloat_roundtripfeature. This is the real gap underneath that question.