← ClaudeAtlas

verify-test-strengthlisted

Prove a load-bearing test can actually fail — run mutation testing on a target module, then iteratively strengthen its tests until surviving mutants are killed. The automated form of the break-it discipline, for guards that must not silently pass.
VytCepas/project-init · ★ 0 · Testing & QA · score 69
Install: claude install-skill VytCepas/project-init
# verify-test-strength — make green mean something A passing test proves nothing until you've seen it fail for the right reason. Coverage is cheap and lies: an LLM-written suite can hit 100% coverage at ~4% mutation score — it *executes* the code without *asserting* on it. The fix is a **mutation-feedback loop**, not a one-off "try to break it": mutate the code, see which mutants the tests fail to catch, strengthen the tests to catch them, repeat. Static "write fault-detecting tests" guidance is the floor; the measured gain comes from iterating on real survivors. **Use this selectively.** The loop costs meaningfully more tokens and time than a normal test run, so reach for it on the tests that *matter* — the contract test guarding an invariant, the security/guard hook, the parser everything depends on — not on every test. For a quick change with no load-bearing test, the plain break-it rule (change the thing, watch the test fail, restore) is enough. ## 1. Scope it Name the **one module (or a few functions) under test** and **its test file**. Mutation testing is slow and noisy at scale, so a tight scope is what makes it usable. Point the mutation tool at deterministic, pure-logic code — skip I/O, network, template rendering, and hooks, where mutants are dominated by false-equivalents. ## 2. Run the mutation tool Only meaningful where a mutation runner is wired for the language: | Language | Tool | Wired? | |---|---|---| | **Python** | `mutmut` — `just test-mutation` | ✅