大多数开发者把 Claude Code 当作需要 babysit 的助手。
输入 prompt。等待。审查。再输入。再等待。每一步都需要你推动它前进。
有完全不同的工作方式。四个命令让 Claude 自主运行直到工作真正完成——无需 babysit。
正常 vs 自主工作流
正常 Claude Code 工作流: 你 prompt → Claude 响应 → 你审查 → 你再 prompt → Claude 响应 → 重复 20 次。
你是循环。你是条件检查。你是它继续的原因。
自主 Claude Code 工作流: 你设置条件 → Claude 工作 → 快速评估器每轮后检查条件 → 如果没完成,Claude 自动开始下一轮 → 完成时你得到摘要。
你设置一次目标。Claude 运行直到达成。
这不是小的工作流调整。这是与工具的根本不同的关系。
/goal:最强大的自主命令
Claude Code 中最强大的自主命令。大多数开发者从未用过。
做什么: 你设置完成条件。Claude 每轮后,一个小型快速模型(默认 Haiku)读取对话 transcript 检查条件是否达成。如果没——Claude 自动开始下一轮。如果达成——你得到"Goal achieved"摘要,Claude 停止。
你再也不需要再次 prompt。Claude 持续工作直到条件为真。
用法:
/goal all tests in test/auth pass and the lint step is clean
Claude 立即开始工作。无需单独 prompt。条件本身成为指令。
运行时显示 ◎ /goal active 指示器。随时检查状态:
/goal
显示:条件、已运行时间、已评估轮数、已花费 token、评估器最近的原因。
提前停止:
/goal clear
(stop、off、cancel、reset、none 都是别名)
目标模板:
/goal [task] until [success condition], verified by [check], while [constraints], or stop after [limit]
真实示例:
/goal migrate auth to the new API until all auth tests pass and unrelated test files are unchanged
/goal refactor the user service until tests pass, or stop after 10 turns
/goal complete the migration, or stop after 30 minutes
写好条件——最重要的技能
评估器只读取对话 transcript。它不能独立运行命令或打开文件。所以条件必须是 Claude 自己的输出能证明的东西。
好条件:
- "All tests in test/auth pass and npm test exits 0"
- "git status is clean and no other test files are modified"
- "Every call site in the module compiles with no errors"
- "Issue backlog queue is empty — verified by running the list command"
坏条件:
- "Do your best on the refactor" — 无可衡量的结束状态
- "Looks clean" or "seems right" — 主观,无法评估
- "Improve the code" — 无法验证完成
- 需要读取评估器看不到的文件的条件
规则: 如果你无法描述 Claude 如何在 transcript 中证明完成——重写条件直到你能。
为长任务添加限制
非平凡目标始终包含轮数或时间条款。没有的话,无法达成的目标会永远运行。
/goal fix checkout tests, or stop after 10 turns
/goal complete the migration, or stop after 30 minutes
Claude 每轮跟踪并报告对限制的进度。评估器判断限制是否已命中。
非交互式运行
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
整个循环在一次调用中运行到完成。Ctrl+C 停止。完美用于 CI pipeline 和定时脚本。
结合 Auto mode 实现完全无人值守
/goal 移除每轮 prompt。Auto mode 移除每工具 prompt。
一起——Claude 完全无人值守工作直到条件达成或限制命中。这是 Claude Code 今天最接近完全自主 coding agent 的东西。
崩溃后恢复
如果 session 以活跃目标结束,--resume 或 --continue 时自动恢复。条件延续。轮数、计时器和 token 花费重置。精确从停止处继续。
/loop:定时循环
Claude 按时间间隔重复运行——不是直到条件达成,而是按你定义的 cadence。
/goal 说"继续直到这为真"——/loop 说"每 N 分钟继续一次直到你停止我"。
最适合:
- 迭代重构,你想让 Claude 做一轮、暂停、让你审查、再做一轮
- 需要重复检查的监控任务
- 增量 burn down backlog——Claude 每轮处理一个 item,你实时看到进度
- 轮询随时间变化的外部状态
与 /goal 的区别:
- /goal 在条件确认为真时停止
- /loop 在你停止它,或 Claude 决定工作完成时停止
/schedule:后台定时
Claude 按固定 cadence 启动——独立于任何 open session。无论你是否打开 Claude Code,它都运行。
/goal 和 /loop 保持当前 session 运行——/schedule 创建独立发生的工作,在后台,按计时器。
可以 schedule 什么:
- Nightly test runs — Claude 凌晨 2 点运行完整测试套件,发摘要到 Slack
- Morning triage — Claude 每天早上审查 open issues,打标签,标记 blockers
- Weekly cleanup — Claude 每周日扫描 dead code、过时注释和 TODO item
- Daily standup prep — Claude 在 9am 前拉取最近 commit、open PR 和 failing tests 到摘要
与 /goal 和 /loop 的关键区别: /goal 和 /loop 需要 open session。关闭 Claude Code,它们停止。
/schedule 完全独立运行。设置一次,按自己的 cadence 运行,永远——或直到你取消。
这是你把 Claude Code 变成基础设施的方式,不只是你记得打开时才用的工具。
Stop hooks:可编程控制
Stop hook 给你程序化、可脚本化的控制,精确决定 Claude 何时被允许完成一轮。
/goal 在底层使用 Stop hook——它是一个 session-scoped 的 prompt-based hook,每轮后触发。但你可以写自己的 Stop hook 实现完全自定义控制。
两种类型:
Script-based Stop hooks
运行实际测试套件。Hit CI endpoint。检查文件存在。查询数据库。任何确定性检查——如果脚本 exit 0,Claude 可以停止。如果不是,Claude 继续。
这是最强大的模式:Claude 工作,你的测试运行,如果失败 Claude 再试。循环中完全没有人类。
Prompt-based Stop hooks
模型评估自然语言条件对抗 transcript——就像 /goal。区别:Stop hooks 住在设置文件中,应用于其 scope 中的每个 session。/goal 是 session-only 且一次性的。
何时用 Stop hook vs /goal:
- 用 /goal 当:你想要仅本次 session 的一次性条件
- 用 Stop hook 当:你想要相同评估逻辑应用于每个 session——或当你需要脚本运行确定性检查,而模型无法从 transcript 单独评估
改变一切的组合
/goal + Auto mode + 运行测试套件的 script-based Stop hook。
Claude 自主工作。每轮后你的测试运行。如果通过——Claude 停止。如果失败——Claude 读取失败输出并重试。你回来时是一个 green build 或清晰解释为什么无法达成。
快速参考
| 需求 | 命令 |
|---|---|
| 让 Claude 持续工作直到测试通过 | /goal all tests pass and npm test exits 0 |
| 让 Claude 迭代重构,我每轮之间审查 | /loop |
| 每晚自动运行测试套件 | /schedule |
| 让脚本决定 Claude 何时停止(非模型) | Stop hook (script-based) |
| 相同条件自动应用于每个 session | Stop hook (prompt-based, in settings) |
| Claude 完全无人值守——无每轮/每工具 prompt | /goal + Auto mode |
主模板:
/goal [task] until [success condition], verified by [check], while [constraints], or stop after [limit]
大多数开发者会读完这个,然后回到手动 prompting 每一步。