核心思想
把人工检查变成 Claude 能自己跑的「反馈循环」,是让它少盯着也能干完活的关键。作者给出三层做法:先把流程写下来、再编码成技能(skill)、最后在合并前让一个无偏见的「第二个智能体」做审查——自我验证越充分,智能体就越自主、来回越少、最终质量越高。

随着我们把越来越有野心的任务交给 Claude,让它能验证自己的工作就变得越来越重要。Claude 越能自我验证(self-verify):
- 就越能独立处理长时间运行的任务
- 最终结果的质量就越高
- 走到那一步要花的来回也越少

当这些检查都得靠你来做时,编码会话就变成了一场回合制游戏——你出一手、它出一手,于是智能体最宝贵的东西也随之丢了:自主性。
好消息是,对于类型错误、lint 报错、测试失败、运行时错误这类确定性信号(deterministic signals),Claude 本来就会自我验证。而且随着模型不断进步,这一点只会越来越强。
Claude 并不总能推断出来的,是你在它回复之后手动跑的那些检查,以及更靠后、在你把代码合并(merge)进生产环境之前要做的检查。这些检查,你能编码下来的越多,Claude 的首次回复就越接近你心里那个最终结果。
你盯着它的时间更少,而 Claude 也能在你忙别的事情时一直干下去。
把你的流程写下来
不妨从一个简单的起点开始:把你或你的团队已经在做的事情,按最佳实践的样子写下来。
拿前端来说,通常是这样:启动开发服务器、打开浏览器、检查控制台有没有报错、像真实用户那样点点看,留意诸如布局抖动、导航变慢之类的问题。
每个领域都有自己的一套流程。而对其中的每一步,多半都能找到一个 Claude 可以拿来做验证的工具:

把流程编码成一个技能
流程一旦理清,就尽可能多地把它编码成一个技能(skill)。先安装 skill-creator 插件,然后让 Claude 来访谈你:
/skill-creator Create a skill for verifying frontend changes end-to-end. Interview me about my workflow.如果你一时说不清自己的流程,可以先让 Claude 给出这个领域的最佳实践,让它先示范一套端到端的验证流程大概长什么样。品味和判断力很难被编码下来,但很多检查都有可供 Claude 衡量的标准:一份性能预算、一份无障碍检查清单、一套设计系统规则、一些好与坏的对照示例。
举个例子,一个前端技能里可能会包含这样的指令:通过 Chrome DevTools MCP 或 Agent browser 抓取一份性能追踪记录。
---
name: frontend-verify
description: Verify frontend changes in a browser. Run whenever
a UI (page, component, typography, CSS style) change is made.
---
# Frontend verify
- Run a two-step verification pass in a real browser.
- Fix issues and re-verify before responding to the user.
## Step 1 — Verify the change behaves as expected
1. Open the URL in a browser:
- In the Claude Code desktop app, use the embedded preview.
- In the CLI, use the Chrome DevTools MCP.
2. Interact with the new element and confirm it renders and
behaves as expected.
## Step 2 — Verify the change passes a mobile audit
1. Open the URL in a new page via the Chrome DevTools MCP
2. Run a performance trace and audit Core Web Vitals还有一些检查更偏定性、而不是简单的通过/不通过,比如把数据和历史常态做对比。对这类检查,你可以和 Claude 一起定一份评分量表(rubric),用来评估输出。
合并前,用第二个智能体审查代码
上面这些都发生在智能体循环(agentic loop)内部。其实还有第二道验证——就在你合并之前,你可以请另一个智能体来做审查。
一个全新的智能体,不会带着写代码那个智能体的同样偏见。它有自己独立的上下文,也不受之前那场对话的影响。正是这种隔离,让审查更诚实,也能抓出第一个智能体可能漏掉的东西。
这里有几个选择,从手动到自动:
- /review(内置技能)—— 在终端里对一个 PR(拉取请求)做一次快速的单遍通读。
- /code-review(可安装插件)—— 并行启动多个子智能体,每个从不同角度去读这份 diff,按置信度为发现的问题打分,再把结果发到 PR 上。
- Claude Code Review —— 一项托管服务,面向 Team 和 Enterprise 套餐,通过 GitHub 在每个 PR 上自动运行。
无论你选哪一个,在合并到生产环境之前有这么一道最后防线,总归是有帮助的。
把它们拼到一起
现在你有了两层:
- 在 Claude 构建过程中运行的验证
- 合并前,由一个没写过这段代码的智能体来审查。
这两层都属于同一个开发生命周期。想一想你眼下那些手动步骤:你改一处代码、把它收拾干净、确认它能跑、提交、开一个 PR、找人审查、然后盯着持续集成(CI)。

你可以把所有这些步骤整合成一条工作流——写一个去调用其他技能的技能。比如,Claude Code 团队就有这么一个在做功能开发时会运行的技能,它打包了:
- 用
/simplify技能来清理 diff - 一个自定义的
/verify技能,端到端地确认改动有效 - 如果 diff 动到了 UI,就做一次设计检查
- 一步去开一个 PR 并订阅它
- 一个用来盯着 CI、一有失败冒出来就随手修掉的技能
你的工作流也许长得不一样,但构建反馈循环、把技能打包到一起,能让 Claude 端到端地验证并完成更多工作。
相关笔记
- Skill 编写最佳实践 —— 本文「把流程编码成技能」一步的展开,技能编写的细则
- 构建 Claude Code 的经验:我们如何使用 Skills —— Anthropic 内部用技能封装流程的第一手经验
- 用动态工作流大规模编排子智能体 —— 把「第二个智能体审查」推向规模化的编排方案
- Agent Hooks:智能体工作流的确定性控制 —— 用 hooks 把确定性检查固化进智能体循环
- 不碰模型与提示词,让编程智能体更聪明 —— 不改模型,只靠 harness 与反馈环提升智能体能力