verification-before-completion
在准备声称工作已完成、已修复或通过之前,提交或创建PR之前使用——要求先运行验证命令并确认输出,再做任何成功声明;始终证据先行,断言在后。
技能说明obra/superpowers
在准备声称工作已完成、已修复或通过之前,提交或创建PR之前使用——要求先运行验证命令并确认输出,再做任何成功声明;始终证据先行,断言在后。
技能简介
verification-before-completion 是一项用于防止“未经证实就宣称成功”的 Agent 技能。它的核心原则是“证据先行,断言在后”:在声称工作已完成、已修复、测试已通过之前,必须先运行验证命令并确认实际输出。该技能主要解决开发协作中因过早或盲目下结论而导致的错误提交、无效 PR 和虚假状态报告。
使用场景
- 提交代码或创建 Pull Request 之前,确认所有检查项真实通过。
- 准备宣称“测试通过”“构建成功”“缺陷已修复”时。
- 收到 Agent 或他人“已完成”报告后,需要独立验证再继续交接。
- 按照需求清单逐项核对后,汇报任务阶段进度。
- 在写代码注释、聊天回复或将任务标记为完成之前,涉及任何满意或成功结论时。
使用方法
本技能以 SKILL.md 文件形式存在,通常放入 Agent 的技能目录即可生效。核心流程如下:
- 识别验证命令:明确当前声明应由哪条命令证明。
- 完整运行命令:执行完整且全新的验证命令,而不是复述以前的结果。
- 读取输出:检查退出码、错误数量和失败项。
- 对照声明:输出与实际状态是否一致。若不一致,如实陈述现状并附上证据;若一致,再结合证据下结论。
- 只有验证通过后,才能做出成功断言。
关键命令格式示例:
# 运行完整测试并确认结果
npm test
# 运行 linter 并确认 0 错误
npx eslint .
# 构建项目并确认退出码为 0
npm run build
注意事项
- 禁止使用“应该会通过”“可能没问题”“看起来正确”等模糊表述。
- 严禁把“上次运行结果”当作本次验证证据。
- “Linter 通过”不能替代编译或测试;部分检查不能证明整体完成。
- Agent 回复“成功”后,必须通过 VCS diff 等方式独立确认改动。
- 疲劳、图省事或“仅此一次”不能成为跳过验证的借口。
- 换一种措辞表达成功也在规则约束范围内,不能规避“证据先行”原则。