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