載入中

驗證技能

第 3 課5 分鐘
載入中

驗證技能

隨著專案成長,您會開始注意到同樣的工作一再重複發生。您已經知道技能是自動化重複工作的好方法。在本課程中,我們將探討技能特別適合的一項具體工作:驗證您自己的工作成果。如果有一項技能值得您優先建立,就是這個。

為什麼驗證技能是最值得優先建立的技能

想想您平常是如何檢查 Claude 的工作成果的。您要求它重構某些東西,它完成後,您就得記得要再次檢查。也許您會要求它執行測試。也許您會自己閱讀差異內容。問題在於,檢查這件事取決於您是否記得要求它。只要漏掉一次,不良的程式碼就會悄悄溜過去。

驗證技能消除了這種依賴性。它的運作方式大致如下:您要求 Claude 重構某些東西。當它完成時,這項變更符合該技能的描述,於是技能會自動觸發。從那時起,它會:

  • 執行測試套件。
  • 閱讀差異內容。
  • 檢查是否有測試被削弱只是為了讓它通過。
  • 回報通過或失敗,並附上證據。

整個流程在您不需要開口要求的情況下運行。技能上的描述就是觸發它的關鍵,一旦觸發,它每次都會走過相同的步驟。

請注意這個流程中的最後一項檢查。僅僅執行測試並看到全部通過是不夠的。測試可能被悄悄放寬,以至於無論如何都會通過。因此,該技能會閱讀差異內容,並確認測試沒有被削弱。「完成」不是單靠閱讀差異內容就覺得「程式碼看起來沒問題」。完成是指各項關卡已經被執行並觀察過,且結果被明確陳述出來。

這種模式適用於您團隊重複執行的任何流程。發布檢查清單。遷移流程。PR 前檢查。一個簡單的判斷原則:如果您已經把同一個多步驟指示輸入了兩次,那就是一項技能。

一個技能資料夾可以容納的不只是指示

一項技能不只是單一的 SKILL.md 檔案。圍繞它的資料夾可以承載其他東西,而這正是讓技能對驗證工作特別有用的地方。

  • 在 SKILL.md 旁邊放一個 reference.md,用來存放詳細的材料,然後從 SKILL.md 連結到它。Claude 只有在需要那種深度內容時才會讀取它。您的主檔案就能保持簡短。
  • 也可以把腳本放進資料夾裡。Claude 會執行它們,而不是把它們的內容載入上下文中。這意味著一項技能可以攜帶自己的工具,例如一個能執行所有關卡檢查的 check.sh。

重點在於:讓 SKILL.md 本身保持精簡。把繁重的材料(冗長的說明和可執行的腳本)推到旁邊的檔案裡。精簡的檔案描述要做什麼,旁邊的檔案則承載深度內容與工具。

哪個指示層級該負責哪種規則

到目前為止,您已經有三個地方可以放置指示,而這很容易讓人搞混。這裡有個快速的方法,幫您把它們分清楚。

一直都適用的慣例,例如命名規則或檔案該放在哪裡,屬於您的 CLAUDE.md 檔案。與特定類型任務相關的流程和參考材料,則屬於技能。

還有第三種情況。一項 Claude 絕對不能跳過的規則,應該放在 hook 裡,而不是放在上述兩者之中的任何一個。這是因為 CLAUDE.md 和技能都是 Claude 會遵循的指示,而 hook 則是實際會執行的程式碼。如果跳過這項規則是不可接受的,就不要把它交給「遵循指示」這件事來決定。

總結回顧

一項技能就是一個資料夾,裡面有一個 SKILL.md:一個名稱、一段會觸發它的描述,以及流程本身。只有描述會載入上下文中,直到真正需要某項技能時才會載入其餘內容,因此把您重複執行的每個流程都打包成技能,幾乎沒有什麼成本。

從驗證開始著手。建立這項技能,將它納入您專案的 .claude/skills 中,現在整個團隊都會繼承同樣的做法。每個人的工作成果都會以相同的方式被自動檢查,不需要任何人記得要開口要求。