Stats
Actions
Tags
From workbench
在声明任务完成、修复成功或测试通过前,必须先跑一遍验证命令并确认输出;提交、开 PR 前同样适用。证据先于结论,永远如此。
How this skill is triggered — by the user, by Claude, or both
Slash command
/workbench:verification-before-completionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
不验证就声称工作已完成,是不诚实,不是高效。
不验证就声称工作已完成,是不诚实,不是高效。
核心原则:先有证据,再下结论。
违反字面就等于违反精神。 换个说法绕过这条规则也算违反。
没有刚跑出来的验证证据,就不能宣布完成
如果你在这条消息里没跑过验证命令,你就没资格说它通过了。
在做出任何状态声明或表达满意之前:
1. 锁定:什么命令能证明这个声明?
2. 跑一遍:完整地、新鲜地执行这个命令
3. 读输出:完整看一遍,看 exit code,数失败数
4. 核验:输出是否支持你想说的话?
- 不支持:照实陈述当前状态,附证据
- 支持:再下结论,附证据
5. 然后才允许做声明
漏掉任何一步 = 在撒谎,不是在验证
| 想说的结论 | 必须有 | 不够的 |
|---|---|---|
| 测试通过 | 测试命令输出:0 失败 | 上一次跑的结果、"应该会过" |
| Lint 干净 | Lint 输出:0 错 | 部分文件检查、外推 |
| Build 成功 | Build 命令:exit 0 | Lint 过了、日志看着没事 |
| Bug 修好 | 重跑原始症状的测试:通过 | 改了代码、自以为修好 |
| 回归测试可用 | 红→绿循环已验证 | 测试跑过一次就算 |
| Agent 完成 | VCS diff 显示有改动 | Agent 自己说 "success" |
| 满足需求 | 逐条对照 checklist | 测试通过 |
| 借口 | 真相 |
|---|---|
| "现在应该 work 了" | 那就跑验证 |
| "我有把握" | 把握 ≠ 证据 |
| "就这一次" | 没有例外 |
| "Lint 过了" | Lint ≠ 编译器 |
| "Agent 说 success" | 自己再核一遍 |
| "我累了" | 累不是借口 |
| "部分验证够了" | 部分什么都不能证明 |
| "换个说法这条规则就不适用" | 看精神,不抠字面 |
测试:
✅ [跑测试] [看到:34/34 通过] "全部测试通过"
❌ "现在应该会过" / "看起来对的"
回归测试(TDD 红绿循环):
✅ 写 → 跑(过) → 撤销修复 → 跑(必须失败) → 还原 → 跑(过)
❌ "我已经写了回归测试"(没走过红绿循环)
Build:
✅ [跑 build] [看到:exit 0] "Build 通过"
❌ "Lint 过了"(Lint 不检查编译)
需求对照:
✅ 重新读计划 → 列 checklist → 逐条核对 → 报告差距或完成
❌ "测试过了,阶段完成"
Agent 委托:
✅ Agent 报告成功 → 看 VCS diff → 核对实际改动 → 报告真实状态
❌ 直接信 agent 的报告
来自 24 个失败案例:
任何以下动作之前都要先过这道闸:
这条规则覆盖:
验证没有捷径。
跑命令。读输出。然后才允许下结论。
不可商量。
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub xxih/ai-harness-zh --plugin xxih-kit