这个 GitHub 17 万星的验证 Skill 到底能干嘛?实测来了
你被 AI 骗过吗?
这不是危言耸听。
当你让 AI 帮你修一个 bug,它改了几行代码然后说”搞定了!“,你真的验证了吗?当你让 AI 写一个功能,它自信满满地告诉你”全部完成”,结果一跑测试——全挂了。
这不是 AI 的错,是人类和 AI 都有的通病:太想赶紧结束,懒得验证。
今天介绍一个来自 GitHub 177,000+ 星项目 obra/superpowers 的 Skill,专门治这个毛病。
这个 Skill 是什么?
它叫 Verification Before Completion(完成前验证),是 superpowers 框架中的一个原子 Skill。
核心理念只有一句话:
未经验证就声明工作完成是「不诚实」,不是「高效率」。
听起来有点狠?但想想你有多少次被”应该没问题”坑过。
这个 Skill 规定了一条铁律:没有新鲜验证证据,绝不声明完成。 不是”上次跑过”,不是”看起来应该行”,而是现在、立刻、运行命令、看输出、再说话。
原始项目简介
- 项目名称:obra/superpowers
- GitHub 地址:https://github.com/obra/superpowers
- Star 数:177,000+(截至 2026 年 5 月)
- 作者:Jesse Vincent(@obra)
- 描述:一个 Agent 技能框架和软件开发方法论
superpowers 是目前 GitHub 上最受欢迎的 Agent Skill 项目,提供了一套完整的开发流程指导,从头脑风暴到代码审查,从 TDD 到并行 Agent 调度。本次搬运的是其中最实用、最能立即产生效果的一个。
核心功能亮点
1. 闸门函数(Gate Function)
这是一个五步验证流程:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1. 识别 | 什么命令能证明这个声明? | 明确验证手段 |
| 2. 运行 | 执行完整命令 | 必须是新鲜的、完整的 |
| 3. 阅读 | 完整输出,检查退出码 | 不能只看最后一行 |
| 4. 验证 | 输出是否确认了声明? | 用证据说话 |
| 5. 声明 | 只有此时才能做结论 | 附带证据 |
跳过任何一步 = 在说谎,不是在验证。
2. 常见失败模式对照表
Skill 中列出了 7 种最常见的虚假声明:
- “测试通过” → 需要 0 个失败,不是”上次跑过”
- “Lint 干净” → 需要 0 个错误,不是”部分检查”
- “构建成功” → 需要 exit 0,不是”Lint 过了”
- “Bug 修好了” → 需要原始症状通过,不是”代码改了”
- “回归测试有效” → 需要红-绿循环,不是”通过了一次”
- “Agent 完成了” → 需要检查 VCS diff,不是”信 Agent 的”
- “需求满足了” → 需要逐行检查,不是”测试过了”
3. 红旗信号检测
Skill 定义了一组”立即停止”的红旗信号:
- 使用”应该”、“可能”、“看起来”这类模糊词汇
- 验证之前就表达满意(“太好了!”、“完美!”)
- 未验证就准备提交/推送/创建 PR
- 想着”就这一次”
- 疲惫了想赶紧结束工作
4. 自我欺骗预防表
这个是最有趣的部分——它预判了你会怎么给自己找借口:
| 你的借口 | 现实的回应 |
|---|---|
| ”现在应该能工作了” | 去运行验证 |
| ”我有信心” | 信心 ≠ 证据 |
| ”就这一次” | 没有例外 |
| ”Lint 过了” | Lint ≠ 编译器 |
| ”我太累了” | 疲惫不是借口 |
怎么用?
这个 Skill 不需要安装任何工具,它是行为规则,不是代码。
在 AI Agent 中使用
如果你在用的是支持 SKILL.md 的 Agent 框架(如 OpenClaw、Claude Code 等),直接把这个 Skill 文件放到对应目录即可。Agent 会在每次声明完成前自动执行验证。
在日常开发中使用
即使没有 Agent,你也可以把这个原则应用到自己的工作中:
# 别这样:git commit -m "fix: 修好了" # 你根本没跑测试!
# 要这样:npm test # 运行测试npm run lint # 运行 lintnpm run build # 运行构建git commit -m "fix: 修好了(34/34 tests passed, 0 lint errors, build succeeded)"关键模式速查
测试验证:
✅ [运行测试] [看到:34/34 通过] → "所有测试通过"❌ "现在应该能过了"TDD 红-绿循环:
✅ 编写 → 运行(通过)→ 撤销修复 → 运行(必须失败)→ 恢复 → 运行(通过)❌ "我写了回归测试"(没有红-绿验证)Agent 委派验证:
✅ Agent 报告成功 → 检查 diff → 验证变更 → 报告实际状态❌ 直接信 Agent适用场景
✅ 适合谁用?
- AI Agent 用户:让你的 Agent 不再乱说”搞定了”
- 代码审查者:用它来审查 PR,确保提交者真的验证了
- 团队规范:作为团队的开发纪律准则
- 个人习惯:治好自己的”应该没问题”综合症
❌ 不适合谁?
- 追求快速原型:如果你只是想快速验证想法,不关心代码质量
- 一次性脚本:跑完就扔的代码,不需要这么严格
- 已经 100% CI/CD 自动化的团队:CI 会替你验证,但这个 Skill 的价值在 CI 之前的阶段
与其他同类 Skill 的对比
在 superpowers 项目中,还有其他相关 Skill:
| Skill | 核心关注 | 与验证的关系 |
|---|---|---|
| verification-before-completion | 完成前必须验证 | 本篇主角 |
| test-driven-development | TDD 开发流程 | 与红-绿循环配合使用 |
| requesting-code-review | 请求代码审查 | 验证是审查的前提 |
| systematic-debugging | 系统性调试 | 验证是确认修复的关键 |
| executing-plans | 执行计划 | 验证是每步完成的标志 |
这个 Skill 的独特之处在于:它不教你怎么写代码,它教你怎么闭嘴——在验证之前,什么都别说。
个人评价
推荐指数:⭐⭐⭐⭐⭐(5/5)
这是 superpowers 所有 Skill 中我最看好的一个。原因很简单:
- 零成本:不需要安装任何东西,就是一个行为规则
- 即时见效:用一次就能避免一次虚假交付
- 通用性强:不仅适用于 AI Agent,人类开发者也该遵守
- 心理洞察深:它预判了你会怎么自我欺骗,直接堵死所有退路
“诚实是核心价值。如果你说谎,你将被替换。”
这句话虽然是对 AI 说的,但作为人类开发者,我们是不是也该对自己严格一点?
仓库链接:https://github.com/obra/superpowers 完整中文版 Skill:awesome-ai-agent-skills-zh
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!