Claude Code /verify 指令教學:內建自動驗證怎麼用(2026)
Claude Code /verify 完整教學 | 內建驗證指令怎麼用、/run-skill-generator 錄製啟動配方、commit 前自動驗證的條件,以及什麼時候還是要自己寫 verify skill。
目錄
系列文章地圖
點節點可以直接跳到那一篇。
/verify是 Claude Code 內建的驗證指令:它會把你的 app 建置、啟動,實際操作剛改完的功能並檢查結果,不是只靠測試或型別檢查。
用 Claude Code 開發,可以把「改完後實際跑一次」也交給它。一般專案直接打 /verify 就能用,啟動流程比較複雜的專案,再用 /run-skill-generator 把建置和啟動方式整理成 skill。
整個概念就三步 => 跑起來、驗證、打包成 skill。打包完之後,下次改完它就會依照同一套流程自己驗證。
上一篇 Claude Code 自動驗證與自主開發 講的是為什麼要讓 agent 自己驗證,以及 Run → Drive → Prove → Unblock 的思路。這篇講官方內建版本怎麼用。上一篇那種自己手寫 verify skill 的做法一樣有效,後面會講什麼時候還需要自己寫。
/verify、/run、/run-skill-generator 差在哪
這三個都是內建 skill,不用另外安裝:
| 指令 | 做什麼 | 什麼時候用 |
|---|---|---|
/run | 啟動並操作 app,讓你看到執行結果 | 只想看改動跑起來的樣子 |
/verify | 建置、啟動 app,確認這次修改是否符合預期 | 改完要確認有沒有壞 |
/run-skill-generator | 把專案的建置與啟動方式記錄成 skill,讓前兩個照著跑 | 專案啟動流程比較複雜 |
/verify 跟 /run 的差別在目的。/run 是把東西跑起來給你看,/verify 是拿這次改動當標的,跑起來之後去檢查它對不對。官方的說法是不會退回去只跑測試或型別檢查。
/verify 怎麼驗證一次修改
一次 /verify 走的流程是這樣:
- 啟動專案:建置、啟動必要的服務
- 操作功能:開頁面、送 API 請求,真的去用剛改的東西
- 檢查結果:比對預期行為和實際結果
- 符合就回報:說明驗證了什麼、看到什麼
- 不符合就修:依錯誤訊息與 log 調整,再重新執行
這個迴圈跟上一篇的自動驗證迴圈是同一件事,差別在 /verify 把「怎麼起 app」這一步內建了。
開始前要有兩樣東西:啟動方式和驗收條件
/verify 能不能驗得準,取決於你給它兩樣東西:
- 啟動方式:怎麼把 app 跑起來。內建版會自己推斷,推斷不準就靠後面講的配方
- 驗收條件:什麼結果算對。這個要你自己講,它猜不到你心裡的標準
驗收條件寫得越具體,它越知道要去查哪裡:
| 模糊的說法 | 具體的驗收條件 |
|---|---|
| 驗證訂單功能 | 新增訂單後,重新整理仍看得到,金額與輸入一致 |
| 確認 API 有沒有壞 | POST 回 201,回傳的訂單 ID 能用 GET 查回同一筆資料 |
| 看一下登入 | 輸入錯誤密碼會顯示錯誤訊息,且不會寫入 session |
API 回傳成功,還要驗證什麼?
以「新增訂單」為例,API 回 200 只代表請求有被處理,不代表資料真的存進去了。所以驗收條件要一路寫到底層:
| 驗證層 | 要檢查什麼 | 為什麼 API 回應不夠 |
|---|---|---|
| API 回應 | 狀態碼、訂單 ID、回傳欄位 | 200 不代表資料已保存 |
| DB 查詢 | 訂單是否存在、金額是否正確 | 要確認實際寫入的結果 |
| Log 紀錄 | 錯誤訊息、關鍵事件與程式走的分支 | 追查執行過程時,需要有對應的紀錄 |
三層一起查才完整。DB 查詢和 log 要怎麼下指令、log 該怎麼寫成 Claude 讀得懂的格式,在上一篇的 Backend 自動驗證三個層次 有完整範例,這裡不重複。
不用設定就能跑:/verify 怎麼知道怎麼啟動
/run 和 /verify 都不需要先設定。它們會依專案類型(CLI、server、TUI、瀏覽器操作型)和 README、package.json、Makefile 的內容,推斷要怎麼建置和啟動。
標準的專案這樣就夠了。推斷容易不準的情況:
- 要先起資料庫
- 需要 env 檔
- 需要圖形介面環境
- 要跑多步驟 build
碰到這幾種,/verify 不一定能自己摸出正確的啟動方式,這時候就輪到下一段的配方。
三種觸發 /verify 的方式
| 方式 | 怎麼發生 |
|---|---|
| 手動 | 你自己打 /verify |
| Claude 自己呼叫 | 工作過程中,Claude 判斷該驗證時自己叫用這個 skill |
| commit 前自動 | 條件滿足時,Claude Code 會要求 Claude 在每次 commit 前先跑 |
第三種有條件,下面「commit 前自動驗證」那段會講。
啟動流程複雜時:用 /run-skill-generator 錄配方
/run-skill-generator 會從乾淨的環境把 app 跑起來,記下跑通的做法:安裝指令、環境變數、啟動腳本,然後存成專案專屬的 skill,放在 .claude/skills/run-<名稱>/。
之後 /run、/verify 還有 repo 裡其他 agent,都照這份配方跑,不用每次重新摸索。官方的建議是每個專案跑一次,之後 build 或啟動方式變了再跑。
/verify 自己也會錄配方
不只 generator 會錄。/verify 在沒有配方的情況下,得自己想辦法建置和操作 app,跑通之後會把有效的做法寫到 .claude/skills/verify/SKILL.md。放在 repo 根目錄,monorepo 的話放在改到的 package 目錄。
放在 repo 根目錄的這份配方,會取代內建的 /verify。這個功能需要 Claude Code v2.1.200 以上。
這份檔案只有在 Claude 被帶偏的時候才會改,例如某個指令失敗、少了一個步驟,所以可以放心 commit,不會每個 session 都冒出新的 diff。v2.1.205 之前不是這樣,當時內建的 skill 會要 Claude 把每次學到的東西都併進去,結果常常 merge conflict。
兩種配方的差別
| 項目 | /run-skill-generator 錄的 | /verify 自己錄的 |
|---|---|---|
| 位置 | .claude/skills/run-<名稱>/ | .claude/skills/verify/SKILL.md |
| 內容 | 怎麼建置、怎麼啟動 | 怎麼啟動,加上怎麼操作並驗證 |
| 誰用 | /run、/verify、其他 agent | /verify,取代內建版 |
| 什麼時候 | 啟動流程複雜,先整理一次 | 沒有配方時,跑一次 /verify 就自動產生 |
圖說:第一次跑錄下配方,之後每次照配方驗證;自己寫的 skill 放在同一個位置
commit 前自動驗證的條件
這是整件事最方便、也最容易漏掉的地方。當 session 開始時已經有一個名為 verify 的 skill,Claude Code 會在 commit 指令裡要求 Claude:每次 commit 前先跑它。只改文件或測試的 commit 不跑。需要 Claude Code v2.1.286 以上。
要滿足三個條件:
| 條件 | 內容 |
|---|---|
| 位置 | skill 在企業、個人、專案或額外目錄層級,或是 .claude/commands/ 底下同名的檔案 |
| 可被呼叫 | Claude 能自己叫用它。如果設了 disable-model-invocation: true,就不會有這個指示 |
| git 指示 | 沒有關掉 includeGitInstructions。關掉它,這個指示會跟內建的 commit、PR 指示一起消失 |
重點在第一條:內建的 /verify 本身不算,plugin 提供的 skill 和 claude.ai 帳號上的 skill 也不算。/verify 錄在 repo 根目錄的配方是專案層級的 skill,所以算。
換句話說,只用內建版、沒有錄過配方的話,commit 前不會自動跑。要讓它自動跑,先手動執行一次 /verify 讓它把配方寫出來,確認內容沒問題,把 .claude/skills/verify/SKILL.md commit 進 repo。之後每次 commit 前就會自動驗證。
名為 simplify 的 skill 也適用同樣的規則。
什麼時候還是要自己寫 verify skill
內建推斷加自動錄配方,已經能處理大部分專案。下面這幾種情況,自己寫會比較準:
- 要指定 Claude 用哪個工具操作(例如用 Chrome MCP 去點頁面)
- app 一打開就要登入,要預先設定 dummy auth 或 bypass
- 要告訴它 log 在哪裡、用什麼指令讀
- 想用
$ARGUMENTS在呼叫時指定要測的場景
做法就是上一篇那樣,自己建 .claude/skills/verify/SKILL.md:
---
name: verify
description: 改完程式後實際跑一次,確認改到的功能行為正確。
---
1. 啟動專案,等 localhost:3000 回 200
2. 用 Chrome MCP 開 localhost:3000,登入走 dummy auth
3. 操作這次改到的功能,再加上 $ARGUMENTS 指定的場景
4. 對照驗收條件檢查結果,需要時讀 log 確認程式走對分支
5. 回報做了哪些操作、看到什麼結果,附上截圖或指令輸出
如果遇到障礙,找到解法並更新這個 skill。
只要檔名和位置對,它就會取代內建版,同時符合 commit 前自動執行的位置條件,兩邊的好處都拿得到。
我的建議是不要從空白開始寫。先跑一次 /verify 讓它錄出第一版,再把登入、工具、log 這些它猜不到的東西手動補進去,比從零寫快,也不會漏掉專案裡你沒想到的啟動細節。
驗證要多嚴格:四種做法怎麼選
官方 best practices 把「怎麼讓 Claude 自己驗證」分成幾個強度。/verify 是其中一種做法,跟其他方式可以疊加:
| 做法 | 設定成本 | 適合 |
|---|---|---|
| 同一個 prompt 裡要求 | 不用設定 | 任何任務現在就能用,直接寫「改完跑一次檢查,失敗就修」 |
/goal 條件 | 一句話 | 整個 session 都要做到某個檢查通過才停,每個回合後有獨立的評估 |
| Stop hook | 要寫腳本 | 要決定性的關卡,檢查沒過就不讓這一輪結束 |
| 驗證用 subagent | 要寫 prompt 或 workflow | 讓一個乾淨 context 的模型來挑戰結果,改的人不要自己打分數 |
官方還有兩個提醒值得照做:
- 要求 Claude 附證據:貼測試輸出、執行的指令和回傳的結果、或結果截圖,不要只說「驗證過了」。看證據比自己重跑一次快,而且你沒盯著的 session 也能事後檢查
- 自己再跑一次
/verify:Claude 自己的檢查通過後,你手動跑一次/verify,對照實際跑起來的 app 再確認一次
Stop hook 的設定方式在上一篇的 Pro tip 有講。有了 commit 前自動執行之後,Stop hook 的角色變成「每一輪結束都擋一次」,兩者的時間點不一樣,不是二選一。
先這樣設定
沒有任何設定的專案,照這個順序做:
- 跑一次
/verify,看它能不能自己把 app 起來 - 起不來或需要資料庫、env 檔,先跑
/run-skill-generator錄啟動配方 - 確認
.claude/skills/verify/SKILL.md的內容,補上登入方式、工具、log 位置,然後 commit - 之後每次 commit 前會自動驗證;重要的改動,驗收條件自己寫具體
FAQ
Claude Code 的 /verify 和 /run 有什麼差別?
/run 負責把 app 啟動起來並操作,讓你看到執行結果。/verify 是確認「這次修改」是否符合預期,重點是驗證,不是單純跑起來。兩個都是內建 skill,不用另外安裝。
使用 /verify 前需要先設定什麼嗎?
一般專案不用。/verify 會從專案類型、README、package.json、Makefile 推斷怎麼建置和啟動。需要資料庫、env 檔、圖形介面或多步驟 build 的專案,推斷容易不準,這時再用 /run-skill-generator 把啟動方式錄成 skill。
為什麼 commit 前沒有自動跑 /verify?
內建的 /verify 本身不會觸發自動執行。要有一個名為 verify 的 skill 放在個人、專案、企業或額外目錄層級,Claude 能呼叫它,而且沒有關掉 includeGitInstructions,才會在 commit 前自動跑。只改文件或測試時不跑。需要 Claude Code v2.1.286 以上。
/verify 可以取代 unit test 嗎?
不行,兩者互補。/verify 是把 app 真的跑起來、操作它、檢查結果,驗證使用者會碰到的行為;unit test 驗證的是單一邏輯。測試通過但畫面壞掉,或反過來,都會發生。
之前自己寫的 verify skill 還要留著嗎?
要。需要指定 Chrome MCP、預先處理登入牆、告訴 Claude log 在哪裡時,自己寫的 skill 比內建推斷準。只要檔案放在 .claude/skills/verify/SKILL.md,就會取代內建版,也符合 commit 前自動執行的位置條件。
參考資料
透過 LINE Pay 支持
透過 Ko-fi 支持
相關文章
AI-native SDLC 是什麼?Anthropic 官方 Playbook 重點整理(2026)
AI-native SDLC 重點整理 | Anthropic 官方 playbook 把開發流程從線性改成迴圈,每個階段 commit 一個 artifact 交給下一階段:intent.md、spec.md、plan.md、evals、PR review。
Claude Code 多 Agent 怎麼管:Handoff + Takeover,只盯一個主 Agent(2026)
Claude Code 多 agent 管理經驗 | agent 一多很容易忘了叫哪個 AI 做什麼。我的做法是先命名、讓 AI 提案並把建議分級、討論完 handoff 成文件,再交給一個主 agent takeover。
Claude Code 自動驗證與自主開發:別再盯著 Agent 看了(2026)
Claude Code 自動驗證完整教學 | Anthropic 官方三大自主開發模式 Verification、Parallelize、Background Loops 實戰拆解,含 Run → Drive → Prove → Unblock 驗證框架與 verify skill 設定範例。
留言討論
Facebook 留言