[ PROMPT_NODE_25596 ]
verification-before-completion
[ SKILL_DOCUMENTATION ]
# 完成前的验证
## 概述
在没有验证的情况下声称工作已完成是不诚实的,而非高效。
**核心原则:** 始终以证据为先。
**违反此规则的字面意思即违反了此规则的精神。**
## 铁律
没有最新的验证证据,不得声称完成
如果你没有运行此消息中的验证命令,则不能声称它已通过。
## 门控函数
在声称任何状态或表达满意之前:
1. 识别:什么命令可以证明此声明?
2. 运行:执行完整命令(最新的、完整的)
3. 读取:查看完整输出,检查退出代码,统计失败次数
4. 验证:输出是否证实了声明?
- 如果否:陈述实际状态并提供证据
- 如果是:陈述声明并附带证据
5. 仅在此之后:做出声明
跳过任何步骤 = 撒谎,而非验证
## 常见失败情况
| 声明 | 要求 | 不充分的证据 |
|-------|----------|----------------|
| 测试通过 | 测试命令输出:0 失败 | 上次运行,“应该通过” |
| Linter 清洁 | Linter 输出:0 错误 | 部分检查,推断 |
| 构建成功 | 构建命令:退出代码 0 | Linter 通过,日志看起来不错 |
| Bug 已修复 | 测试原始症状:通过 | 代码已更改,假设已修复 |
| 回归测试有效 | 红-绿循环验证 | 测试仅通过一次 |
| 智能体已完成 | VCS diff 显示更改 | 智能体报告“成功” |
| 需求已满足 | 逐行检查清单 | 测试通过 |
## 红色警报 - 停止
- 使用“应该”、“可能”、“似乎”等词汇
- 在验证前表达满意(“太棒了!”、“完美!”、“完成了!”等)
- 在没有验证的情况下准备提交/推送/发起 PR
- 盲目信任智能体的成功报告
- 依赖部分验证
- 心存侥幸(“就这一次”)
- 疲惫并希望尽快结束工作
- **任何在未运行验证的情况下暗示成功的措辞**
## 合理化预防
| 借口 | 现实 |
|--------|---------|
| “现在应该能行了” | 运行验证 |
| “我很有信心” | 信心 ≠ 证据 |
| “就这一次” | 没有例外 |
| “Linter 通过了” | Linter ≠ 编译器 |
| “智能体说成功了” | 独立验证 |
| “我累了” | 疲劳 ≠ 借口 |
| “部分检查就够了” | 部分检查证明不了什么 |
| “换个说法规则就不适用了” | 精神重于字面 |
## 关键模式
**测试:**
✅ [运行测试命令] [查看:34/34 通过] “所有测试通过”
❌ “现在应该通过了” / “看起来正确”
**回归测试 (TDD 红-绿):**
✅ 编写 → 运行(通过) → 重新验证