主题
用 /goal 让 Claude 持续朝目标工作
用 /goal 设定完成条件,Claude 跨多轮自动工作直到条件满足。
是什么
/goal 命令设定一个完成条件,Claude 会持续朝该条件工作,无需你每一步都提示。每轮结束后,一个小型快速模型会判断条件是否满足;若未满足,Claude 直接开启下一轮而不是把控制权交还给你。条件一旦满足,目标自动清除。
它适合有可验证终态的大块工作,例如把模块迁移到新 API 直到所有调用点编译通过且测试通过、按设计文档实现直到所有验收标准成立、把大文件拆分到每个都小于体积预算、或清空带标签的 issue 队列。
怎么工作
- 每轮 Claude 结束后,把条件和当前对话发给你配置的 small fast model(默认 Haiku),它返回 yes/no 决定和简短理由。
- 返回 no 时让 Claude 继续工作,并把理由作为下一轮的指引;返回 yes 时清除目标并在 transcript 记录一条 achieved 条目。
- 评估器不调用工具,只能判断 Claude 已在对话中呈现的内容,因此条件必须是 Claude 自身输出能证明的。
- /goal 本质是对一个 session 作用域的 prompt-based Stop hook 的封装;评估在你 session 所配置的 provider 上运行。
- 每个 session 同时只能有一个活跃 goal;新设的 goal 会替换已有的。
- 设定 goal 会立即以该条件作为指令开启一轮,无需另发 prompt;活跃期间显示 ◎ /goal active 指示器。
- 最近一次的评估理由会出现在状态视图和 transcript 中。
怎么配置 / 用法
设定目标(立即开始一轮):
text
/goal all tests in test/auth pass and the lint step is clean查看状态(无参数):
text
/goal提前清除目标(stop/off/reset/none/cancel 为别名):
text
/goal clear非交互模式下用 -p 一次跑到完成:
bash
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"什么时候用
- 有可验证终态的大块工作:迁移模块直到所有调用点编译且测试通过
- 按设计文档实现直到所有验收标准成立
- 把大文件拆分到每个都小于体积预算
- 清空带标签的 issue 积压队列直到队列为空
- 希望去掉每轮的人工提示(可与 auto mode 配合去掉每个工具的提示)
限制 / 坑
- 要求 Claude Code v2.1.139 或更高版本。
- 评估器不运行命令、不读文件、不调用工具,只能判断对话中已呈现的内容。
- 条件最长 4,000 字符。
- 仅在你已接受信任对话框的 workspace 中可用;当任意设置层级开启 disableAllHooks,或 managed settings 中设了 allowManagedHooksOnly 时不可用。
- resume(--resume/--continue)会恢复仍活跃的 goal 条件,但 turn 计数、计时器和 token 花费基线都会重置;已达成或已清除的 goal 不恢复。
硬事实速查(12 条)
- 命令为 /goal,需 Claude Code v2.1.139 或更高版本。
- 同一 session 同时只能有一个活跃 goal。
- 设定 goal 立即开启一轮,活跃期间显示 ◎ /goal active 指示器。
- 无参数运行 /goal 查看状态:条件、运行时长、已评估轮数、当前 token 花费、最近一次理由。
- /goal clear 提前清除;别名 stop、off、reset、none、cancel;运行 /clear 开新对话也会清除活跃 goal。
- 评估用 small fast model,默认 Haiku,运行在 session 配置的 provider 上。
- 可在条件中加入轮数或时间子句限制运行时长,如 or stop after 20 turns。
- 条件最长 4,000 字符。
- /goal 支持非交互模式、桌面 app 和 Remote Control;用 -p 单次调用跑到完成,Ctrl+C 可中断。
- /goal 是对 session 作用域 prompt-based Stop hook 的封装。
- 评估 token 计费在 small fast model 上,通常相对主轮花费可忽略。
- 受 disableAllHooks 和 allowManagedHooksOnly 限制,且需 workspace 信任。