Ether.fi Card

Claude Code Skills 是什麼?Anthropic 公開內部實戰經驗:9 類 Skills 與 AI 工程工作流設計方法

Claude Code Skills 是什麼?anthropic 公開內部實戰經驗:9 類 Skills 與 Ai 工程工作流設計方法

如果你用過 Claude Code 一段時間,大概知道 Skills(技能)的存在,但可能還不確定:哪種情境值得建一個 Skill?要怎麼寫才有效?又該怎麼讓整個團隊共用?

原文:Lessons from building Claude Code: How we use skills

Anthropic 的工程師 Thariq Shihipar 最近公開了他們在內部大量使用 Skills 的心得。這篇文章根據官方原文翻譯整理,保留所有關鍵技術細節與範例。


Skills 是什麼?

很多人誤以為 Skill 就是一個 Markdown 文件。實際上,Skills 是資料夾。這個資料夾裡可以放腳本、圖片、資料、任何 Agent 需要用到的資源,Agent 可以在執行時自行發現、探索、操作這些內容。

在 Claude Code 裡,Skills 還支援豐富的設定選項,包括動態 Hook 的註冊。Anthropic 內部效果最好的 Skills,通常都善用了這些設定與資料夾結構。

📖 前置知識
本文假設你已經對 Skills 的基礎有一定了解。如果你是初次接觸,建議先看 Anthropic 的 Skills 入門課程,再回來讀這篇。

Skills 的 9 大類別

Anthropic 在整理內部數百個 Skills 後發現,大部分 Skill 都能歸納到九種類型之中。實務上,聚焦單一任務的 Skill 往往有較好的效果;功能範圍過於廣泛的 Skill,則可能讓 Agent 難以選擇合適的執行方式。雖然這份分類不代表所有情境,但可作為建立與規劃 Skill 庫的重要參考框架。

Anthropic Skills 的 9 大類別
Anthropic Skills 的 9 大類別

類別 1:函式庫與 API 參考

整理函式庫、CLI 工具與 SDK 的使用規範。內容通常包含參考程式碼、使用範例、常見錯誤與實務注意事項,協助 Claude 更準確地使用內部工具或第三方套件,降低程式碼產生錯誤的機率。

  • billing-lib:你的內部計費函式庫,包含邊界案例和地雷清單
  • internal-platform-cli:內部 CLI 工具每個子指令的說明與使用時機
  • sandbox-proxy:開發環境的對外閘道設定,哪些 host 可以連、怎麼除錯「connection refused」

類別 2:產品驗證(最高影響力)

測試與驗證程式碼是否真正符合預期。它們通常會結合 Playwright、tmux 等工具,自動執行操作流程、檢查系統狀態與驗證結果。Anthropic 表示,驗證類 Skills 是內部最能提升 Claude 輸出品質的 Skill 類型之一。

  • signup-flow-driver:在 headless 瀏覽器跑完「註冊→信箱驗證→引導流程」,每步驟都有狀態斷言
  • checkout-verifier:用 Stripe 測試卡跑結帳 UI,確認發票真的落到正確狀態
  • tmux-cli-driver:測試需要 TTY 的互動式 CLI

類別 3:資料查詢與分析

串接資料平台與監控系統,協助 Claude 取得所需資訊。Skill 內容可能包含資料存取函式庫、驗證憑證、監控 Dashboard ID,以及常見查詢流程與資料擷取方式,讓 Claude 能更有效地完成分析與調查工作。

類別 4:業務流程自動化

主要用於自動化重複性工作,將原本需要多個步驟的流程整合成單一指令。雖然核心邏輯通常不複雜,但可能會串接其他 Skills 或 MCP 工具共同完成任務。透過保留過往執行紀錄,Claude 也能參考歷史結果,維持工作流程的一致性,並延續先前的執行脈絡。

  • standup-post:彙整 Ticket、GitHub 活動、Slack 紀錄,產生每日站立報告(只顯示有變動的部分)
  • create-ticket:強制欄位格式驗證、建立後自動通知審核者並連結 Slack
  • weekly-recap:合併的 PR、關閉的 Ticket、部署紀錄,輸出格式化週報

類別 5:程式碼架構與範本

能根據團隊規範,自動產生特定功能所需的基礎程式架構與範本,並可搭配其他腳本組成更完整的工作流程。當專案除了程式碼之外,還包含命名規則、文件要求、開發慣例等自然語言規範時,這類 Skills 能協助 Claude 更準確地建立符合標準的程式架構。

類別 6:程式碼品質與審查

維護團隊的程式碼品質與審查標準,可搭配自動化腳本、檢查工具與測試規範使用。許多團隊也會將其整合至 Hooks 或 GitHub Actions,讓程式碼檢查流程自動執行,降低人為疏漏。

類別 7:CI/CD 與部署

處理程式碼管理與部署相關流程,例如取得程式碼、提交變更、執行部署等任務。在執行過程中,也可能搭配其他 Skills 蒐集資料或完成前置檢查。

  • babysit-pr:監控 PR 狀態、重試不穩定的 CI、解決合併衝突、啟用 auto-merge
  • deploy-service:建置→冒煙測試→漸進式流量切換→錯誤率比較→自動回滾
  • cherry-pick-prod:在隔離的 worktree 做 cherry-pick,處理衝突後建 PR 並套用範本

類別 8:Runbook 故障排查

以問題徵兆作為起點,例如 Slack 討論串、監控告警或特定錯誤訊息,接著透過多個工具進行排查與分析,最後整理成結構化調查報告。

類別 9:基礎設施維運

處理基礎設施的日常維護與營運工作。由於部分操作可能影響正式環境或造成資源刪除,因此通常會加入額外的保護機制。透過標準化流程,工程師能更容易依循最佳實務完成關鍵維運任務。

新手閱讀:《 Claude Code 完整教學 2026:從安裝到實戰,不會寫程式也能用


撰寫 Skills 的 9 個關鍵技巧

1. 不要寫廢話

6a1f3a763cec27e2f02643a2 6f109d87

Claude 已經會寫程式、也能讀你的程式碼。一個只是重述 Claude 本來就會做的事的 Skill,只是在徒增 context,沒有帶來任何價值。

如果你的 Skill 主要是傳遞知識,就專注在那些「能把 Claude 從預設思路中拉出來」的資訊。Anthropic 內部的 frontend-design Skill 是個好範例,它是由工程師和客戶反覆迭代出來的,目的是改善 Claude 的設計品味,例如避免它老是用 Inter 字體配紫色漸層。

2. 建立「踩坑紀錄」區塊

Skill 裡含金量最高的部分,就是 Gotchas(踩坑紀錄)。這個區塊要從 Claude 實際遇到的失敗點累積而來,並隨著時間持續更新。

🗂️ 踩坑紀錄範例

  • `subscriptions` 資料表是 append-only。你要的那筆是 version 最高的,不是 created_at 最近的。
  • 這個欄位在 API Gateway 叫 `@request_id`,在 billing service 叫 `trace_id`,但其實是同一個值。
  • Staging 環境即使 Stripe Webhook 沒有真正處理,還是會回傳 200。請查 `payment_events` 看真實狀態。

3. 善用資料夾結構,分層提供資訊

6a1f3a763cec27e2f026439f 0e0f23c0
SKILL.md 扮演索引文件的角色,負責引導 Claude 在不同情境下讀取對應資料。
例如,當發現某個 job 長時間停留在 pending 狀態時,
Claude 可以進一步查閱 stuck-jobs.md,了解排查與處理方式。

Skill 是資料夾,整個檔案系統就是你的 Context 工程工具。告訴 Claude 裡面有哪些檔案,它就會在適當時機自行去讀。

最簡單的做法是指向其他 Markdown 文件,例如把詳細的函式簽名和使用範例放到 references/api.md。如果你的最終產出是 Markdown,可以在 assets/ 放範本讓它複製使用。

🗂️ 架構範例
SKILL.md 指向多個子文件,例如「如果工作卡住,去看 stuck-jobs.md」。這樣的設計讓 Claude 能在需要時才載入相關資訊,避免一開始就塞滿 context。

4. 別把 Claude 綁死

6a1f3a763cec27e2f02643ae 3c108f2c

Claude 通常會盡量遵循你的指令;由於 Skills 會被重複使用,撰寫指令時需要避免過度具體。提供 Claude 完成任務所需的資訊,同時保留足夠彈性,讓它能依照實際情境調整做法。

5. 預先想清楚設定方式

6a1f3a763cec27e2f02643a8 D5e89124
上述 Skill 已設定為在未偵測到 Slack channel 設定時,自動提示使用者提供相關資訊。

有些 Skills 可能需要使用者提供背景資訊才能完成設定。舉例來說,如果你正在製作一個會將 standup 發布到 Slack 的 Skill,可能會希望 Claude 先詢問要發布到哪個 Slack channel。

一個好的做法,是像上面的範例一樣,把這些設定資訊存放在 Skill 目錄中的 config.json 檔案裡。如果尚未完成 config 設定,Agent 就會主動向使用者詢問。

如果你希望 Agent 以結構化、多選題的形式提問,可以指示 Claude 使用 AskUserQuestion 工具。

6. 描述是寫給 AI 看的,不是給人看的

6a1f3a763cec27e2f0264399 A60f7943
在 Skill 的 description 中加入觸發詞,
例如「babysit」,幫助 Claude 判斷何時該使用這個 Skill。

Claude Code 在每次 Session 開始時,會掃描所有可用 Skill 的描述,決定「這個請求是否有適合對應的 Skill 可以使用?」,所以 description 欄位的作用不是 Skill 的摘要,而是用來描述「何時應該觸發這個 Skill」。

這代表 description 欄位並非 Skill 的摘要,而是用來描述「何時應該觸發這個 Skill」。

7. 讓 Claude 有記憶

6a1f3a763cec27e2f02643b1 9159a9b1
這份紀錄檔讓 Claude 能保留過往工作脈絡,例如曾協助審查 Sarah 的 auth PR。

有些 Skills 可以透過儲存資料的方式具備類似記憶(memory)的能力。這些資料可以存放在簡單的 append-only 文字紀錄檔、JSON 檔案中,也可以使用較完整的 SQLite 資料庫。

例如,一個 standup-post Skill 可以維護一份 standups.log,記錄過去產生的所有 standup 內容。當下一次執行時,Claude 可以讀取這些歷史紀錄,判斷與前一天相比有哪些變化。

你也可以透過環境變數 ${CLAUDE_PLUGIN_DATA} 取得一個固定且持久化的資料目錄,用來儲存 Skill 所需的資料。

💡 更多關於 Skill 資料持久化(Persistent Data)的說明,可參考 Claude 官方文件

8. 儲存腳本並提供程式碼工具

你能提供給 Claude 最強大的工具之一,就是程式碼本身。透過提供現成的腳本與函式庫,Claude 可以把更多資源放在任務組合與決策上,例如判斷下一步該做什麼,而非花時間重複撰寫基礎樣板程式碼。

舉例來說,在資料科學(Data Science)相關的 Skill 中,你可以建立一套用於擷取事件資料(event data)的函式庫。當 Claude 需要進行較複雜的資料分析時,就能直接使用這些現成工具,而不需要每次重新撰寫資料存取邏輯。

例如,你可以提供一組類似以下的輔助函式(helper functions):

6a1f3a763cec27e2f02643ab 00319576

Claude 可以根據需求動態產生腳本,將這些功能組合起來,執行更複雜的分析。例如面對「週二發生了什麼事?」這類問題時,Claude 能利用既有的資料擷取與分析工具,自行完成查詢流程並產出結果。

6a1f3a763cec27e2f02643a5 32329bf3

9. 善用情境式 Hooks

Skill 可以包含只有在該 Skill 被呼叫時才會啟用的 hooks,而且這些 hooks 只會在當前 session 期間生效。這類設計適合用於較具限制性或特定用途的規則:平常不需要一直開啟,但在某些情境下能提供很大幫助。

實用的 Hook 範例

  • /careful:透過 PreToolUse matcher 攔截rm -rfDROP TABLE、強制推送、kubectl delete。這類保護機制特別適合在操作正式環境(Production)時使用。如果長期保持啟用,日常開發過程可能會受到過多限制。
  • /freeze:阻止所有不在指定目錄內的 Edit 或 Write 操作。這在除錯階段特別實用,例如:「我現在只想新增一些 log,但總是不小心順手修改了其他無關程式碼。」
    啟用 /freeze 後,可以將變更範圍限制在特定目錄,降低意外修改其他程式碼的機率。

技能分享:從個人到整個團隊

Skills 最大的價值之一,在於能夠在團隊內部共享與複用。目前有兩種常見的分享方式:

方法一:放進 Repo(適合小團隊)

將 Skills 簽入你的 Repo,放在 ./.claude/skills 目錄下。規模不大、Repo 數量不多時,這個方式運作得很好。不過每多一個 Skill,模型的 context 就會增加一點。

方法二:建立 Plugin 市集(適合規模化)

把 Skills 打包成 Plugin,搭建內部的 Plugin 市集,讓團隊成員自行選擇安裝。這樣能讓每個人只載入自己需要的工具,還可以附帶設定引導流程。

如何管理 Skills Marketplace?

哪些 Skills 應該被放入 Marketplace?又該如何提交新的 Skills?

在 Anthropic 內部,並沒有專門負責審核 Skills 的中央團隊,而是透過自然擴散的方式找出最有價值的 Skills。

如果有人開發了一個希望同事試用的 Skill,可以先上傳到 GitHub 的 sandbox 資料夾,並透過 Slack 或其他內部管道分享給團隊。

當這個 Skill 累積一定使用量並獲得團隊採用後(由 Skill 擁有者自行判斷),便可以提交 Pull Request(PR),將其正式加入 Marketplace。

Skills 的組合與衡量成效

技能組合

有些 Skills 之間可能存在依賴關係。例如:

  • File Upload Skill:負責上傳檔案
  • CSV Generation Skill:負責產生 CSV 檔案並完成上傳

目前 Skills 與 Marketplace 尚未內建依賴管理機制。不過,你仍然可以在 Skill 中引用其他 Skill 的名稱,只要相關 Skill 已安裝,Claude 就能自動呼叫並串接使用,這讓多個 Skills 能夠組合成更完整的工作流程。

如何衡量 Skill 的成效?

為了了解 Skills 的實際使用情況,Anthropic 透過 PreToolUse Hook 記錄公司內部的 Skill 使用資料。透過這些紀錄,團隊可以觀察:

  • 哪些 Skills 最常被使用
  • 哪些 Skills 使用率持續成長
  • 哪些 Skills 觸發次數低於預期
  • 哪些 Skills 可能需要調整描述或觸發條件

這些數據有助於團隊持續優化 Marketplace 內容,並評估哪些 Skills 真正提升了工作效率。


常見問題

1. Claude Code 的 Skill 和一般的 Prompt 有什麼差別?

一般 Prompt 只是文字指令,Skill 則更像是一個完整的工具包,還可以設定 Hooks、儲存執行狀態,並在團隊間共享分發。

2. 建立 Claude Code Skill 需要會寫程式嗎?

不需要程式能力。最基礎的 Skill 只需要 Markdown 就能建立,但如果要發揮 Skill 的最大效益,加入腳本和輔助函式會讓 Agent 的工作效率大幅提升。

3. Skill 的 description 應該怎麼寫?

Description 要寫給 AI 看,重點是「什麼情況下該觸發這個 Skill」。要包含觸發關鍵詞,這樣 Claude 才能在對應情境下自動選用它。

4. Anthropic 最推薦先建哪一類 Skill?

Anthropic 特別強調「產品驗證」類的 Skill 對輸出品質的影響最大。他們建議值得讓一位工程師花整整一週,專門把驗證類 Skill 做好。另外,「踩坑紀錄」也是含金量最高的內容,隨時更新這個區塊,長期效益非常顯著。

5. 如何在團隊內共享 Skill?

小團隊可以把 Skill 放進 Repo 的 .claude/skills 目錄,透過版本控制共享。規模較大時,建議建立內部 Plugin 市集,讓團隊成員自行選擇安裝需要的 Skill,避免每個人都載入全部工具增加 context 負擔。


延伸資源

官方資源連結

  • 260105 新首頁banner 02