← ClaudeAtlas

falsifiable-testslisted

Empirically prove a test can fail before trusting it — break the code under test, confirm the test turns red for the right reason, then restore. Use this whenever you write, modify, or review tests; whenever a suite goes green and you are about to tell the user something "works"; and whenever the user asks to audit tests, check test quality, or hunt for false negatives, flaky tests, vacuous assertions, or tests that pass no matter what. Trigger it even when the user only says "add a test" or "make the tests pass" — a test never observed failing is unverified, and this is what verifies it.
ArnauFerma/falsifiable-tests · ★ 0 · Testing & QA · score 70
Install: claude install-skill ArnauFerma/falsifiable-tests
# Falsifiable Tests A test that has never been seen to fail is not evidence. It is a claim about the code that has itself never been tested. Green means one of two things, and from the outside they look identical: - the behaviour is correct, or - the test cannot detect the behaviour being wrong. The job of this skill is to tell those two apart empirically, by observation rather than by reading the test and finding it convincing. Reading is how false negatives survive — a vacuous test looks exactly like a real one, which is why it got written in the first place. ## The core rule **A test counts as verification only once it has been observed red for the right reason.** Two failure modes matter, and they are not symmetric: - **False negative** — the test passes while the behaviour is broken. This is the dangerous one. It converts "we have tests" into false confidence, and it is silent. Most of what follows is aimed here. - **False positive** — the test fails while the behaviour is fine (flaky, environment- dependent, order-dependent). Loud and annoying, and it trains people to ignore red, which manufactures false negatives downstream. ## The red proof Four steps, applied to the specific test you just wrote or are auditing — not to the whole suite. **1. Green.** Run the test against correct code. It passes — and the runner's count line says it ran: `1 passed`, not `1 skipped`, `no tests ran` or `Tests run: 0`. A filter that matches nothing reports success in ev