// Claude Code Skills · Technical Guide · 2026

Claude Code Skills
完整技術指南

Skills 是「需要時才載入」的模組化能力包:一個含 SKILL.md 的資料夾,封裝可重複使用的指令、流程、參考資料與可執行腳本。本指南以官方文件為權威骨幹整理。

SKILL.md Progressive Disclosure Frontmatter Invocation Control Scripts · Subagents
Claude CodeClaude APIclaude.ai繁體中文
最後更新 2026-05-29
↗ NotebookLM
① 點 PDF 匯出檔案,或 Copy Link 複製網址 ② 開 NotebookLM →「新增來源 → 網站」貼上,加入你的筆記本
// 目錄
  1. 什麼是 Skill · 五大支柱
  2. 三層漸進式載入
  3. SKILL.md 結構與 Frontmatter
  4. 存放位置與叫用控制
  5. 進階:參數 · 動態上下文 · subagent
  6. Skill vs CLAUDE.md vs Prompt
  7. 內建 bundled skills · 各平台
  8. 最佳實務
  9. 安全性
  10. 我該不該做成 Skill?
  11. 立刻開始:建第一個 Skill
  12. 資料來源 · 資料邊界
// 01

什麼是 Skill 與五大支柱

不同於把所有內容塞進 system prompt,skill 的內容是按需載入:常駐 context 的只有 metadata(name + description,每個約 100 tokens),主體只在被觸發時才載入。

本質
一個含 SKILL.md 的資料夾,外加選用的 scripts/templates/參考文件。
何時建立
同一套多步驟劇本反覆貼進 chat;CLAUDE.md 某段已變成「程序」而非「事實」;想跨 session 重用領域知識;需要可執行腳本綁定能力。
三個平台
Claude Code(檔案系統)、claude.ai(上傳 .zip)、Claude API(/v1/skills 或 pre-built skill_id)。不跨平台同步
核心精神
progressive disclosure(漸進式揭露)+ 第三人稱 description 驅動 auto-discovery。
📄

SKILL.md

必需入口檔:YAML frontmatter + 主體指令。

🪜

三層載入

metadata 常駐、主體觸發才載、資源用到才讀。

⚙️

Frontmatter

name/description/allowed-tools/context… 控制行為。

🎛️

叫用控制

自動觸發 vs /name 手動;可關自動、限工具。

🧩

腳本 · subagent

綁可執行腳本、!`cmd` 動態上下文、context:fork

# 一個 skill 的典型目錄 my-skill/ ├── SKILL.md # 必需 — 主要指令 + frontmatter ├── reference.md # 選用 — 詳細參考 └── scripts/ └── validate.py # 選用 — 可執行腳本(只有輸出進 context)
// 02

三層漸進式載入

🪜

Progressive Disclosure — 資訊按需逐層載入

ARCHITECTURE
層級內容何時載入Token 成本
L1 Metadataname + description啟動時,常駐 system prompt每個 skill ~100 tokens
L2 SKILL.md 主體主要指令、流程、quick-startskill 被觸發時建議 < 5k tokens / < 500 行
L3 Bundled 資源reference.md、scripts/、examples/被引用 / 用到時讀取前不佔 context(無上限)

Claude 如何存取一個 skill

01

啟動

system prompt 含所有 skills 的 name + description。

02

比對 description

使用者需求相關 → Claude 執行 cat skill-dir/SKILL.md 載入主體。

03

按需讀參考

SKILL.md 指到 forms.md → 只有需要時才 cat forms.md

04

執行腳本

python scripts/validate.py——只有輸出進 context,原始碼不進。

🔑

壓縮後行為:SKILL.md 被叫用後以單一訊息進入對話並留在 session(不會每回合重讀)。auto-compaction 後,每個 skill 只重新附加前 5,000 tokens、所有 skill 共享 25,000 tokens 預算,最近叫用者優先;若 skill 失效就用 /name 重新叫用。

// 03

SKILL.md 結構與 Frontmatter

⚙️

SKILL.md — YAML frontmatter + Markdown 主體

STRUCTURE
--- name: pdf-processing description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction. --- # PDF Processing ## Quick start import pdfplumber with pdfplumber.open("file.pdf") as pdf: text = pdf.pages[0].extract_text() ## Advanced - Form filling: see [FORMS.md](FORMS.md)

name / description 驗證規則

name
≤ 64 字元;僅小寫字母、數字、連字號;不可含 XML tag;不可包含 "anthropic" 或 "claude"。Claude Code 中可省略(預設用目錄名)。
description
非空、≤ 1024 字元;無 XML tag;同時寫「做什麼 what」+「何時用 when」,第三人稱。驅動 auto-discovery。

Frontmatter 欄位參考(Claude Code)

欄位用途
description什麼 + 何時用;自動發現的依據(強烈建議)
name清單顯示名;預設目錄名(通常不決定 /command 名)
when_to_use補充觸發語;與 description 合併(上限 1,536 字元)
argument-hintautocomplete 提示,如 [issue-number]
arguments具名位置參數,供 $name 替換
disable-model-invocationtrue → 只能你手動叫用;對 Claude 隱藏 description
user-invocablefalse → 從 / 選單隱藏;只有 Claude 能用
allowed-tools / disallowed-toolsskill 啟用時預先核准/封鎖的工具
model / effort本回合覆寫模型/effort(low…max
context / agentfork → 隔離 subagent 執行;指定 agent 類型
pathsglob;只在處理符合路徑檔案時自動啟用
hooks / shellskill 生命週期 hooks;! 命令的 shell(bash/powershell)
// 04

存放位置與叫用控制

🎛️

Skills 住在哪 · 誰能叫用

SCOPE · INVOCATION

存放位置(Claude Code,優先序:企業 > 個人 > 專案)

範疇路徑適用
個人~/.claude/skills/<name>/SKILL.md你所有專案
專案.claude/skills/<name>/SKILL.md本專案(隨 git 共享)
Plugin<plugin>/skills/<name>/SKILL.md啟用該 plugin 處;用 plugin:skill 命名空間,不衝突
企業由 managed settings 部署全組織

Claude Code 監看 skill 目錄:新增/改/刪即時生效;新增「最上層 skills 目錄」需重啟 session(或用 /reload-skills 重新掃描)。

叫用控制矩陣

Frontmatter你叫用Claude 叫用對 Claude 可見
(預設)name + description
disable-model-invocation: true隱藏
user-invocable: falsename + description
⚠️

有副作用一定關自動:deploy、commit、發訊息、刪資料等 → disable-model-invocation: true,只由你手動 /name 觸發。背景知識型(如遺留系統說明)→ user-invocable: false,讓 Claude 靜默套用。

也可用權限規則控制:Skill(commit)(精確)、Skill(review-pr *)(前綴)允許;單獨 Skill 拒絕全部。

// 05

進階:參數 · 動態上下文 · subagent

🧩

字串替換 · `!` 注入 · context:fork · allowed-tools

ADVANCED

字串替換(載入時展開)

變數展開為
$ARGUMENTS / $ARGUMENTS[N] / $N/skill 後的完整參數字串 / 第 N 個(0-based)
$namearguments frontmatter 宣告的具名參數
${CLAUDE_SESSION_ID} / ${CLAUDE_EFFORT}目前 session ID / effort 字串
${CLAUDE_SKILL_DIR}此 skill 目錄絕對路徑(引用隨附腳本必用)

動態上下文注入:!`cmd`(Claude 看到前先執行)

--- description: Summarize uncommitted changes and flag risks. --- ## Current changes !`git diff HEAD` ## Instructions Summarize the changes above in 2-3 bullets, then list risks.

! 須在行首或空白後;輸出只替換一次(不再掃描);可用 "disableSkillShellExecution": true 全域停用。

context: fork — 隔離 subagent 執行

--- name: pr-review description: Review a PR for bugs, style, missing tests. context: fork agent: Explore # Explore(唯讀) / Plan / general-purpose / 自訂 allowed-tools: Bash(gh *) --- !`gh pr diff`
⚠️

fork 警告:只對「有明確可執行指令」的 skill 有意義。只含準則(如 API 慣例)的 skill 丟給 subagent 會空手而回。allowed-tools 只是預先核准、不是 sandbox——其他工具仍可呼叫,要擋請用 deny 規則。


// 06

Skill vs CLAUDE.md vs Prompt

口訣:事實 → CLAUDE.md;一次性任務 → prompt;可重複的程序 + 上下文 → skill

面向CLAUDE.mdPromptSkill
載入永遠在 context每回合按需(觸發時)
Token 成本持續每回合~100 metadata;主體用到才算
範疇專案/全域事實一次性指令可重用領域能力
可分享per-project不持久Plugins、VCS、managed settings
可執行碼(隨附腳本)
叫用隱含隱含顯式 /name 或自動觸發
// 07

內建 bundled skills 與各平台

Claude Code 內建(prompt-based,/ 叫用)用途
/code-review審 bug、可讀性、慣例(--fix--comment/雲端深審)
/debug工具輔助的系統化除錯
/batch · /loop跨多檔/輸入批次;重複跑到條件達成
/claude-api最新 Claude API 參考 + 8 語言 SDK
/run · /verify · /run-skill-generator啟動/驗證 app 確認變更(需 v2.1.145+)
平台安裝/分享網路 · 套件
Claude Code檔案系統(個人/專案/plugin)完整網路(同本機程式);建議 local 安裝套件
claude.ai上傳 .zip(Settings → Features,需開 code execution)依設定;可 runtime 裝 npm/PyPI
Claude API/v1/skills 或 pre-built skill_id(workspace 共享,需 3 個 beta header)無網路;僅預裝套件

pre-built skill_id:pptx / xlsx / docx / pdf。官方範例庫:github.com/anthropics/skills(可 /plugin marketplace add anthropics/skills 安裝 document-skills / example-skills)。

// 08

最佳實務

寫出有效的 Skill

BEST PRACTICES
  • 簡潔優先:context 是共享資源,挑戰每個 token;別塞 Claude 已知的常識,只加你流程真正需要的(公司規則、資料表欄位、內部工具)。
  • description 品質:同時寫 what + when、第三人稱。「Helps with commits」✗;「Generates commit messages by analysing staged diffs. Use when…」✓。
  • 自由度對應脆弱度:多解法 → 純文字指引;偏好模式 → pseudocode/腳本;脆弱必須精確 → 指定確切命令、禁改。
  • 命名:動名詞、小寫、連字號(processing-pdfs);避免 helper/utils/含 anthropic/claude。
  • 一致術語:一個概念一個詞,never 混用。
  • 避免時效性內容:用「Current / Old patterns」區塊,別寫「2025 年 8 月前…」。
  • 不要過多選項:給 default path,例外才給 escape hatch。
  • 漸進式揭露:SKILL.md < 500 行,細節拆到 一層深的 reference 檔;用 ${CLAUDE_SKILL_DIR} 引腳本。
  • eval 驅動開發:先在無 skill 下跑代表性任務記錄失敗 → 建 3+ 測試場景 → 寫最小 SKILL.md 通過 → Haiku/Sonnet/Opus 都測。
// 09

安全性

⚠️

只用可信來源的 skill。Skill 同時提供「指令 + 可執行碼」,惡意 skill 可引導 Claude 呼叫任何可用工具。把 skill 當軟體套件審查。

風險說明
資料外洩非預期網路呼叫洩漏資料
工具濫用Bash/檔案工具被用於宣稱用途之外
外部依賴汙染抓外部 URL 的 skill 可能被換內容毒化
Prompt injection外部內容夾帶惡意指令

緩解:審查 skill 目錄所有檔案(SKILL.md、scripts、images);專案 .claude/skills/ 在接受 workspace trust 前先看過;對有敏感資料的 production 格外小心。Claude API runtime 無網路;Claude Code 有完整網路(同本機程式)。

// 10

我該不該做成 Skill?

🌿 決策樹

這是專案常駐事實(架構、慣例、測試命令)
放 CLAUDE.md
只用一次的臨時任務
直接 prompt
反覆貼同一套多步驟劇本/清單
做成 Skill
需要綁可執行腳本(確定性處理)
Skill + scripts/
有副作用(deploy/commit/刪資料)
Skill + disable-model-invocation
大型探索不該污染主對話
Skill + context:fork
// 11

立刻開始:建第一個 Skill

以 Claude Code 的 summarize-changes 為例(摘要未提交變更並標風險)。

01

建目錄

mkdir -p ~/.claude/skills/summarize-changes

02

寫 SKILL.md

frontmatter 給 description(what+when),主體用 !`git diff HEAD` 注入即時 diff + 摘要指令。

03

觸發

在 git repo 開 claude,輸入 /summarize-changes,或自然語言「What did I change?」。

04

迭代

/skills 確認可見、/reload-skills 套用變更、/doctor 檢查 description 預算。

PATH A — 初學者
  1. 把重複 prompt(commit 訊息、PR 檢查)變 skill
  2. 只寫 description + 最小主體
  3. 3 個真實任務測試後微調
PATH B — 中階(專案命令)
  1. /fix-issue 123$ARGUMENTS
  2. argument-hint、拆 reference.md
  3. 副作用流程加 disable-model-invocation
PATH C — 進階
  1. 用 scripts 處理確定性工作(${CLAUDE_SKILL_DIR}
  2. ! 注入即時上下文、context:fork 隔離
  3. paths 限定自動啟用;最小化 allowed-tools
// 附錄

資料來源與資料邊界

以官方文件為權威骨幹整理。

官方第一手 / Primary

Agent Skills Overview:platform.claude.com/docs/.../agent-skills/overview
Skill Authoring Best Practices:.../agent-skills/best-practices
Use Skills in Claude Code:code.claude.com/docs/en/skills
Skills in the API:platform.claude.com/docs/.../skills-guide
開源範例庫:github.com/anthropics/skills

未能驗證 / Caveats

• 本指南聚焦 Skills;其他來源提及的部分 Claude Code CLI 指令(如 /simplifyclaude project purge 等)未在官方 Skills 文件佐證,故從略,請以官方 /help 與文件為準。
/run/verify/run-skill-generator 需 Claude Code v2.1.145+。
• 各平台(Claude Code / claude.ai / API)的網路與套件限制不同,跨平台不同步,請勿混用。
關於 · 編輯原則與方法論