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-orchestratorneizhan-solvergoogle-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.mdplugin 啟用處

同名時: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-invocationtrue = 禁止 Claude 自動載入,只能你手動 /name
user-invocablefalse = 從 / 選單隱藏(給背景知識用,不讓人直接叫)
allowed-tools這個 skill 觸發的那一輪裡,可以不用問就用的工具。下一則訊息就失效
disallowed-tools這個 skill 生效時移除的工具。例如背景 loop 用的 skill 移掉 AskUserQuestion
model這個 skill 生效時用哪個模型(本輪有效,不寫進設定)
effortlow / medium / high / xhigh / max
contextfork = 在 forked subagent context 裡跑
agentcontext: fork 時用哪種 subagent
background只在 context: fork 時有用。false = 在觸發那一輪等結果
hooks綁在這個 skill 生命週期的 hook
paths限制何時自動啟用的 glob,跟 path-scoped rules 同格式
shellbash(預設)或 powershell

字串代換

代換說明
$ARGUMENTS全部參數。內容裡沒有這個變數時,參數會以 ARGUMENTS: <值> 附在後面
$ARGUMENTS[N] / $N第 N 個參數(0 起算)
$namefrontmatter 的 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 嗎」的次數會明顯下降。


🔗 相關筆記


最後更新:2026-08-04