git:20260501.402017b to git:20260501.de63568
48 added, 121 removed. Audit A to A.
---
name: verification-before-completion
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
---
- # 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 proves this claim?
- 2. RUN: Execute the FULL command (fresh, complete)
- 3. READ: Full output, check exit code, count failures
- 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 |
- |-------|----------|----------------|
- | Tests pass | Test command output: 0 failures | Previous run, "should pass" |
- | Linter clean | Linter output: 0 errors | Partial check, extrapolation |
- | Build succeeds | Build command: exit 0 | Linter passing, logs look good |
- | Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
- | Regression test works | Red-green cycle verified | Test passes once |
- | Agent completed | VCS diff shows changes | Agent reports "success" |
- | Requirements met | Line-by-line checklist | Tests passing |
-
- ## Red Flags - STOP
-
- - Using "should", "probably", "seems to"
- - Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
- - About to commit/push/PR without verification
- - Trusting agent success reports
- - Relying on partial verification
- - Thinking "just this once"
- - Tired and wanting work over
- - **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 |
- | "Linter passed" | Linter ≠ compiler |
- | "Agent said success" | Verify independently |
- | "I'm tired" | Exhaustion ≠ excuse |
- | "Partial check is enough" | Partial proves nothing |
- | "Different words so rule doesn't apply" | Spirit over letter |
-
- ## Key Patterns
-
- **Tests:**
- ```
- ✅ [Run test command] [See: 34/34 pass] "All tests pass"
- ❌ "Should pass now" / "Looks correct"
- ```
+ <skill>
- **Regression tests (TDD Red-Green):**
- ```
- ✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
- ❌ "I've written a regression test" (without red-green verification)
- ```
+ <purpose>
+ Claiming work is complete without verification is dishonesty, not efficiency. Evidence before claims, always. Violating the letter of this rule is violating the spirit.
+ </purpose>
- **Build:**
- ```
- ✅ [Run build] [See: exit 0] "Build passes"
- ❌ "Linter passed" (linter doesn't check compilation)
- ```
+ <triggers>
+ <rule>Use before ANY success/completion claim, expression of satisfaction, or positive statement about work state.</rule>
+ <rule>Use before committing, PR creation, task completion, moving to next task.</rule>
+ </triggers>
- **Requirements:**
- ```
- ✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
- ❌ "Tests pass, phase complete"
- ```
+ <warning level="hard">
+ NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE. If you haven't run the verification command in this message, you cannot claim it passes.
+ </warning>
- **Agent delegation:**
- ```
- ✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
- ❌ Trust agent report
- ```
+ <process>
+ <step>**IDENTIFY** — What command proves this claim?</step>
+ <step>**RUN** — Execute the FULL command (fresh, complete).</step>
+ <step>**READ** — Full output, check exit code, count failures.</step>
+ <step>**VERIFY** — Does output confirm the claim? If NO: state actual status with evidence. If YES: state claim WITH evidence.</step>
+ <step>**ONLY THEN** — Make the claim.</step>
+ </process>
- ## Why This Matters
+ ## What requires verification
- From 24 failure memories:
- - your human partner said "I don't believe you" - trust broken
- - Undefined functions shipped - would crash
- - Missing requirements shipped - incomplete features
- - Time wasted on false completion → redirect → rework
- - Violates: "Honesty is a core value. If you lie, you'll be replaced."
+ | Claim | Requires | Not sufficient |
+ |---|---|---|
+ | Tests pass | Test output: 0 failures | Previous run, "should pass" |
+ | Linter clean | Linter output: 0 errors | Partial check, extrapolation |
+ | Build succeeds | Build command: exit 0 | Linter passing, logs look good |
+ | Bug fixed | Original symptom test passes | Code changed, assumed fixed |
+ | Agent completed | VCS diff shows changes | Agent reports "success" |
+ | Requirements met | Line-by-line checklist | Tests passing alone |
- ## When To Apply
+ ## Red Flags — STOP
- **ALWAYS before:**
- - ANY variation of success/completion claims
- - ANY expression of satisfaction
- - ANY positive statement about work state
- - Committing, PR creation, task completion
- - Moving to next task
- - Delegating to agents
+ - Using "should", "probably", "seems to"
+ - Expressing satisfaction before verification ("Great!", "Perfect!", "Done!")
+ - About to commit/push/PR without verification
+ - Trusting agent success reports without independent check
+ - ANY wording implying success without having run verification
- **Rule applies to:**
- - Exact phrases
- - Paraphrases and synonyms
- - Implications of success
- - ANY communication suggesting completion/correctness
+ ## Rationalizations
- ## The Bottom Line
+ | Excuse | Reality |
+ |---|---|
+ | "Should work now" | RUN the verification |
+ | "I'm confident" | Confidence ≠ evidence |
+ | "Linter passed" | Linter ≠ compiler |
+ | "Agent said success" | Verify independently |
+ | "Partial check is enough" | Partial proves nothing |
- **No shortcuts for verification.**
+ <example type="good">
+ `[Run test command]` → See: 34/34 pass → "All tests pass"
+ </example>
- Run the command. Read the output. THEN claim the result.
+ <example type="bad">
+ "Should pass now" / "Looks correct" / "I've written a regression test" (without red-green verification)
+ </example>
- This is non-negotiable.
+ </skill>