夜雨聆风学习资料网

ARTICLE · 1111785

最怕 AI 一本正经地说“完成了”:这个开源 Skill 专治 Agent 自信式报错

最怕 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

  1. Identify
    :明确什么命令能够证明任务完成。
  2. Run
    :实际执行完整、最新的验证命令。
  3. Read
    :读取完整输出,检查退出码和失败数量。
  4. Verify
    :确认输出是否真的支持当前结论。
  5. 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

相关学习资料