| name | principle-prove-it-works |
| description | Apply before declaring any task or fix done. A habit, not a generated gate: run the real artifact, read the actual value, inspect the diff. Never a self-report, proxy, or 'it compiles.' |
Prove It Works
Verify every task output by checking the real thing directly. Do not infer from proxies, self-reports, or "it compiles."
Why: Unverified work has unknown correctness. Indirect verification (file mtimes, output freshness, agent self-reports, cached screenshots) feels cheaper than direct observation. Acting on a wrong inference costs far more than checking the source.
The Iron Law: no completion claims without fresh verification evidence. If the proving command was not run in this message, the claim cannot be made — and the rule covers paraphrases, satisfaction ("Done!", "Perfect!"), and implications of success, not just the exact words.
Pattern: After completing any task, ask: "how do I prove this actually works?"
The gate, before any status claim: identify the command that proves it → run it fresh and complete → read the full output and exit code → only then state the claim, with the evidence. If the output contradicts the claim, state the actual status instead.
| Excuse | Reality |
|---|
| "Should work now" / "I'm confident" | Confidence ≠ evidence — run it |
| "Linter passed" | Linter ≠ compiler ≠ tests |
| "Agent said success" | Verify the artifact independently |
| "Partial check is enough" | Partial proves nothing |
| "Just this once" / "I'm tired" | No exceptions |
For regression tests, verify red-green: run the new test (pass) → revert the fix (test MUST fail) → restore (pass). A test never seen failing proves nothing.
Check the real thing, not a proxy: