skills/verification-before-completion/SKILL.md (3646 bytes)
1 --- 2 name: verification-before-completion 3 description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always 4 --- 5 6 # Verification Before Completion 7 8 ## Overview 9 10 **Core principle:** Evidence before claims, always. 11 12 **Violating the letter of this rule is violating the spirit of this rule.** 13 14 ## The Iron Law 15 16 ``` 17 NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE 18 ``` 19 20 If you haven't run the verification command in this message, you cannot claim it passes. 21 22 ## The Gate Function 23 24 ``` 25 BEFORE claiming any status or expressing satisfaction: 26 27 1. IDENTIFY: What command proves this claim? 28 2. RUN: Execute the FULL command (fresh, complete) 29 3. READ: Full output, check exit code, count failures 30 4. VERIFY: Does output confirm the claim? 31 - If NO: State actual status with evidence 32 - If YES: State claim WITH evidence 33 5. ONLY THEN: Make the claim 34 35 Skip any step = lying, not verifying 36 ``` 37 38 ## Common Failures 39 40 | Claim | Requires | Not Sufficient | 41 |-------|----------|----------------| 42 | Tests pass | Test command output: 0 failures | Previous run, "should pass" | 43 | Linter clean | Linter output: 0 errors | Partial check, extrapolation | 44 | Build succeeds | Build command: exit 0 | Linter passing, logs look good | 45 | Bug fixed | Test original symptom: passes | Code changed, assumed fixed | 46 | Regression test works | Red-green cycle verified | Test passes once | 47 | Agent completed | VCS diff shows changes | Agent reports "success" | 48 | Requirements met | Line-by-line checklist | Tests passing | 49 50 ## Red Flags - STOP 51 52 - Using "should", "probably", "seems to" 53 - Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.) 54 - About to commit/push/PR without verification 55 - Trusting agent success reports 56 - Relying on partial verification 57 - Thinking "just this once" 58 - Tired and wanting work over 59 - **ANY wording implying success without having run verification** 60 61 ## Rationalization Prevention 62 63 | Excuse | Reality | 64 |--------|---------| 65 | "Should work now" | RUN the verification | 66 | "I'm confident" | Confidence ≠ evidence | 67 | "Just this once" | No exceptions | 68 | "Linter passed" | Linter ≠ compiler | 69 | "Agent said success" | Verify independently | 70 | "I'm tired" | Exhaustion ≠ excuse | 71 | "Partial check is enough" | Partial proves nothing | 72 | "Different words so rule doesn't apply" | Spirit over letter | 73 74 ## Key Patterns 75 76 **Tests:** 77 ``` 78 ✅ [Run test command] [See: 34/34 pass] "All tests pass" 79 ❌ "Should pass now" / "Looks correct" 80 ``` 81 82 **Regression tests (TDD Red-Green):** 83 ``` 84 ✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass) 85 ❌ "I've written a regression test" (without red-green verification) 86 ``` 87 88 **Build:** 89 ``` 90 ✅ [Run build] [See: exit 0] "Build passes" 91 ❌ "Linter passed" (linter doesn't check compilation) 92 ``` 93 94 **Requirements:** 95 ``` 96 ✅ Re-read plan → Create checklist → Verify each → Report gaps or completion 97 ❌ "Tests pass, phase complete" 98 ``` 99 100 **Agent delegation:** 101 ``` 102 ✅ Agent reports success → Check VCS diff → Verify changes → Report actual state 103 ❌ Trust agent report 104 ``` 105 106 ## When To Apply 107 108 **ALWAYS before:** 109 - ANY variation of success/completion claims 110 - ANY expression of satisfaction 111 - ANY positive statement about work state 112 - Committing, PR creation, task completion 113 - Moving to next task 114 - Delegating to agents 115 116 **Rule applies to:** 117 - Exact phrases 118 - Paraphrases and synonyms 119 - Implications of success 120 - ANY communication suggesting completion/correctness