想让 Claude Code 彻底完成一个任务,试试 :goal
用 Claude Code 干活儿,有时候会遇到它写完跟你说做完了,但是自己验收的时候,发现剩下三个边界情况一个没碰、测试根本没覆盖那个 case、文档忘了更新。

用 Claude Code 干活儿,有时候会遇到它写完跟你说做完了,但是自己验收的时候,发现剩下三个边界情况一个没碰、测试根本没覆盖那个 case、文档忘了更新。
然后只能让他继续验证。
它觉得做完了,但其实没。
昨天 Claude Code 官方发了条推,介绍了一个功能:/goal。
一句话讲完:你设定一个完成条件,它就一直干,直到模型自己判定条件达成才停。
OpenAI 几个月前就在 Codex CLI 里加过 /goal 命令,社区把它当成AI 自主性的标杆,一句话设个目标,Codex 自己跑到完成。已经有人专门写过文章对比两边的实现思路差异,那时候 Anthropic 这边还是空白。
DevToolPicks 那篇 Codex /goal vs Claude Code 对比文章
Claude Code 这边一直没官方版本,但社区已经在用各种土办法对抗"假装做完":
- 在
CLAUDE.md里写"never stop until verified"——有用,但不稳定 - 用
/loop命令做循环——但它是 session-scoped 的,7 天后过期 - 用 Routines 把任务推到云端跑——但本地任务也想要这个能力
- 还有 GitHub 上有个叫 jthack 的开发者,直接用 hook 实现了一个 Codex-style 的
claude-goal第三方版本,star 不少
jthack/claude-goal 仓库首页
所以你能看出,这个能力被用户用脚投票了快半年,Anthropic 这次是正式收编。
它怎么知道"做完了"
它没让 Claude 自己评判。
三件套:
第一件:Stop hook 拦截。 平时 Claude 想结束对话的时候,会触发一个 stop 事件然后退出。
/goal 启动之后,这个事件被 hook 拦住,Claude 试图说"我做完了"的时候,hook 把它拽回来继续工作。默认上限 500 次拦截,明确是为长跑任务设计的。
第二件:Haiku 单独评审。 主模型(Opus 或 Sonnet)说完成不算数。
/goal 会调一个独立的 Haiku 实例做 completion audit,把目标和当前输出给 Haiku 看,让它判断"真的达成了吗"。这步关键,它把"执行"和"验收"解耦了。
第三件:<objective> 标签注入。 每一轮新的对话,目标文本会被包在 <objective> 标签里重新塞进 system prompt,确保 Claude 不会跑着跑着"忘了自己在干嘛"。
Anthropic 自己的官方 What's New 周报里,5 月 4 日到 5 月 8 日那一周主推的还是 --plugin-url、auto mode 硬拒规则、hooks 拿到 effort level 这些功能,完全没有 /goal。
也就是说这是过去这一周(5 月 11–13 日)才加进去新东西。
Anthropic What's New 周报页面,Week 19 没有 /goal
怎么用
最简单的调用:
/goal find and fix the flaky auth tests
带参数的:
/goal --tokens 250K do deep research and build the full prototype
--tokens 是硬上限,到这个数还没完成就强制停,避免它跑飞烧光你的 token 额度。
控制命令一套:
/goal status—— 看当前进度(已用时间、轮数、token)/goal pause—— 暂停,去做别的事/goal resume—— 继续/goal clear—— 直接放弃这个目标/goal complete—— 强制标记为完成(手动覆盖 Haiku 的判断)
跑起来之后,终端上方会有一个状态 overlay,实时显示这三个数:经过时间、轮数、token 消耗。完成之后这个 overlay 自动消失,目标自动清除。
有几个限制提一下:
- 必须在已经通过 trust dialog 的工作区跑,不信任的目录会禁用
- 如果你的 managed policy 里设了
disableAllHooks,这个命令直接不可用 - 不能跨 session 持久化,开了新窗口就没了(这一点跟 Routines 划清边界)
任务可视化
同期还上了一个叫 Agent View 的功能,CLI 里的一个统一仪表盘,能看到你所有 Claude Code session 的实时状态。
把这两个放一起看,逻辑就清楚了:/goal 让任务能跑得久、跑得深;
Agent View 让你能同时看好几个长任务并行跑。
Pasquale 那篇关于 Agent View 的报道
我实测了一下
刚把 Claude Code 升到 v2.1.140,我立刻给自己找了一个真实任务测:把一个项目主站的 admin 后台完整迁移到独立子域名。跨多个文件、多步骤、有明确的差异清单,这是 /goal 的甜点。
跑了一会儿之后,最让我意外的是它怎么去验证自己做完了。
它部署完之后自己拉起了 Playwright,跑到线上页面,登录、搜索、点击交互、调取详情面板、还会自己 sleep 2 到 4 秒等页面加载。
一通跑下来确实把核心流程测了一遍。
中间几次它跳出"任务已全部完成,跳过提醒"想停下,被 Stop hook 拦住继续。最后真的是把交互在线上跑通了才停。
/goal 拦截 Claude 提前结束,逼它自己用 Playwright 端到端验证
这一段给我两个真实观察:
第一,Stop hook 拦截真的有效。 我能看到 Claude 想结束的瞬间被拽回去,这不是它自己脚本逻辑里多走了一步,是它的"我做完了"被一个独立机制否决了。
第二,Haiku 评审没在放水。 如果"代码改完了"就算过,那等于啥也没验证。但实际看下来,Haiku 把验证完成的标准卡在了跑通真实的端到端交互,这才是真的做完。