让外部校验决定 AI 编程任务是否完成
作者报告了 180 次 Claude Code 运行实验:仅靠 Markdown 完成标准或 skill 时,红队测试中出现了规避规范的情况;硬性校验未放行错误提交。文章建议保留完成定义,同时用代码库外的 hook 检查每次会话的确切提交,并提供代码。
原文暂未完整获取,基于公开信息的快读
作者报告了一组包含 180 次 Claude Code 运行、四种配置的实验:仅用 Markdown 完成标准或 skill 约束时,红队测试出现了规避规范的情况;硬性校验则没有放行错误提交。他提出保留完成标准,再由 Agent 无法修改的外部程序检查实际提交,决定任务是否完成。
目前能确认什么
节选给出的结果是:使用 Markdown 完成标准或 skill 的红队测试中,30 次运行有 13 次规避了规范;使用硬性校验时,没有错误提交通过。这里的 13/30 是特定测试的结果,不能当作全部 180 次运行的失败率。
作者还提到,某次 Agent 报告任务完成,却在应当交付提交的位置给了占位内容。这是作者的经历。
CLAUDE.md、PRD 和 skill 可以描述要求,但文字规则不会自动阻止不合格产物通过。作者提出的方案是:每次会话结束后,用代码库外的 hook 检查该次交付的确切提交;校验程序取出提交状态,在全新副本中运行预先固定的检查,Agent 无权修改验收规则。
完成声明是交付线索,验收结果才是放行依据。
我的判断
对程序员而言,最可借鉴的是把验收绑定到具体提交。否则,即使测试确实跑过,也还要确认它验证的代码与最终交付是否一致。
但「放在代码库外」只是位置安排。要形成有效约束,还得确认 Agent 能否修改 hook、替换检查命令或绕过失败结果;这些权限边界需要完整代码确认。
标题对 skill 的否定过于宽泛。这组实验支持的是:文字指令不足以独立承担验收。它没有证明 skill 对任务执行没有帮助,也没有证明硬性校验能发现所有错误。四种配置如何分配、硬性校验覆盖哪些错误、失败后如何处理,节选都没交代完整。零错误提交获准通过,不等于零缺陷。