verification
Use as final checklist before declaring any task or branch complete
Verification Before Completion
Overview
Never declare done without running this checklist. "It works on my machine" is not verification.
Checklist
Build Verification
-
{{lint-command}}— clean, zero warnings -
{{typecheck-command}}— clean, zero errors -
{{test-command}}— all pass, zero failures
Code Verification
-
git diffreviewed — no debug prints, no TODOs, no commented-out code - No
.env, credentials, or secrets in the diff - All new functions have type annotations
- All new functions have tests
- Edge cases covered (null, empty, large input, concurrent access)
Spec Verification
- Original task spec's objective is met
- All acceptance criteria commands pass
- Business context requirement is satisfied
- Only
relevant_fileswere modified -
do_not_touchfiles are untouched
Requirements Validation (against original PRD/requirement)
- Every functional requirement from the PRD is implemented — trace through code to confirm
- Cross-cutting requirements that span multiple tasks are addressed (not lost between task boundaries)
- Edge cases mentioned in the PRD are handled
- Overall system behavior matches what was specified — not just individual tasks passing
- No requirement was silently dropped or partially implemented without documentation
Regression Verification
- Existing tests still pass (not just new tests)
- No unintended side effects on other modules
- Performance hasn't degraded (if applicable)
Output
After all checks pass, write a summary to docs/reports/verification-{branch}.md:
# Verification: {branch-name}
## Build
- Lint: PASS / FAIL
- Typecheck: PASS / FAIL
- Tests: PASS ({N} total) / FAIL
## Code
- Diff reviewed: PASS / FAIL — {note}
- No secrets: PASS / FAIL
## Spec
- Acceptance criteria: PASS / FAIL
- Relevant files only: PASS / FAIL
## Requirements
- All PRD requirements implemented: PASS / FAIL
## Regression
- Existing tests: PASS / FAIL
### Verdict: PASS / FAIL
This file is required by the dev-loop Step 8 gate before proceeding to Step 9.
If Any Check Fails
- Fix the issue
- Re-run the FULL checklist (not just the failed item)
- Only declare done when ALL checks pass
Anti-patterns
- Checking only new tests, not existing ones
- "It compiles" ≠ "it works"
- Skipping the diff review
- Declaring done and fixing "later"