每次要 deploy,你都在對話裡貼同一段流程:先跑測試、build、推到 staging、確認沒問題再推 production。貼了十次了。
Skills 讓你把這些流程寫成一份檔案,Claude 自動載入、一句話觸發。不用每次貼指令,不用在 CLAUDE.md 裡堆東西。
這篇你會學到
- Skills 跟 CLAUDE.md 的差別
- 建一個 skill 只要三步
- 誰可以觸發:你、Claude、或兩者
- 動態注入和 subagent 執行
Skills 跟 CLAUDE.md 差在哪
CLAUDE.md 是「永遠在爘的知識」——每次對話都載入。Skills 是「需要時才載入的流程」——平時只有描述在 context 裡,觸發時才載入完整內容。
判斷基準: 每次對話都需要 → CLAUDE.md。特定任務才需要 → skill。
三步建一個 Skill
建目錄:
mkdir -p .claude/skills/deploy
寫 .claude/skills/deploy/SKILL.md:
--- name: deploy description: Deploy the application to production disable-model-invocation: true --- 1. Run the test suite 2. Build the application 3. Push to staging and verify 4. Push to production
disable-model-invocation: true = 只有你打 /deploy 才觸發,Claude 不會自己決定 deploy。
用它:輸入 /deploy 就行。
誰可以觸發
預設情況下你和 Claude 都能觸發。但有些情況你想限制:
只有你能觸發(disable-model-invocation: true): deploy、發訊息、刪除資料這類有副作用的流程。
只有 Claude 能觸發(user-invocable: false): 背景知識,像「我們的 legacy 系統怎麼運作」。
動態注入 + Subagent
Skill 可以在載入前執行 shell 指令。!`gh pr diff` 會在 Claude 看到之前執行,結果填入 prompt。
加 context: fork 讓 skill 在獨立 subagent 裡跑,不影響主對話。適合產生大量輸出的任務。
幾個容易忽略的細節
💡 平時只有描述在 context 裡。 20 個 skill 也不佔 context window,觸發時才載入完整內容。
💡 目錄裡可以放其他檔案。 template、範例、腳本。SKILL.md 只是入口。
💡 即時監測變動。 修改 skill 檔案不用重啟 session。
💡 Commit 到 git 就能共享。 專案 skill 放.claude/skills/,推到 repo 就全團隊可用。
做不到什麼
❌ Skill 不會跨 session 記住執行結果。每次觸發都是重新執行。
❌ Skill 不能取代 hooks。Skill 是給 Claude 的指引(盡量遵守),hooks 是強制執行的程式。
工具設定
- 個人 skill:
~/.claude/skills/<name>/SKILL.md(所有專案可用) - 專案 skill:
.claude/skills/<name>/SKILL.md(只這個專案)
Claude Code Skills 官方文件