verification-before-completion

在准备声称工作已完成、已修复或通过之前,提交或创建PR之前使用——要求先运行验证命令并确认输出,再做任何成功声明;始终证据先行,断言在后。

提供方:obra/superpowers调用次数:8.9k收藏:181更新:2026/08/28

技能说明obra/superpowers

在准备声称工作已完成、已修复或通过之前,提交或创建PR之前使用——要求先运行验证命令并确认输出,再做任何成功声明;始终证据先行,断言在后。

技能简介

verification-before-completion 是一项用于防止“未经证实就宣称成功”的 Agent 技能。它的核心原则是“证据先行,断言在后”:在声称工作已完成、已修复、测试已通过之前,必须先运行验证命令并确认实际输出。该技能主要解决开发协作中因过早或盲目下结论而导致的错误提交、无效 PR 和虚假状态报告。

使用场景

  • 提交代码或创建 Pull Request 之前,确认所有检查项真实通过。
  • 准备宣称“测试通过”“构建成功”“缺陷已修复”时。
  • 收到 Agent 或他人“已完成”报告后,需要独立验证再继续交接。
  • 按照需求清单逐项核对后,汇报任务阶段进度。
  • 在写代码注释、聊天回复或将任务标记为完成之前,涉及任何满意或成功结论时。

使用方法

本技能以 SKILL.md 文件形式存在,通常放入 Agent 的技能目录即可生效。核心流程如下:

  1. 识别验证命令:明确当前声明应由哪条命令证明。
  2. 完整运行命令:执行完整且全新的验证命令,而不是复述以前的结果。
  3. 读取输出:检查退出码、错误数量和失败项。
  4. 对照声明:输出与实际状态是否一致。若不一致,如实陈述现状并附上证据;若一致,再结合证据下结论。
  5. 只有验证通过后,才能做出成功断言。

关键命令格式示例:

# 运行完整测试并确认结果
npm test

# 运行 linter 并确认 0 错误
npx eslint .

# 构建项目并确认退出码为 0
npm run build

注意事项

  • 禁止使用“应该会通过”“可能没问题”“看起来正确”等模糊表述。
  • 严禁把“上次运行结果”当作本次验证证据。
  • “Linter 通过”不能替代编译或测试;部分检查不能证明整体完成。
  • Agent 回复“成功”后,必须通过 VCS diff 等方式独立确认改动。
  • 疲劳、图省事或“仅此一次”不能成为跳过验证的借口。
  • 换一种措辞表达成功也在规则约束范围内,不能规避“证据先行”原则。