07 - Skills 與斜線指令
← 06-CLAUDE-md與記憶系統 | 00-Index | 下一篇 → 08-Subagents與平行工作
Skill 是什麼
寫一個 SKILL.md 檔案放指示,Claude 就把它加進工具箱。 相關時它自己會用,你也可以用 /skill-name 直接叫。
什麼時候該做成 skill:
- 你一直把同一段指示 / 檢查清單 / 多步驟流程貼進對話
- CLAUDE.md 裡某一段已經從「事實」長成了「程序」
🔑 最關鍵的差別:跟 CLAUDE.md 不同,skill 的內容只有在用到時才載入。所以很長的參考資料放在 skill 裡,平常幾乎不花 context。
你的 12 個 skill(
note-orchestrator、neizhan-solver、google-med…)就是這個設計的正確用法。
Claude Code 的 skill 遵循 Agent Skills 開放標準,可跨工具使用;Claude Code 在標準之上加了 invocation control、subagent execution、dynamic context injection 等功能。
📌 自訂指令已經併進 skill 了。
.claude/commands/deploy.md和.claude/skills/deploy/SKILL.md都會產生/deploy,行為一樣。舊的commands/檔案照樣可用,但 skill 多了:一個放輔助檔案的目錄、控制誰能觸發的 frontmatter、以及讓 Claude 自動判斷相關性載入的能力。
Skill 放哪裡
| 層級 | 路徑 | 範圍 |
|---|---|---|
| Personal | ~/.claude/skills/<skill-name>/SKILL.md | 你所有專案 |
| Project | .claude/skills/<skill-name>/SKILL.md | 只有這個專案 |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | plugin 啟用處 |
同名時:enterprise > personal > project。任一層的 skill 都會蓋掉同名的內建 skill。Plugin skill 用 plugin-name:skill-name 命名空間,不會衝突。
Nested skills:工作目錄底下的 .claude/skills/ 也會載入——但不是啟動時,而是 Claude 第一次讀 / 改那個子目錄的檔案時。所以 monorepo 的子套件可以有自己的 skill。
Live reload:Claude Code 會監看 skill 目錄,你新增 / 修改 / 刪除 skill 當下 session 就會生效,不用重開。⚠️ 但如果你建了一個「session 開始時還不存在」的頂層 skills 目錄,要重開 Claude Code 才會監看它。
⚠️ 雲端 / Routine session 讀不到你機器上的
~/.claude/skills/。 你的個人 skill 要在雲端 session 用,得放進 repo 的.claude/skills/或做成 plugin。這解釋了為什麼你的 vault 把 skill pipeline 放在 repo 的.claude/skills/裡——那是對的做法。
SKILL.md 長什麼樣
最小版本:
---
name: summarize-changes
description: 總結目前 git diff 的變更,依風險分級。當使用者要求「總結變更」「這次改了什麼」時使用。
---
# 總結變更
1. 跑 `git diff --stat` 和 `git diff`
2. 依「行為改變 / 純重構 / 文件」三類分組
3. 標出任何會影響使用者的變更
4. 用條列輸出,不超過 15 行存到 ~/.claude/skills/summarize-changes/SKILL.md,然後 /summarize-changes 就能用。
Frontmatter 完整欄位
| 欄位 | 必填 | 說明 |
|---|---|---|
name | 否 | 顯示名稱,預設用目錄名 |
description | 建議 | 這個 skill 做什麼、什麼時候用。Claude 靠這個決定要不要用。把關鍵使用情境寫在最前面——description + when_to_use 合起來在列表中會被截在 1,536 字元 |
when_to_use | 否 | 補充觸發情境,例如觸發詞或範例請求。接在 description 後面,同樣算進 1,536 字元上限 |
argument-hint | 否 | 自動補完時顯示的參數提示,例如 [issue-number] |
arguments | 否 | 具名位置參數,供 $name 代換 |
disable-model-invocation | 否 | true = 禁止 Claude 自動載入,只能你手動 /name 叫 |
user-invocable | 否 | false = 從 / 選單隱藏(給背景知識用,不讓人直接叫) |
allowed-tools | 否 | 這個 skill 觸發的那一輪裡,可以不用問就用的工具。下一則訊息就失效 |
disallowed-tools | 否 | 這個 skill 生效時移除的工具。例如背景 loop 用的 skill 移掉 AskUserQuestion |
model | 否 | 這個 skill 生效時用哪個模型(本輪有效,不寫進設定) |
effort | 否 | low / medium / high / xhigh / max |
context | 否 | 設 fork = 在 forked subagent context 裡跑 |
agent | 否 | context: fork 時用哪種 subagent |
background | 否 | 只在 context: fork 時有用。false = 在觸發那一輪等結果 |
hooks | 否 | 綁在這個 skill 生命週期的 hook |
paths | 否 | 限制何時自動啟用的 glob,跟 path-scoped rules 同格式 |
shell | 否 | bash(預設)或 powershell |
字串代換
| 代換 | 說明 |
|---|---|
$ARGUMENTS | 全部參數。內容裡沒有這個變數時,參數會以 ARGUMENTS: <值> 附在後面 |
$ARGUMENTS[N] / $N | 第 N 個參數(0 起算) |
$name | frontmatter 的 arguments 宣告的具名參數 |
${CLAUDE_SESSION_ID} | 目前 session ID |
兩個對你有用的模式
1. disable-model-invocation: true
你不想它自己亂觸發的 skill 應該加這個。 例如 push-skill——你不希望 Claude 「覺得該推一下」就自己推。
---
name: push-skill
description: 把指定的 skill 推送到 GitHub 的 claude-skills repo
disable-model-invocation: true
---2. paths: 限定自動觸發範圍
---
name: finance-note
description: 撰寫或更新理財個股 / ETF 分析筆記
paths:
- "理財(FIN)/**"
---這樣 Claude 只有在碰理財資料夾時才會自動考慮這個 skill,不會在你寫腎臟科筆記時跳出來。
內建指令表
| 指令 | 用途 |
|---|---|
/add-dir <path> | 加一個可存取的工作目錄 |
/advisor [model|off] | 開關 advisor 工具(用更強的模型輔助關鍵決策) |
/agents | 管理 subagent 設定 |
/autofix-pr [prompt] | 監看 PR,CI 失敗或有人 review 時推修正 |
/background [prompt] | 把 session 轉成背景 agent |
/batch <instruction> | [Skill] 把大規模變更拆成平行單位 |
/branch [name] | 從目前對話分支出去試別的方向 |
/btw [question] | 問個小問題,不加進對話 |
/bug [report] | 回報 bug / 分享對話(別名 /share) |
/cd <path> | 換工作目錄 |
/clear [name] | 清空開新的(別名 /reset、/new) |
/code-review [level] [--fix] [--comment] [target] | [Skill] 審 diff 找正確性 bug |
/compact [instructions] | 壓縮對話釋放 context |
/config [key=value] | 設定介面(別名 /settings) |
/context [all] | 視覺化目前 context 用量 |
/copy [N] | 複製最後一則回覆 |
/dataviz [request] | [Skill] 圖表 / 儀表板設計指引 |
/debug [description] | [Skill] 開 debug log 並排錯 |
/deep-research <question> | [Workflow] 展開多路搜尋並產出附引用的報告 |
/desktop | 接到桌面 app 繼續(別名 /app) |
/diff | 互動式 diff viewer 看未 commit 的變更 |
/doctor | [Skill] setup 檢查與診斷(別名 /checkup) |
/effort [level|auto] | 設思考力度 |
/export [filename] | 匯出對話成純文字 |
/fast [on|off] | 開關 fast mode |
/fewer-permission-prompts | [Skill] 掃 transcript 幫你減少權限詢問 |
/focus | 只顯示最後一個 prompt 和最終回覆 |
/fork [prompt] | 把目前對話複製成一個新的背景 session |
/goal [condition|clear] | 設一個完成條件,讓 Claude 一直做到達成 |
/help | 說明 |
/hooks | 看 hook 設定 |
/init | 產生 CLAUDE.md |
/insights | 分析你的 Claude Code session 產生報告 |
/keybindings | 開快捷鍵設定檔 |
/login /logout | 登入 / 登出 |
/loop [interval] [prompt] | [Skill] 定期重複執行一個 prompt |
/mcp | 管理 MCP server 連線與 OAuth |
/memory | 編輯記憶檔、管理 auto memory |
/model [model] | 切模型並存成預設 |
/permissions | 管理 allow / ask / deny 規則 |
/plan [description] | 進入 plan mode |
/usage | 看用量(/cost 是別名) |
/exit | 離開(別名 /quit) |
打 / 之後可以接著打字母過濾。
內建 skill(會自動判斷相關性)
/batch、/claude-api、/code-review、/dataviz、/debug、/design-sync、/doctor、/fewer-permission-prompts、/loop、/verify、/run、/run-skill-generator
其中 /code-review 和 /verify 需要明確叫它才會跑。
💡
/fewer-permission-prompts值得跑一次:它掃你的 transcript,找出常見的唯讀 bash / MCP 呼叫,然後幫你在.claude/settings.json加一份排好優先序的 allowlist。你每天被問「可以跑git status嗎」的次數會明顯下降。
🔗 相關筆記
- 06-CLAUDE-md與記憶系統 — 上一步(skill vs CLAUDE.md 的取捨)
- 08-Subagents與平行工作 — 下一步
- 09-Hooks自動化 — skill 裡也可以綁 hook
- 13-實戰-套用在兩個repo — 你現有 12 個 skill 的檢視
最後更新:2026-08-04
