Overview
Claiming work is complete without verification is not efficiency, it is dishonesty.
Core principle: Always back conclusions with evidence.
Going through the motions on 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.
Gating function
在宣称任何状态或表达满意之前:
1. 确定:什么命令能证明这个结论?
2. 运行:执行完整命令(重新运行,完整执行)
3. 阅读:完整输出,检查退出码,统计失败数
4. 验证:输出是否支持这个结论?
- 如果否:用证据说明实际状态
- 如果是:带证据陈述结论
5. 只有这时:才能做出结论
跳过任何一步 = 说谎,不是验证
Common failure modes
| Conclusion | Required | Not sufficient |
|---|---|---|
| Tests pass | Test command output: 0 failures | Previous run results, "should pass" |
| Linter reports 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 line—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" | Verify independently |
| "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 tests (TDD red-green):
✅ 编写 → 运行(通过)→ 回退修复 → 运行(必须失败)→ 恢复 → 运行(通过)
❌ "我写了回归测试"(没有经过红-绿验证)
Build:
✅ [运行构建] [看到:exit 0] "构建通过"
❌ "Linter 通过了"(linter 不检查编译)
Requirements:
✅ 重读计划 → 创建核对清单 → 逐项验证 → 报告缺口或完成
❌ "测试通过了,阶段完成"
Agent delegation:
✅ 代理报告成功 → 检查 VCS diff → 验证变更 → 报告实际状态
❌ 信任代理报告
Why this matters
From 24 failure records:
- Partner said "I don't believe you"—trust was broken
- An undefined function was delivered—it will crash directly
- Omitted requirements were delivered — incomplete functionality
- Time wasted on false completion → rework → redo
- Violates the principle: "Honesty is a core value. If you lie, you will be replaced."
When to use
Must be used before the following situations:
- Any form of success/completion claim
- Any expression of satisfaction
- Any positive statement about work status
- Submitting, creating a PR, marking a task as complete
- Moving on to the next task
- Delegating to an agent
This rule applies to:
- Exact wording
- Synonyms and rephrasings
- Implying success
- Any communication conveying completion/correctness
Bottom line
There are no shortcuts to verification.
Run the command. Read the output. Only then can you claim the result.
This is non-negotiable.