Overview
Core principle: Always back conclusions with evidence.
Being perfunctory about this rule is equivalent to violating its spirit.
Iron Rule
没有新鲜的验证证据,不许宣称完成
If you have not run the verification command in this message, you cannot claim the tests pass.
Gate Function
在宣称任何状态或表达满意之前:
1. 确定:什么命令能证明这个结论?
2. 运行:执行完整命令(重新运行,完整执行)
3. 阅读:完整输出,检查退出码,统计失败数
4. 验证:输出是否支持这个结论?
- 如果否:用证据说明实际状态
- 如果是:带证据陈述结论
5. 只有这时:才能做出结论
跳过任何一步 = 说谎,不是验证
Common Failure Modes
| Conclusion | Requires | Not Sufficient |
|---|---|---|
| Tests pass | Test command output: 0 failures | Previous run results, "should pass" |
| Linter has no errors | Linter output: 0 errors | Partial checks, inference |
| Build succeeds | Build command: exit 0 | linter passes, logs look fine |
| Bug is fixed | Test the original symptom: pass | Code changed, assume it is fixed |
| Regression test is effective | Red-green cycle verified | Test passed only once |
| Agent has completed | VCS diff shows changes | Agent reports "success" |
| Requirements are met | Check off the list item by item | Tests pass |
Red Lines—Stop
- Using "should", "probably", "seems"
- Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
- About to commit/push/create a PR without verification
- Trusting an agent's success report
- Relying on partial verification
- Thinking "just this once"
- Tired and wanting to wrap up quickly
- Any wording that implies success but did not actually run verification
Prevent Rationalization
| Excuse | Reality |
|---|---|
| "It should work now" | Run the verification command |
| "I am confident" | Confidence ≠ evidence |
| "Just this once" | No exceptions |
| "The linter passed" | Linter ≠ compiler |
| "The agent said it succeeded" | Independent verification |
| "I am tired" | Fatigue ≠ excuse |
| "Partial checks are enough" | Partial checks prove nothing |
| "If I rephrase it, this rule no longer applies" | Spirit over letter |
Key Patterns
Tests:
✅ [运行测试命令] [看到:34/34 pass] "全部测试通过"
❌ "应该能通过了" / "看起来对了"
Regression testing (TDD red-green):
✅ 编写 → 运行(通过)→ 回退修复 → 运行(必须失败)→ 恢复 → 运行(通过)
❌ "我写了回归测试"(没有经过红-绿验证)
Build:
✅ [运行构建] [看到:exit 0] "构建通过"
❌ "Linter 通过了"(linter 不检查编译)
Requirements:
✅ 重读计划 → 创建核对清单 → 逐项验证 → 报告缺口或完成
❌ "测试通过了,阶段完成"
Agent delegation:
✅ 代理报告成功 → 检查 VCS diff → 验证变更 → 报告实际状态
❌ 信任代理报告
When to Use
Must be used before the following:
- Any form of success/completion claim
- Any expression of satisfaction
- Any positive statement about work status
- Committing, creating a PR, marking a task complete
- Enter the next task
- Delegate to the agent
This rule applies to:
- Exact wording
- Synonyms and alternative phrasings
- Implying success
- Any communication that conveys completion/correctness