# 讓 Claude Code 變成專家:Skills 自訂技能教學
> 這篇文章教你怎麼建立 Claude Code 的 Skills(自訂技能),讓它從通用助手變成你的領域專家。你可以把這篇文章(或下方的快速建立指引)直接貼給你的 Claude Code,它就能幫你建立屬於你自己的 Skill。
## Skills 是什麼?
簡單說,Skills 就是一份「教學手冊」,讓 Claude Code 在特定情境下自動載入,變成那個領域的專家。
**舉例:**
- 你常常要搜尋公司知識庫 → 建一個「知識庫搜尋」Skill,告訴它搜尋的步驟和技巧
- 你常常寫 React 元件 → 建一個「React 元件」Skill,告訴它你的命名規範和偏好
- 你常常處理 PDF → 建一個「PDF 處理」Skill,附上你常用的 Python 腳本
**效果:** 下次你說「幫我在知識庫找 XXX」,Claude Code 會自動載入對應的 Skill,按照你定義的流程來做,不需要你每次重複解釋。
## 怎麼建立?
### 方法一:直接貼給 Claude Code(最簡單)
把下面這段貼給你的 Claude Code:
---
**給 Claude Code 的指令:**
> 幫我建立一個 Skill。
>
> **名稱:** [你想要的技能名稱,例如:知識庫搜尋]
> **用途:** [什麼時候觸發,例如:當我說「幫我找」「搜一下」的時候]
> **步驟:**
> 1. [第一步做什麼]
> 2. [第二步做什麼]
> 3. [第三步做什麼]
>
> 請建立在 `~/.claude/skills/[技能名稱]/SKILL.md`
---
Claude Code 就會幫你建好整個 Skill 結構。
### 方法二:自己手動建立
Skill 其實就是一個資料夾 + 一個 Markdown 文件:
```
~/.claude/skills/
└── 你的技能名稱/
└── SKILL.md
```
`SKILL.md` 的格式:
```markdown
---
name: 技能顯示名稱
description: This skill should be used when the user asks to "觸發詞1", "觸發詞2", "觸發詞3".
---
# 技能名稱
## 什麼時候用
這個技能在 [情境描述] 時使用。
## 執行步驟
### 第一步:XXX
[具體做法,越詳細越好]
### 第二步:XXX
[具體做法]
### 常見問題
| 問題 | 解法 |
|------|------|
| ... | ... |
```
## 重點技巧
### 1. 觸發詞要具體
description 裡的觸發詞決定了 Claude Code 什麼時候會載入這個 Skill。寫得越具體,觸發越精準。
```yaml
# 不好 — 太模糊
description: This skill helps with searching.
# 好 — 列出使用者實際會說的話
description: This skill should be used when the user asks to "在知識庫找", "幫我查", "搜一下之前的紀錄", or "find in knowledge base".
```
### 2. 步驟要寫「怎麼做」而不是「做什麼」
```markdown
# 不好 — 只說做什麼
搜尋知識庫中的相關資料。
# 好 — 寫出具體怎麼做
用以下 Python 腳本查詢 Qdrant 向量資料庫:
(附上完整的程式碼)
```
### 3. 可以附帶腳本和參考資料
```
你的技能名稱/
├── SKILL.md ← 主要說明(會自動載入)
├── scripts/ ← 工具腳本(需要時才載入)
│ └── search.py
└── references/ ← 參考文件(需要時才載入)
└── api-guide.md
```
在 SKILL.md 裡引用它們:
```markdown
## 可用工具
- `scripts/search.py` — 知識庫搜尋腳本
- `references/api-guide.md` — API 完整文件
```
這樣 Claude Code 會在需要時才讀取,不會浪費 token。
### 4. 記錄踩過的坑
Skill 最有價值的部分是你的**經驗**,那些 Claude Code 自己不會知道的東西:
```markdown
## 注意事項
- 搜尋 Notion 子頁面時,父頁面的 content 可能是空的,需要展開子頁面
- Windows 的 VBS 腳本必須用 Big5 編碼,不能用 UTF-8
- 這個 API 的 v2 已經棄用 search(),要改用 query_points()
```
## 實際範例:知識庫搜尋 Skill
以下是我實際在用的「知識庫搜尋」Skill 的精簡版。我有一套本地 RAG 系統(Notion 同步 + Qdrant 向量搜尋 + SQLite),這個 Skill 教 Claude Code 怎麼按優先順序搜尋:
```markdown
---
name: 知識庫搜尋
description: This skill should be used when the user asks to "在知識庫找",
"幫我查知識庫", "找一下我之前記的", or mentions searching their knowledge base.
---
# 知識庫搜尋策略
## 搜尋優先順序
### 第一層:Qdrant 語意搜尋
用 sentence-transformers 把查詢向量化,在 Qdrant 裡找最相似的頁面。
(附上 Python 腳本)
### 第二層:SQLite 屬性篩選
按日期、分類、資料庫名稱等結構化欄位精準查找。
(附上 SQL 範例)
### 第三層:全文關鍵字搜尋
直接搜 pages.json 的標題和內容。
(附上 Python 腳本)
### 最後手段:Notion API
只有以上都找不到時才用。
```
每次搜尋遇到問題,我就更新這個 Skill,讓它越來越聰明。
## 快速開始
直接把以下內容貼給你的 Claude Code 開始建立第一個 Skill:
---
**複製貼上這段:**
```
幫我建立一個 Claude Code Skill。
存放位置:~/.claude/skills/[你取的名字]/SKILL.md
我想要的功能:
[描述你希望 Claude Code 在什麼情境自動做什麼事]
觸發詞(我通常會怎麼說):
- [例如:「幫我查」]
- [例如:「在知識庫找」]
具體步驟:
1. [第一步]
2. [第二步]
3. [第三步]
踩過的坑(如果有的話):
- [你之前遇過的問題和解法]
```
---
Claude Code 會幫你生成完整的 SKILL.md,之後每次新對話都會自動生效。
## 進階用法
- **全域 Skill**(所有專案都能用):放在 `~/.claude/skills/`
- **專案 Skill**(只有特定專案用):放在 `專案根目錄/.claude/skills/`(需透過 Plugin 機制)
- **持續優化**:每次 Skill 表現不好就更新它,就像訓練一個專屬助手
---
> 這套 Skills 系統是 Claude Code 的內建功能,不需要額外安裝任何東西。只要建好 SKILL.md,它就會自動在對話中生效。