Claude Code /goal 命令完整教學 — 設定完成條件讓 AI 自己跑到結束
上週五下午三點,我在重構一個 Spring Boot 專案的認證模組。改了 service 層要跑測試,測試過了要確認覆蓋率,覆蓋率不到 80% 要補測試,補完再跑一次——每一輪我都得按 Enter 讓 Claude 繼續。四輪之後我意識到,我的工作就是一直按 Enter。
這週我用 /goal 做同一件事。打了一行字,站起來泡咖啡,回來的時候 8 個測試檔案已經改好,覆蓋率 84%,Claude 自己停了。
你缺的不是 AI,是一個完成條件
想像你請一個實習生幫你整理會議室。
第一種方式:「把椅子推進去⋯⋯好,現在擦白板⋯⋯好,現在把馬克筆收好⋯⋯好,現在⋯⋯」你每講一句他做一步,你不講他就站在那邊等。
第二種方式:「整理到可以開會的狀態就好。」他自己判斷椅子要推、白板要擦、筆要收、投影機要開。你不用站在旁邊,做完他會跟你說。
Claude Code 以前的工作方式就像第一種。每做完一步,它停下來等你確認。/goal 把它切換成第二種——你給一個「完成長什麼樣子」的描述,它自己決定怎麼到達那裡。
技術上的定義:/goal 設定一個 completion condition,Claude 會持續跨多個 turn 工作,每一輪結束後自我評估是否已經滿足條件,還沒就繼續,滿足了就停。
三十秒上手
在 Claude Code 的互動模式裡,先下 /goal,再給指令:
1 | # Step 1:設定完成條件 |
就這樣。沒有額外設定、沒有 config 檔要改。
執行的時候畫面上會出現一個 overlay panel,即時顯示三個數字:
| 欄位 | 說明 |
|---|---|
| Elapsed | 已經跑了多久 |
| Turns | 跑了幾輪 |
| Tokens | 消耗了多少 token |
你可以隨時看到 Claude 現在在幹嘛、花了多少資源。如果覺得不對勁,Ctrl+C 隨時中斷。
等一下,這跟 Auto Mode 有什麼不同?
Auto Mode 解決的是權限問題——Claude 不用每個操作都來問你「可以嗎」。但它每做完一段,還是會停下來等你的下一個指令。
/goal 解決的是持續性問題——Claude 不只自動執行操作,還自動決定「還要不要繼續做」。它不會在中間停下來問你「接下來呢?」,而是自己判斷目標有沒有達到。
兩者搭配用最自然:Auto Mode 讓 Claude 不用問你「可以跑 npm test 嗎?」,/goal 讓它不用問你「測試過了,接下來做什麼?」。
三種使用模式
/goal 不只能在 terminal 互動模式裡用。
1. Interactive 模式(最常用)
就是前面示範的方式。開著 terminal,設 goal,給指令,看它跑。適合你人在電腦前、想做別的事但偶爾瞄一眼的情境。
2. -p 模式(一行搞定)
1 | claude -p "重構 auth 模組" --goal "所有測試通過且覆蓋率達 80%" |
連 terminal 互動都省了。適合寫在 shell script 裡,或是搭配其他 CLI 工具串接。
3. Remote Control 模式(手機設定,桌機執行)
這是我覺得最殺手級的組合。用手機透過 Remote Control 連到桌機的 Claude Code session,設定 goal,然後放著讓它跑。你可以出門吃飯,手機上隨時看 overlay panel 的即時狀態。
1 | 手機設 goal → 桌機的 Claude 開始跑 → 手機看即時進度 → 條件滿足自動停 |
人不在電腦前,AI 在電腦裡安靜地把事情做完。
寫好 Goal 的訣竅
/goal 的效果完全取決於你怎麼描述完成條件。模糊的 goal 會讓 Claude 不知道什麼時候該停。
好的 goal 是可驗證的。
1 | # ✅ 可驗證 |
Claude 需要一個明確的信號來判斷「到了」。測試通過、lint 乾淨、build 成功——這些都是 Claude 可以自己驗證的。「品質變好」不是,因為 Claude 無法客觀判斷什麼是「好」。
你也可以設複合條件:
1 | /goal "所有測試通過 AND 覆蓋率 >= 80% AND eslint 零警告 AND build 成功" |
Claude 會逐一檢查每個子條件,全部滿足才算完成。
跟其他功能的搭配
/goal 本身很簡單,但它跟 Claude Code 生態系裡的其他功能組合起來會產生乘法效果。
/goal + Agent Teams
你有一個大任務,拆成子任務分給多個 agent,每個 agent 有自己的 goal。Leader agent 等所有子 agent 的 goal 都滿足了才算完。
1 | Leader goal: "所有模組的測試通過且整合測試通過" |
/goal + Routines
Routine 負責「什麼時候跑」,/goal 負責「跑到什麼程度」。
1 | Routine: 每天凌晨兩點執行 |
沒有 /goal 的 Routine,Claude 做完就走。有 /goal 的 Routine,Claude 會反覆驗證直到條件滿足。差別在於,dependency 更新常常會連鎖破壞測試——有 goal 的話 Claude 會自動修到好,不會丟一個半成品給你。
執行中的安全機制
你可能會擔心:讓 Claude 自己跑到完,如果它跑歪了怎麼辦?
幾個內建的保護措施:
- Token 上限:如果 token 消耗超過帳號設定的上限,自動停止
- Turn 上限:單次 goal 執行的最大 turn 數有上限,防止無限迴圈
- 手動中斷:
Ctrl+C隨時可以停 - Overlay panel:即時看到 Claude 在做什麼,消耗多少
你設的 goal 是上界,不是承諾。Claude 可能在三輪就完成,也可能跑到 turn 上限還沒完成——後者通常代表你的 goal 太難或太模糊,需要拆解。
順帶一提:同期的兩個新功能
五月這一波更新除了 /goal,還有兩個值得知道的:
Agent View(claude agents)——在 terminal 裡一覽所有 Claude Code session 的狀態。跑了幾個 agent、哪個在 running、哪個被 blocked、哪個已經 done。搭配 /goal 特別有用,因為你可能同時跑好幾個有 goal 的 session,需要一個 dashboard 來掌握全局。
Plugin URL Loading(--plugin-url)——從 URL 直接載入 plugin,不用 git clone 再手動安裝。團隊內分享自訂 plugin 的時候方便很多。
回到那個實習生
文章開頭的那個比喻——請實習生整理會議室。
/goal 本質上就是把你從「每一步都要下指令的人」變成「定義完成標準的人」。這個轉變聽起來微小,但它改變了你跟 AI 的互動模式:你不再是 operator,你是 manager。
而好的 manager 只做兩件事:定義目標,然後驗收結果。
如果你已經熟悉 Claude Code 的基本操作,/goal 是下一個值得學的東西。從簡單的開始——「跑測試跑到全過」——感受一下 Claude 自己跑完整個循環的體驗。然後慢慢嘗試複合條件、搭配 Remote Control、搭配 Agent Teams。
接下來可以學的路線:
- 還沒用過 Remote Control?先設定好,
/goal+ Remote Control 是懶人的終極組合 - 想要排程自動化?Routines 裡面套
/goal是最穩的模式 - 多人協作?Agent Teams +
/goal可以把團隊任務拆成有各自完成條件的子任務
打開你的 terminal,試一個最簡單的 goal:
1 | /goal "eslint 零錯誤" |
然後看它自己跑完。










