ARTICLE · 1111785
最怕 AI 一本正经地说“完成了”:这个开源 Skill 专治 Agent 自信式报错
一、Skill 概述
Verification Before Completion:让 AI 在“宣布完成”之前,必须拿出真实验证证据
verification-before-completion 是开源 Superpowers Agent Skills 中专门负责“完成前验证”的技能。它的核心原则非常直接:没有最新的验证证据,就不能声称任务已经完成、修复成功或测试通过。
它要求 Agent 在提交代码、创建 PR、结束任务或声称“已修复”之前,先明确验证方法、实际执行完整验证命令、读取输出并检查退出状态,最后再根据证据判断实际结果。

二、Skill 核心内容 📌
传统开发中,我们经常会看到:
“应该没问题了。”“代码已经修好了。”“测试应该都通过了。”
但在 Agent Coding 时代,“AI 说完成”并不等于“任务真的完成”。
verification-before-completion 的核心理念就是:
Evidence before assertions|先证据,后结论。
它提出了一条非常严格的 Iron Law:
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
也就是:没有新鲜、真实的验证证据,就不能做完成声明。
具体执行时,Agent 必须经过:
Identify → Run → Read → Verify → Claim
- Identify
:明确什么命令能够证明任务完成。 - Run
:实际执行完整、最新的验证命令。 - Read
:读取完整输出,检查退出码和失败数量。 - Verify
:确认输出是否真的支持当前结论。 - Claim
:只有证据成立后,才能宣布完成。
例如:
修改代码↓运行测试↓读取测试结果↓确认 34/34 通过↓“所有测试通过”
而不是:
修改代码↓“看起来应该没问题”↓宣布完成 ❌
这套规则不仅针对测试,也覆盖 Bug 修复、构建、Lint、需求完成度、Agent 委派、Commit 和 PR 等场景。
三、五句值得学习的英文句子
1.Evidence before assertions, always.
译文:永远先拿证据,再下结论。
2.No completion claims without fresh verification evidence.
译文:没有最新的验证证据,就不能声称任务已经完成。
3.If you haven't run the verification command, you cannot claim it passes.
译文:如果没有实际运行验证命令,就不能声称它已经通过。
4.Confidence is not evidence.
译文:自信并不等于证据。
5.Trust agent reports → Verify independently.
译文:不要直接相信 Agent 的成功报告,要独立验证。
这些句子非常适合程序员记忆,因为它们对应的正是日常开发中经常出现的场景:测试、构建、Bug 修复和 AI Coding Agent。
四、五大关键技术词汇
1. Verification
中文含义: 验证、核验
读音: ver-i-fi-CA-tion
开发场景: 测试、Bug 修复、CI/CD、代码提交、Agent 工作流
一句话理解: 通过实际执行和结果证据,确认代码或任务是否真的达到了预期状态。
2. Evidence
中文含义: 证据
读音: EV-i-dence
开发场景: Test Result、Build Log、Exit Code、CI/CD、Code Review
一句话理解: 能够支持“任务已经完成”这一结论的实际结果,而不是开发者或 Agent 的主观判断。
3. Completion Claim
中文含义: 完成声明
读音: com-PLE-tion claim
开发场景: Agent Coding、任务交付、Commit、Pull Request
一句话理解: AI 或开发者对外声称“任务已完成、Bug 已修复、测试已通过”等结论。
4. Exit Code
中文含义: 退出码
读音: EXIT code
开发场景: Shell、CI/CD、Build、Test、自动化脚本
一句话理解: 程序执行结束后返回的状态值,通常 0 表示成功,非 0 通常表示存在错误或异常。
5. Regression Test
中文含义: 回归测试
读音: ri-GRE-shun test
开发场景: Bug 修复、TDD、CI/CD、自动化测试
一句话理解: 用测试确认修复 Bug 后,原问题确实消失,同时没有引入新的问题。
五、核心技术思想 💡
这个 Skill 最值得程序员注意的,并不是“多跑一次测试”,而是它改变了 AI Coding Agent 的工作逻辑:
从“我认为完成了”转向“我有什么证据证明完成了”。
其中有几个特别重要的实践原则。
Fresh Verification|新鲜验证
不能简单引用之前的测试结果。代码发生变化后,需要重新执行能够证明当前状态的验证命令。
Full Verification|完整验证
不能因为某一个 Lint 通过,就直接认为项目构建成功;也不能因为一个测试通过,就认为整个需求已经完成。不同结论需要对应不同的验证手段。
Independent Verification|独立验证
Agent 自己说“成功”只是一个状态报告,不是证据。应该检查实际代码变更、运行测试、查看构建结果,再决定任务状态。
Requirement Verification|需求验证
“测试全部通过”也不一定意味着需求全部完成。还需要重新检查需求和实现结果,确认有没有遗漏。
Red-Green Verification|回归验证
对于 Bug 修复,理想流程不是“写了一个测试,然后测试通过”,而是验证测试确实能够复现原问题,再验证修复后通过,从而证明这个测试真正覆盖了问题。
这也是 Superpowers 整套开发方法的重要理念之一:
Evidence over claims|用证据代替主观判断。
Superpowers 将这一 Skill 与 TDD、系统化调试、代码审查、执行计划等其他 Skill 结合,形成一套更完整的 Agent 软件开发工作流。
六、开发者阅读建议
个人观点:
AI Coding 真正进入工程环境后,“写出代码”反而只是第一步,验证代码是否真的完成任务才是容易被忽略的环节。这个 Skill 最有价值的地方,是把程序员原本依赖经验形成的“提交前检查”,变成 Agent 必须执行的工程流程。尤其当 Agent 能一次修改几十个文件时,“相信 AI”应该逐渐变成“让 AI 给出证据”。
项目链接:
https://github.com/obra/superpowers/tree/main/skills/verification-before-completion