← ClaudeAtlas

proving-the-regressionlisted

Use when adding a guard, rule, validator, lint, schema, or check; when fixing a bug and about to assert the fix works; when a test claims to cover a scenario; or before stating that a rule is enforced. DO NOT invoke to choose which checks to run before pushing — route that to ledger:refusing-busywork.
qbs784/ledger · ★ 0 · Code & Development · score 72
Install: claude install-skill qbs784/ledger
# Proving the regression **A check you have not seen fail is not a check.** Coverage says a line ran. Only a failing negative control says the scenario is checked. Everything here follows from that one sentence. This skill owns whether a check can fail. It does not choose which checks to run for a given change. This matters most where it is least convenient: a new rule feels done when the valid case passes. But a rule that never rejected anything is indistinguishable from a rule that cannot reject anything, and the two stay indistinguishable until the day it was supposed to save you. ## The negative control Before trusting a guard, make the case it exists to reject, watch it fail, then revert. - Observe an ordinary regression fail **before** the fix when practical. - For a new static, schema, or corpus guard, temporarily introduce the rejected case and observe the intended failure. Confirm it fails **for the intended reason** — a guard that rejects your fixture because of a syntax error has not been proven. - A strong promise needs both a focused valid fixture **and** an invalid one that proves the check can fail. - Where a check is meant to reject a candidate before publication, verify it rejects at that point, not merely somewhere downstream. [references/false-guardrail-forms.md](references/false-guardrail-forms.md) is the recognition catalog: twelve shapes a guard takes when it cannot reject, the question that exposes each, the six checks to run over an assertion yo