Verification Before Completion
The Iron Law
code
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
code
BEFORE claiming any status: 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? - NO → State actual status with evidence - YES → State claim WITH evidence 5. ONLY THEN: Make the claim Skip any step = lying, not verifying
What Requires Verification
| Claim | Requires | NOT Sufficient |
|---|---|---|
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
| Linter clean | Linter output: 0 errors | Partial check |
| Build succeeds | Build command: exit 0 | Linter passing |
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
| Requirements met | Line-by-line checklist verified | "Tests passing" |
Red Flags — STOP
If you catch yourself:
- •Using "should", "probably", "seems to"
- •Expressing satisfaction before verification ("Great!", "Done!")
- •About to commit/push without verification
- •Relying on a previous run
- •Thinking "just this once"
ALL of these mean: Run the verification command NOW.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "Should work now" | RUN the verification |
| "I'm confident" | Confidence ≠ evidence |
| "Just this once" | No exceptions |
| "Linter passed" | Linter ≠ compiler ≠ tests |
| "Partial check is enough" | Partial proves nothing |
Key Patterns
Tests:
code
✅ [Run test command] → [See: 34/34 pass] → "All tests pass" ❌ "Should pass now" / "Looks correct"
Build:
code
✅ [Run build] → [See: exit 0] → "Build passes" ❌ "Linter passed so build should be fine"
Requirements:
code
✅ Re-read plan → Create checklist → Verify each item → Report gaps or completion ❌ "Tests pass, task complete"
The Bottom Line
Run the command. Read the output. THEN claim the result.
This is non-negotiable.