--- name: verification-before-completion description: "Require fresh verification before any success claim." version: 1.0.0 author: Hermes Agent (adapted from obra/superpowers) license: MIT platforms: [linux] metadata: hermes: tags: [verification, testing, quality, evidence] related_skills: [test-driven-development, subagent-driven-development] --- # Verification Before Completion **Core principle:** Evidence before claims, always. ## 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!") - About to commit/push/PR without verification - Trusting agent success reports - 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 | | "Linter passed" | Linter ≠ compiler | | "Agent said success" | Verify independently | | "Partial check is enough" | Partial proves nothing | ## Key Patterns **Tests:** - Correct: [Run test command] [See: 34/34 pass] "All tests pass" - Wrong: "Should pass now" / "Looks correct" **Regression tests (TDD Red-Green):** - Correct: Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass) - Wrong: "I've written a regression test" (without red-green verification) **Build:** - Correct: [Run build] [See: exit 0] "Build passes" - Wrong: "Linter passed" (linter doesn't check compilation) **Requirements:** - Correct: Re-read plan → Create checklist → Verify each → Report gaps or completion - Wrong: "Tests pass, phase complete" **Agent delegation:** - Correct: Agent reports success → Check VCS diff → Verify changes → Report actual state - Wrong: Trust agent report ## When To Apply 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 Rule applies to exact phrases, paraphrases, synonyms, and implications of success.