--- name: verification-before-completion description: Use when about to claim work is complete, fixed, or passing - requires running verification commands and confirming output before making any success claims; evidence before assertions always --- # Verification Before Completion ## Overview Claiming work is complete without verification is dishonesty, not efficiency. **Core principle:** Evidence before claims, always. **Violating the letter of this rule is violating the spirit of this rule.** ## The Iron Law ``` NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE ``` If you haven't run the verification command in this message, you cannot claim it passes. ## The Gate Function ``` BEFORE claiming any status or expressing satisfaction: 1. IDENTIFY: What command/check proves this claim? 2. RUN: Execute the FULL command (fresh, complete) 3. READ: Full output, check exit code, inspect results 4. VERIFY: Does output confirm the claim? - If NO: State actual status with evidence - If YES: State claim WITH evidence 5. ONLY THEN: Make the claim Skip any step = lying, not verifying ``` ## Common Failures | Claim | Requires | Not Sufficient | |-------|----------|----------------| | Script runs | Script output: exit 0 | "should work now" | | Figure is correct | Inspect output figure, check axes/labels/data | Script ran without errors | | Stats are valid | Check stats CSV, verify n/p/effect sizes | "computed correctly" | | Bug fixed | Reproduce original symptom: resolved | Code changed, assumed fixed | | Analysis complete | All outputs exist and look correct | "no errors in log" | | Cache regenerated | Load cache, verify row counts and columns | Script finished | ## Red Flags - STOP - Using "should", "probably", "seems to" - Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.) - About to commit without verification - Relying on partial verification - Thinking "just this once" - **ANY wording implying success without having run verification** ## Rationalization Prevention | Excuse | Reality | |--------|---------| | "Should work now" | RUN the verification | | "I'm confident" | Confidence != evidence | | "Just this once" | No exceptions | | "Script ran without errors" | No errors != correct output | | "I changed the right line" | Verify the OUTPUT, not the code | | "Partial check is enough" | Partial proves nothing | ## Key Patterns **Analysis scripts:** ``` OK: [Run script] [See: figure saved, N rows cached] "Script complete, figure at path/fig.png" BAD: "Should produce the correct figure now" ``` **Bug fixes:** ``` OK: [Run script that was failing] [See: no error, correct output] "Bug fixed, verified" BAD: "Fixed the typo, should work now" ``` **Cache regeneration:** ``` OK: [Run producer] [Check: cache exists, row count matches] "Cache regenerated: N rows" BAD: "Regenerated the cache" ``` **Downstream effects:** ``` OK: [Run downstream scripts] [See: all complete] "Downstream scripts verified" BAD: "Upstream cache updated, downstream should be fine" ``` ## When To Apply **ALWAYS before:** - ANY variation of success/completion claims - ANY expression of satisfaction - ANY positive statement about work state - Committing changes - Moving to next task - Reporting results to user ## The Bottom Line **No shortcuts for verification.** Run the command. Read the output. Inspect the result. THEN claim the result. This is non-negotiable.