| name | verification-before-completion |
| description | Ensures bug fixes and features are truly working before marking as complete. Verifies fix doesn't break other functionality. Activates after any fix or implementation. |
Verification Before Completion
The verification-before-completion skill ensures that fixes and features are genuinely working before considering them done. It prevents "it's probably fixed" syndrome and catches regressions early.
When to Use
Activate verification-before-completion when:
- You think you've fixed a bug
- Implementation is complete
- User reports "it's still broken"
- Before marking any task as done
- Before merging any branch
The Problem
"Working in my machine" isn't verification:
- ❌ "I ran it once and it didn't crash"
- ❌ "The test passed"
- ❌ "User said it works now"
- ❌ "Looks good to me"
The Verification Process
1. Automated Verification
Run the full test suite:
cargo test
cargo test --test '*_integration'
cargo test feature_name
cargo tarpaulin
Verify no regressions:
cargo test --message-format=short | grep "test result"
2. Manual Verification
Test the specific fix:
./myapp --scenario that_broke_before
Test edge cases:
./myapp --test boundary_1
./myapp --test boundary_2
./myapp --test empty_input
./myapp --test max_value
Test related functionality:
./myapp --test login_flow
./myapp --test data_persistence
./myapp --test error_recovery
3. User-Facing Verification
Simulate real user behavior:
1. Login
2. Create resource
3. Modify it
4. Delete it
5. Logout
1. Login with invalid credentials
2. Try to access without auth
3. Handle network error mid-operation
Verify the fix matches requirements:
## Requirements Check
Original requirement:
"Users with '+' in email must be able to login"
Verification:
✅ Email "user+tag@example.com" can login
✅ Email "user@example.com" still works
✅ Invalid email still rejected
✅ All auth flows work
4. Environment Verification
Test in target environment:
cargo run -- --test all
curl -X POST https://staging.example.com/api/test
Verify dependencies:
curl https://api.example.com/health
psql -c "SELECT 1"
redis-cli ping
Verification Checklist
For Bug Fixes
For Features
Verification Levels
Level 1: Code Verification
Checks:
- Code compiles
- Type checks pass
- Linter passes
Commands:
cargo build
cargo check
cargo clippy
cargo fmt --check
Level 2: Test Verification
Checks:
- All unit tests pass
- All integration tests pass
- Coverage maintained or improved
Commands:
cargo test
cargo test --test '*_integration'
cargo tarpaulin
Level 3: Functional Verification
Checks:
- Feature works as intended
- Bug is actually fixed
- Edge cases handled
Commands:
./myapp --test scenario
cargo test --test smoke_tests
Level 4: System Verification
Checks:
- All system components work together
- No regressions in other features
- Performance acceptable
Commands:
cargo test --test e2e_tests
cargo test --test load_tests
./deploy.sh staging
Level 5: Production Verification
Checks:
- Works in production
- No increase in errors
- User reports positive
Commands:
curl -X GET /metrics
tail -100 logs/error.log | grep -c ERROR
Verification Anti-Patterns
❌ "I tested it once and it worked"
- Test multiple times
- Test edge cases
- Test related functionality
❌ "The unit test passes"
- Run all tests, not just related ones
- Check for regressions
❌ "It works on my machine"
- Test in target environment
- Test in CI/CD pipeline
❌ "User confirmed it works"
- Verify independently
- Check for placebo effect
❌ "Looks fine"
- Verify objectively
- Check metrics/logs
❌ "Time pressure"
- Quick verification is better than none
- Document any shortcuts taken
Documentation Template
## Verification Report: [Bug Fix / Feature]
**Date:** [Date]
**Verifier:** [Who]
### Summary
Brief description of what was verified.
### Verification Steps
#### 1. Automated Tests
[Command and output]
Result: ✅ PASSED / ❌ FAILED
#### 2. Manual Testing
[Steps taken]
Result: ✅ PASSED / ❌ FAILED
#### 3. Edge Cases
[Edge cases tested]
Result: ✅ PASSED / ❌ FAILED
#### 4. Regression Testing
[Existing features tested]
Result: ✅ PASSED / ❌ FAILED
### Issues Found
[Any problems encountered]
### Verification Status
- ✅ **VERIFIED** - Ready for production
- ⚠️ **PARTIAL** - Known limitations documented
- ❌ **FAILED** - Needs more work
### Sign-off
[Approver signature/approval]
Verification Techniques
Smoke Tests
Quick tests of core functionality:
#!/bin/bash
echo "Running smoke tests..."
cargo test --test smoke_tests
if [ $? -eq 0 ]; then
echo "✅ Smoke tests passed"
exit 0
else
echo "❌ Smoke tests failed"
exit 1
fi
Sanity Checks
Quick sanity verifications:
pgrep -f myapp
netstat -tulpn | grep 8080
tail -100 logs/app.log | grep ERROR
Health Checks
System health verification:
curl http://localhost:8080/health
psql -c "SELECT 1" database
curl http://api.external.com/health
Verification Reporting
Report Format
Before claiming "done":
## Verification Report: Fix for Issue #123
**Date:** 2024-01-15
**Tester:** Agent
### Bug Description
Users with "+" in email could not login.
### Fix Applied
Updated email validation regex to allow "+" character.
### Verification Steps
#### 1. Regression Tests
```bash
$ cargo test
Compiling myapp v0.1.0
Finished test [unoptimized]
test result: all 47 tests passed ✅
2. Manual Verification
$ ./myapp login user+tag@example.com
Login successful ✅
3. Edge Case Testing
$ ./myapp login "user+test+multiple@example.com"
Login successful ✅
$ ./myapp login "invalid+email"
Validation error ✅ (expected)
4. Production Metrics
Error rate: 0% (was 0.5%)
Login success rate: 100% (was 99.5%)
User complaints: 0 (was 3)
Verification Status
✅ VERIFIED AND COMPLETE
- All tests pass
- Manual verification successful
- No regressions detected
- Metrics improved
Ready for: Deployment
## Success Criteria
Verification is successful when:
- ✅ All automated tests pass
- ✅ Manual tests succeed
- ✅ Edge cases handled
- ✅ No regressions
- ✅ Metrics improved
- ✅ Documentation complete
- ✅ Someone else can verify your work
## Remember
**Verification is not optional:**
- "It's probably fixed" is not verification
- "Tests pass" is not complete verification
- "User says it works" is not independent verification
**Verification has levels:**
- Code compiles
- Tests pass
- Feature works
- System integrates
- Production succeeds
**When in doubt, verify:**
- Better to find problems now than in production
- Extra verification time saves debugging time later
- Document your verification for others