叫 Claude Code 修一個 bug,它說好了,你一測還是壞的,只好再叫一次「繼續」?這篇教你把「做到什麼程度才算完」寫成 /goal 的完成條件。它每做完一輪,就有另一個模型檢查條件成立沒有;沒成立,它自己接著做,不用你一直按繼續。這次修的是貪食蛇一個真的 bug:蛇把整個棋盤填滿時,畫面卻顯示「遊戲結束」。
快速回答 在 Claude Code 輸入
/goal加上完成條件,它就開始做;每做完一輪,另一個模型讀過對話,判斷條件成立了沒,沒成立就接著做。好的條件有四個部分:一個看得到的結果、怎麼證明(例如node test.js全部通過)、哪些東西不能動、最多做幾輪。/goal不會替你核准權限,想減少中途詢問,先切到 auto 模式;遇到登入過期、額度用完這類錯誤,目標會被清掉。2026-10-21 用 Claude Code 2.1.305 實測,59 秒修好貪食蛇的 bug,5 項測試全過。
做完這篇,你會有
- 修好的貪食蛇:填滿整個棋盤會顯示「你贏了」
- 一個
test.js,執行node test.js就能檢查遊戲有沒有被改壞 - 會寫完成條件、看進度、看它為什麼判斷完成
開始之前要準備:
- 前幾篇的
snake-game資料夾 - Node.js(用來跑測試)。在終端機輸入
node -v,有出現版本號就好;沒有的話,到 nodejs.org 下載安裝,或請 Claude Code 幫你裝
第 4 篇用 /goal 加過暫停功能,這篇學怎麼把條件寫得更好。
好條件的四個部分
test.js,node test.js 全部通過index.html 和 test.js,不改其他檔案檢查條件的模型只讀對話,不會自己跑指令或打開檔案。所以「怎麼證明」要寫成 Claude Code 會跑、結果會出現在對話裡的事,例如跑測試。
步驟 1:確認是 auto 模式
在遊戲資料夾啟動 Claude Code,看狀態列是不是 ⏵⏵ auto mode on。不是的話按 Shift+Tab 切過去。
/goal 不會改你的權限模式。在 manual 模式,它每次建檔、跑測試都會停下來問你,就不是「自己做到完」了。
步驟 2:設好目標
輸入一整句(/goal 後面接條件):
/goal 修好這個 bug:蛇把整個棋盤填滿時,畫面顯示「遊戲結束」,應該顯示「你贏了」。完成條件:新增 test.js(這次唯一可以新增的檔案),測試填滿棋盤會進入勝利狀態、撞牆和撞自己仍然是遊戲結束,而且 node test.js 全部通過;除了 index.html 和 test.js 不改其他檔案;最多 15 輪。
之前的 CLAUDE.md 規定「不要新增檔案」,所以條件裡特別寫明 test.js 是這次唯一的例外。
設好之後可以先去做別的事,等它做完再回來看。
步驟 3:等它做完,自己再確認一次
它找到原因、改好 index.html、寫好 test.js 並跑過。它還把修正拿掉再跑一次,確認測試真的抓得到原本的 bug。
看到 Goal achieved,還是要自己確認。在終端機執行:
node test.js
最後一行是 5 通過,0 失敗 就對了。要在遊戲裡看到「你贏了」得填滿 400 格,太久了;實測時在瀏覽器直接把蛇擺到只差一格,讓它吃掉最後一顆食物:
想自己看到這個畫面,可以請 Claude Code:「給我一段把蛇擺到只差一格的程式,告訴我要貼在瀏覽器開發者工具的哪裡。」實測時它的回覆最後就附了這段程式。
步驟 4:看進度和判斷理由
接著設一個比較大的目標,一次修三個鍵盤問題:
/goal 修好鍵盤的三個問題:按住空白鍵或 P 會一直重複觸發;按 Ctrl+P 想列印時遊戲卻暫停;在選單或暫停畫面按方向鍵,整個頁面會捲動。完成條件:每個問題都在 test.js 加一個測試,node test.js 全部通過;只改 index.html 和 test.js;最多 15 輪。
做的時候或做完以後,輸入 /goal(後面不加字)看狀態:
想知道它憑什麼說完成了,按 Ctrl+O 打開詳細紀錄,Goal achieved 下面有一段 Reason:
再按一次 Ctrl+O 回到平常的畫面。
換你做
幫貪食蛇或你的網站設一個自己的目標。寫完先對照四個部分:
- 結果看得到嗎?「變好玩」看不到,「吃到金色食物加 3 分」看得到
- 有寫怎麼證明嗎?有測試就寫「
node test.js全部通過」 - 有寫哪些不能動嗎?
- 有寫最多幾輪嗎?
常見卡關
- 它一直停下來問我能不能做:現在是 manual 模式。按
Shift+Tab切到 auto 模式,再設一次目標。 - 一直做不完:條件太模糊,或做不到。輸入
/goal clear取消,改成看得到的結果再設一次。 - 條件成立了它還在做:檢查的模型只讀對話。條件裡要寫它該跑什麼來證明,例如「
node test.js全部通過」,它跑完,結果才會出現在對話裡。 node: command not found:電腦沒有 Node.js,先安裝;或把證明方式改成你有的工具。- 出現
Goal cleared after an unrecoverable error:遇到要你處理的錯誤,例如登入過期、額度用完。處理好之後再輸入一次/goal和條件。
你做到了
- 寫出有結果、證明、限制、輪數上限的完成條件
- 用
/goal讓它修好 bug、寫好測試,測試全過才停 - 用
/goal看狀態,用Ctrl+O看它為什麼判斷完成
下一篇讓它每次改完 index.html,自動跑一次這個 test.js。
常見問題
狀態裡的「1 turn」是什麼意思?
表示做了一輪:做完第一輪,檢查的模型就判斷條件成立了。如果第一輪結束時條件還沒成立,它會自己開始下一輪,這個數字就會變大。中途會不會停下來問你權限,看的是權限模式,和輪數無關。
一次可以設好幾個目標嗎?
一個對話只有一個目標。設新的會取代舊的;用 /clear 開新對話也會清掉目標。
關掉 Claude Code,目標還在嗎?
還沒完成的目標,用 claude --continue 或 claude --resume 回到那個對話時會恢復,計時和輪數從頭算。已經完成或取消的不會恢復。
檢查條件要另外花錢嗎?
會用到一些 tokens,跟主要工作一樣算在你的用量裡。檢查用的是一個比較小、比較快的模型,官方說通常比主要工作少很多。
下一步
- Claude Code 2026 更新懶人包:新手先學這 5 個:第一次用
/goal的例子在這篇。 - Claude Code 權限設定懶人包:該自動的自動、該問的一定問:想在 manual 模式也讓它跑測試不用問,用 allow 規則。
參考資料
- Anthropic, Keep Claude working toward a goal(Claude Code 文件,
/goal的設定、狀態、/goal clear、評估方式、權限模式、恢復對話、錯誤處理、費用) https://code.claude.com/docs/en/goal - Anthropic, Choose a permission mode(Claude Code 文件,auto 與 manual 模式) https://code.claude.com/docs/en/permission-modes
留言0
登入後就能留言。
登入