什麼是 Claude Code Skills?#
Claude Code Skills 是 Anthropic 於 2025 年 10 月推出的模組化能力擴展功能。它允許你將專業知識、工作流程和腳本打包成可重複使用的「技能包」,讓 Claude 能夠根據上下文自動識別並啟用這些能力。
核心特點#
- 組合性(Composable):多個 Skills 可以自動協同工作
- 可攜性(Portable):同一格式適用於 Claude.ai、Claude Code 和 API
- 高效性(Efficient):採用漸進式載入,最小化 Token 消耗
- 強大性(Powerful):可包含可執行程式碼,實現確定性任務執行
Skills vs Slash Commands vs MCP#
| 比較項目 |
Skills |
Slash Commands |
MCP Tools |
| 觸發方式 |
模型自動識別 |
使用者手動輸入 /command |
使用者或模型觸發 |
| 複雜度 |
支援多檔案結構 |
單一 Markdown 檔案 |
需要獨立服務程序 |
| 發現機制 |
根據上下文自動啟用 |
需要明確調用 |
啟動時載入 |
| Token 效率 |
初始僅數十個 Token |
調用時載入 |
通常 10,000+ Token |
Skills 提供了一種比 MCP 更簡單的替代方案——透過 CLI 工具和 Markdown 文件,取代複雜的協議規範。
Skills 目錄結構#
存放位置#
Skills 可以存放在三個位置:
# 個人 Skills(跨專案通用)
~/.claude/skills/skill-name/SKILL.md
# 專案 Skills(團隊共享,可版本控制)
.claude/skills/skill-name/SKILL.md
# 插件 Skills(隨插件安裝)
<plugin-root>/skills/skill-name/SKILL.md
完整目錄結構#
skill-name/
├── SKILL.md # 必需 - 入口檔案
├── reference.md # 可選 - 詳細文件
├── examples.md # 可選 - 使用範例
├── scripts/ # 可選 - 可執行腳本
│ ├── helper.py
│ └── validator.py
├── templates/ # 可選 - 文件模板
│ └── report.md
└── data/ # 可選 - 參考資料
└── config.json
SKILL.md 檔案格式#
SKILL.md 是 Skill 的核心入口檔案,由 YAML frontmatter 和 Markdown 內容組成:
---
name: skill-name-here
description: 這個 Skill 的功能描述,以及何時應該使用它。包含特定的觸發關鍵字。
allowed-tools: Read, Grep, Glob # 可選 - 限制可用工具
license: MIT # 可選 - 授權資訊
metadata: # 可選 - 自定義屬性
author: your-name
version: 1.0.0
---
# Skill 標題
## 概述
簡要說明這個 Skill 的功能。
## 前置條件
- 必要的相依套件
- 系統需求
## 使用說明
1. 工作流程第一步
2. 工作流程第二步
3. 工作流程第三步
## 範例
### 範例 1:基本用法
[詳細範例]
## 錯誤處理
- 常見錯誤的處理方式
- 備援程序
## 限制
- 已知的限制條件
- 超出範圍的請求
必填欄位#
| 欄位 |
要求 |
最大長度 |
name |
只能使用小寫字母、數字和連字號,必須與目錄名稱相符 |
64 字元 |
description |
說明功能和使用時機,這對自動發現至關重要 |
1024 字元 |
選填欄位#
| 欄位 |
用途 |
allowed-tools |
逗號分隔的工具清單,限制 Claude 只能使用指定工具 |
license |
授權資訊或授權檔案的參考 |
metadata |
自定義的鍵值對屬性 |
如何創建 Skills#
步驟一:定義問題#
識別一個具體、可重複且有可衡量結果的任務。好的候選任務:
- 已經做過至少 5 次,未來還會重複 10 次以上的任務
- 需要特定領域知識的工作流程
- 可從確定性程式碼執行中受益的流程
步驟二:創建目錄結構#
# 個人 Skills
mkdir -p ~/.claude/skills/my-skill-name
# 專案 Skills(推薦用於團隊共享)
mkdir -p .claude/skills/my-skill-name
步驟三:命名規範#
- 使用小寫字母和連字號:
pdf-editor、brand-guidelines、code-reviewer
- 保持名稱簡短、清晰且具描述性
- 避免使用
utils 或 helper 等通用術語
步驟四:撰寫描述#
描述是決定 Claude 何時啟用 Skill 的關鍵:
# 不好的描述(避免)
description: 處理 PDF
# 好的描述(推薦)
description: 從 PDF 檔案擷取文字和表格、填寫表單、合併文件。當處理 PDF 檔案或使用者提到 PDF、表單或文件擷取時使用。
描述的最佳實踐:
- 使用第三人稱視角
- 包含觸發關鍵字
- 結合「做什麼」和「何時使用」
- 指定檔案類型或使用者可能提到的技術術語
步驟五:撰寫主要說明#
使用清晰的層級結構:
- 概述部分
- 前置條件
- 逐步執行說明
- 具體範例
- 錯誤處理指南
- 限制說明
實際範例#
範例一:Git Commit 訊息生成器#
這是一個最小化的單檔案 Skill:
檔案:.claude/skills/commit-message-generator/SKILL.md
---
name: commit-message-generator
description: 從暫存的變更生成清晰、符合規範的 commit 訊息。當撰寫 git commits、檢視 diffs 或準備提交程式碼時使用。
---
# Commit 訊息生成器
## 使用說明
1. 執行 `git diff --staged` 查看待提交的變更
2. 分析變更類型(feature、fix、refactor 等)
3. 按照 Conventional Commits 格式生成 commit 訊息:
- Type:feat、fix、refactor、docs、test、chore
- Scope:可選,受影響的組件
- Subject:祈使語氣,最多 50 字元
- Body:解釋什麼和為什麼,每行 72 字元
## 格式
():