Iron rule
검증 증거 없이 완료 주장 절대 금지
Gate function
Before any completion/success claim:
- Identify: What command proves this claim?
- Run: Run that command now (previous results are not allowed)
- Read: Check the full output, exit code, and failure count
- Verify: Does the output confirm the claim?
- No → report the actual state with evidence
- Yes → claim completion with evidence
- Only after that can you claim
Required evidence per claim
| Claim | Required evidence | Insufficient evidence |
|---|---|---|
| "Tests pass" | Test command output: 0 failures | Previous run, "it will pass" |
| "Linter clean" | Linter output: 0 errors | Partial check, assumption |
| "Build succeeds" | Build command: exit 0 | Linter passed, logs look fine |
| "Bug fixed" | Test of original symptom: passes | Changed code, assume it is fixed |
| "Requirements met" | Item-by-item checklist | Tests pass |
🚨 Danger words (stop immediately when used)
If these words are about to come out of your mouth, STOP:
- "It will work" / "It seems like it will"
- "Probably" / "Mostly"
- "Good!" / "Perfect!" / "Done!" (before verification)
- "It seems like it did"
- "I checked it manually"
- "The agent said it succeeded"
Delegated work is no exception
Sub-agent reports "success" → Independent verification is required
- Check VCS diff → are the changes actually there?
- Run the tests yourself → do they really pass?
- Do not blindly trust agent reports
Preventing rationalization
| Excuse | Reality |
|---|---|
| "It will work fine now" | Run the verification |
| "I'm sure" | Confidence ≠ evidence |
| "Just this once" | No exceptions |
| "The linter passed" | Linter ≠ compiler ≠ runtime |
| "I'm tired" | Being tired ≠ exemption |
| "Partial confirmation is enough" | Partial confirmation proves nothing |
Why it matters
Completion claims without verification:
- Break trust
- Undefined functions get deployed
- Missing requirements go undiscovered
- False completion → rework → wasted time
Verification is not optional, it is mandatory.