mutation-gate
Installation
SKILL.md
Mutation Gate
Mutation testing answers the question coverage can't: "would a buggy version of this code slip past my tests?" A mutation tool introduces small, controlled edits ("mutants") — flipping < to <=, replacing true with false, deleting statements — and reruns the test suite. A mutant the tests catch is "killed"; one that slips through is a "survivor" and evidence of weak assertions.
Requirements
- Run mutation command when
requireMutation=true. - Treat surviving mutants as test-quality defects — the test said "pass" when the code changed meaning.
- Strengthen assertions or add missing cases until the tool's own score threshold passes.
- The mutation command's exit code is the source of truth for PASS/FAIL. The score is what you iterate on, but the tool's threshold config decides the gate.
Per-language tool reference
| Language | Tool | Install | Canonical command | Output path |
|---|---|---|---|---|
| JS / TS | Stryker | pnpm add -D @stryker-mutator/core @stryker-mutator/jest-runner (or vitest-runner) |
npx stryker run |
reports/mutation/mutation.json |
| Python | mutmut | pip install mutmut |
mutmut run && mutmut results --json |
inspected via mutmut show <id> |
| Go | go-mutesting | go install github.com/zimmski/go-mutesting/cmd/go-mutesting@latest |
go-mutesting ./... |
stdout |
| Rust | cargo-mutants | cargo install cargo-mutants |
cargo mutants |
mutants.out/outcomes.json |