tools/cargo-mutants.sh: one owner of cargo-mutants on Yggdrasil
One verify job per range: a plan container lists the mutants (diff taken at the workspace root), stage 1 runs each file's mutants against that file's tests only and decides only caught and unviable, stage 2 confirms every survivor, timeout, unfiltered or zero-test file on the full suite, sharded over free slot leases, and the merge prints one MUTANTS line and the final MISSED/TIMEOUT names. NAMES reruns chosen survivors; TEST_ARGS skips flaky tests. Deletes ygg-verify.sh's MISSED/TIMEOUT summary grep and its inline cargo mutants usage example; the host-mode export gains YGG_SLOTS and YGG_ROOT. Briefs and SKILL.md name the script; the mock docker grows /cm and /out, with a fake cargo and a fake flock for the new test-tools.sh cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d2d64d0d19
commit
d4fba11da6
15 changed files with 703 additions and 25 deletions
7
SKILL.md
7
SKILL.md
|
|
@ -317,7 +317,9 @@ nothing is pasted or paraphrased. The brief says:
|
|||
- **Measure the suite with the ecosystem's mutation tool, scoped to the cut's
|
||||
diff:** Stryker.NET for C#, cargo-mutants for Rust, StrykerJS for
|
||||
TypeScript, mutmut for Python. The tool generates the mutants and nobody
|
||||
writes an anchor. Every survivor is a finding about the tests, triaged by
|
||||
writes an anchor. cargo-mutants runs through `tools/cargo-mutants.sh` (per-file
|
||||
scoped tests, survivors confirmed against the full suite, sharded over
|
||||
Yggdrasil slots), once per Hands pass. Every survivor is a finding about the tests, triaged by
|
||||
name: a behavioural test is missing, a fixture is degenerate (see below),
|
||||
or the mutant is equivalent and gets a one-line reason. Boundary flips on
|
||||
float thresholds are equivalent by default and are not chased. The score is
|
||||
|
|
@ -622,7 +624,8 @@ exact script they want and agents do not browse. Contributions come by branch
|
|||
and Forgejo pull request (this repo lives on Yggdrasil's Forgejo), never a push
|
||||
to main. A script that verdicts depend on gets a Soul pass before merge, and
|
||||
`bash tools/test-tools.sh` passes first. The summary and wait modes of
|
||||
`tools/stopgap/ygg-verify.sh` and `tools/mutation-table.sh` are such scripts. A script whose brief no longer names it is pruned.
|
||||
`tools/stopgap/ygg-verify.sh`, `tools/mutation-table.sh` and
|
||||
`tools/cargo-mutants.sh` are such scripts. A script whose brief no longer names it is pruned.
|
||||
Scripts that know a project's layout stay in that project.
|
||||
|
||||
## Git and tooling rules (scars)
|
||||
|
|
|
|||
Loading…
Reference in a new issue