verification
Verification Skill
No evidence, no completion claim. Period.
The Iron Law
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
"I think it works" is not evidence. "Tests passed 5 minutes ago" is not fresh. Run the checks NOW, read the output NOW, then claim completion.
When to Apply
- About to say "done", "complete", or "ready"
- Before committing or creating a PR
- After agent teammates claim work is finished
- When the
verification_reminderhook fires - Before any handoff to another person or system
Gate Function
IDENTIFY
What needs verification? List every claim you're about to make.
- Tests pass? Which test suite?
- Build succeeds? Which build command?
- Feature works? What specific behavior?
- No regressions? What could have broken?
RUN
Execute the actual checks. Not "I think they pass" - run them NOW.
- Run the test suite. Capture output.
- Run the build. Capture output.
- Run linters if applicable. Capture output.
READ
Read the output. Actually read it. Don't assume.
- Check exit codes (0 = success, anything else = failure)
- Look for warnings that might indicate issues
- Count passing vs failing tests
- Verify the output matches expectations
VERIFY
Does the output confirm success? Cross-reference against requirements.
- Every requirement has corresponding evidence
- No skipped tests that cover changed behavior
- No warnings that indicate degraded functionality
CLAIM
Only now can you claim completion. Include the evidence.
Common Failures
| Claim | Requires | Not Sufficient |
|---|---|---|
| "Tests pass" | Fresh test run output | "They passed before" |
| "Build succeeds" | Actual build output | "It should build" |
| "Feature works" | Demonstrated behavior | "I implemented it correctly" |
| "No regressions" | Full test suite run | "I only changed one file" |
| "PR is ready" | All checks green | "I think it's good" |
| "Bug is fixed" | Reproduction test passes | "I addressed the cause" |
Anti-Rationalization Table
| Excuse | Counter |
|---|---|
| "The agent said it works" | Agents hallucinate. Read the actual output |
| "I'm confident it works" | Confidence is not evidence. Run the check |
| "I just ran tests a minute ago" | You changed code since then. Run again |
| "It's a trivial change" | Trivial changes cause production incidents. Verify |
| "Tests take too long" | Debugging takes longer. Run them |
| "I trust the subagent" | Trust but verify. Verification is cheap, debugging is expensive |
| "The types check out" | Types don't catch logic errors. Run the tests |
| "I'll verify after committing" | Commits without verification = tech debt |
Red Flags
Thoughts that signal you're about to skip verification:
- "This obviously works, I don't need to check"
- "The agent already verified this"
- "I'll just commit and fix anything CI catches"
- "It's the same as last time, it'll be fine"
- "I only changed one line"
- "Running tests again would be redundant"
If you catch yourself thinking any of these: STOP. Run the verification.
Hook Integration
The verification_reminder hook reminds you to verify after agent tasks complete. This skill enforces the methodology. The hook fires, you see the reminder, invoke this skill for the systematic verification process.
Flow: Agent completes work -> Hook reminds you -> IDENTIFY what to check -> RUN the checks -> READ output -> VERIFY against requirements -> CLAIM only with evidence.
Verification Checklist
Use this before any completion claim:
- All changed files saved
- Test suite run AFTER last code change
- Test output actually read (not assumed)
- Build passes (if applicable)
- Linting passes (if applicable)
- Requirements cross-referenced against implementation
- Edge cases from requirements are covered
- No TODO/FIXME left in changed code (unless intentional)
The Bottom Line
Evidence or it didn't happen. Run the check, read the output, then speak.