Verify Changes — Prove Code Works
"Code that exists" ≠ "Code that works." This skill ensures changes are verified through execution.
Core Principle
❌ Verification by inspection: "I can see the function exists, it should work"
❌ Verification by assumption: "The types check out, so it's correct"
✅ Verification by execution: "I ran it, here's the output, it works because [evidence]"
Verification Protocol
Step 1: Identify What Changed
- Which files were modified?
- What behavior should be different now?
- What was the original bug/requirement?
Step 2: Determine Verification Method
| Change Type | Verification Method |
|---|---|
| Bug fix | Reproduce the original bug scenario → confirm it no longer occurs |
| New feature | Run the feature → confirm expected output |
| Refactor | Run existing tests → confirm nothing broke |
| API change | Call the endpoint → confirm response shape |
| UI change | Render the component → confirm visual output |
| Config change | Load the config → confirm values applied |
| Build/infra | Run build command → confirm success |
Step 3: Execute Verification
# For Node.js projects
npm run build # Does it compile?
npm run test # Do tests pass?
npm run dev # Does it start?
# For specific files
node -e "require('./path/to/module'); console.log('✅ Loads correctly')"
# For API endpoints
curl http://localhost:3000/api/endpoint
# For scripts
python script.py --test
Step 4: Report Evidence
## Verification Report
### What was changed
- [File list and summary]
### How it was verified
- [Exact commands run]
### Evidence
- Build: ✅ Compiled without errors
- Tests: ✅ 42/42 passing
- Runtime: ✅ Server starts, endpoint returns expected JSON
- Edge case: ✅ Empty input handled correctly
### Not yet verified
- [Anything that couldn't be tested automatically]
Verification Checklist by Project Type
Web Application
-
npm run build— compiles without errors -
npm run lint— no linting errors -
npm run test— all tests pass - Dev server starts successfully
- Changed pages render correctly
- No console errors in browser
API / Backend
- Server starts without errors
- Changed endpoints respond correctly
- Error cases return appropriate status codes
- Database queries execute successfully
CLI / Script
- Script runs without errors
- Expected output matches actual output
- Error handling works (bad input test)
- Help/usage text is correct
Anti-Patterns
| Anti-Pattern | Why It's Bad | Fix |
|---|---|---|
| "It should work" | No evidence | Run it and show output |
| Only checking happy path | Bugs hide in edge cases | Test error paths too |
| Verifying only compilation | Compiles ≠ correct | Test runtime behavior |
| Skipping verification for "trivial" changes | Trivial changes cause real bugs | Verify everything |
Integration with Other Skills
| After Using | Verify With |
|---|---|
frontend-design → UI changes |
Render in browser, check console |
backend-specialist → API changes |
curl endpoints, check responses |
database-design → Schema changes |
Run migrations, query data |
testing-patterns → New tests |
Run test suite, check coverage |