把大型工作交給 AI 時,常常會在中途停下來,問:「還有 3 個測試失敗,要繼續嗎?」
每次輸入「好,繼續」本身就成了工作。只要暫時離開座位,工作就會停在原地。
Claude Code 的 /goal 透過宣告條件解決這個問題。設定達成條件後,Claude 會持續跨回合工作,直到條件符合。
如果 Claude Code 第 5 篇 的 /rewind 是安全網,/goal 就是完成工作的機制。
運作原理:另有判定者
官方 /goal 文件 的說明點出了核心。每回合結束時,一個小而快速的獨立模型會檢查條件是否符合。若尚未符合,Claude 不會回到使用者,而是開始下一回合。
這不是由執行工作的模型自行宣告「完成了」的架構。第三方判定模型(以 Claude API 為準是 Haiku)會在每回合判定,並留下簡短理由。相較於主要工作,判定所用的 token 少到可以忽略。
條件符合後,目標會自動解除。
基本用法
在 /goal 後方輸入條件,回合就會立即開始。不需要額外的提示詞。
/goal test/auth所有測試通過且 lint 結果乾淨
啟用期間會以 ◎ /goal active 顯示經過時間。
/goal(不帶參數):查看條件、經過時間、回合數、token 用量與最近的判定理由/goal clear:在條件符合前解除目標(stop、cancel等也可使用)
每個工作階段只能有一個目標。設定新目標會取代現有目標。
寫好條件就完成了一半
判定模型不會直接執行命令或讀取檔案,只會根據 Claude 留在對話中的輸出進行判定。
因此,條件必須能由 Claude 的輸出證明。官方文件建議包含三個要素。
- 一個可測量的結束狀態:測試結果、建置結束代碼、空佇列
- 明確指定驗證方式:例如「npm test 以 0 結束」這類確認手段
- 必須遵守的限制:例如「不要修改其他測試檔案」
如果擔心無限執行,可以在條件中加入「或在 20 回合後停止」之類的條款。但這不是系統強制的上限,而是判定模型根據對話中的進度報告判定的條件之一。
權限是另一回事
/goal不會連同權限一起開放。在預設權限模式下,每次未獲允許的工具呼叫仍會要求確認。
若要無人值守地完成工作,標準做法是搭配 auto mode。auto mode 負責移除工具核准提示,/goal則負責移除回合之間的提示。
也整理一下它與類似機制的差異。/loop是按照時間間隔重新執行,/goal則是持續到條件符合為止。
工作階段中斷後,目標仍會保留
如果工作階段結束時目標仍啟用,使用 --resume 或 --continue 重新開始時,條件會完整還原。只有回合數、計時器與 token 基準會重新開始。
想在沒有終端機的情況下執行,也可以使用無頭模式。
claude -p "/goal 本週合併的所有項目 PR都會反映到 CHANGELOG.md"
只要呼叫一次,迴圈就會執行到條件符合為止。預設輸出在完成前不會顯示任何內容,看起來可能像是卡住了。若要查看進度,請加上 --output-format stream-json --verbose。
總結
/goal 是代替你按下「繼續」的命令。宣告條件後,獨立判定模型會在每回合進行判定,工作會持續到完成。
關鍵在於條件設計。明確指定可測量的結束狀態與驗證方式,也要把回合限制條款寫進條件中。
下一篇將介紹把整個工作階段送到背景執行的 /background 與 /tasks。接續完成工作的機制,這次要談的是分工機制。
來源與確認標準
- Claude Code 官方文件 — Keep Claude working toward a goal(Anthropic,2026-08-14 確認)

![[Claude Code #6] /goal:為 AI 設定達成條件的方法 封面圖](/assets/images/posts/328b90d9-62a2-4671-b597-b1fe9b5355e9/claude-code-goal-completion.jpg)