第 5 課:技能系統
學習目標
完成本課程後,您將能夠:
- 理解什麼是技能及其運作方式
- 有效地使用內建技能
- 使用
/叫用技能 - 建立您的第一個自訂技能
- 理解技能結構和組織
- 知道技能的位置和優先順序
- 使用技能熱重載(2.1.x 自動!)⭐ 新增!
先決條件
- 完成第 1-4 課 - 核心操作和權限
- 熟悉聊天模式 - 基本對話使用
- 文字編輯器就緒 - 用於建立技能檔案
預估時間: 25 分鐘
⭐ 已更新至 2.1.33: 包含技能熱重載和進階 frontmatter!
什麼是技能?
技能是可重複使用的基於提示的指令,擴展 Claude Code 的功能。將它們想像成常用工作的自訂快捷方式或宏。
為什麼需要技能
可重複使用性:
- 單一指令執行複雜任務
- 在工作流程之間共享
- 建立有用的例行程序
一致性:
- 相同提示產生一致的結果
- 常見任務的標準化方法
- 團隊對齊工作流程
效率:
- 不要重複複雜的指令
- 一個指令而不是多個步驟
- 更快的工作流程
技能與常規提示
常規提示:
You> 我想要你建立一個 git 提交並使用約定提交格式。
確保遵循約定提交格式,包含 type、scope 和 subject。
此外也要包含 Co-Authored-By: Claude...
技能:
You> /commit
兩者都完成同樣的事,但技能快得多!
內建技能概覽
Claude Code 配合幾個內建技能。
Commit 技能
用途: 建立格式化的提交訊息
用法:
You> /commit
它做什麼:
- 檢查 git 狀態
- 暫存變更
- 建立約定提交訊息
- 包含適當的歸屬
- 建立提交
範例輸出:
You> /commit
[Git 操作顯示]
提交建立:feat: add user authentication flow
Memory 技能
用途: 編輯 CLAUDE.md 以取得專案脈絡
用法:
You> /memory
它做什麼:
- 開啟 CLAUDE.md 以進行編輯
- 新增專案特定脈絡
- 協助 Claude 記住重要資訊
範例:
You> /memory
Claude: 我將開啟 CLAUDE.md,您可以在那裡新增關於此專案的
Claude 應該記住的脈絡。
使用 / 叫用技能
所有技能都使用斜線(/)前綴叫用。
基本叫用
You> /技能名稱
技能與參數
某些技能接受參數:
You> /commit -m "修復登入 bug"
探索可用技能
方法 1:Help 指令
You> /help skills
方法 2:列出技能目錄
ls ~/.claude/skills/
方法 3:詢問 Claude
You> 有哪些可用技能?
建立您的第一個自訂技能
讓我們建立一個簡單的技能用於常見任務。
技能概念:程式碼審查
我們將建立一個技能來執行標準的程式碼審查。
步驟 1:選擇技能位置
技能按此優先順序搜尋:
- 專案技能:
./.claude/skills/ - 使用者技能:
~/.claude/skills/ - 管理技能: 安裝目錄
步驟 2:建立技能目錄
mkdir -p ~/.claude/skills/review
步驟 3:建立 SKILL.md
建立 ~/.claude/skills/review/SKILL.md:
# 程式碼審查
對指定的檔案或目錄執行全面的程式碼審查。
## 用法
/review [file-or-directory]
## 範例
/review src/main.py
/review .
/review @src/auth.js
## 檢查項目
- 程式碼品質和可讀性
- 潛在 bug 和問題
- 安全漏洞
- 效能問題
- 最佳實踐違規
- 缺少的錯誤處理
- 文件完整性
## 輸出格式
提供結構化的審查包含:
1. 摘要(2-3 句話)
2. 發現的問題(按嚴重性分類)
3. 正面觀察
4. 具體建議
5. 改進範例(如適用)
步驟 4:測試技能
claude
You> /review @sample.py
Claude: [執行全面程式碼審查,遵循您的指導方針]
技能結構
技能具有定義其運作方式的特定結構。
必要檔案
SKILL.md(必要)
- 定義技能的行為
- 包含給 Claude 的指令
- 以 markdown 撰寫
- 可包含範例、指導方針、範本
可選元件
examples/(可選)
- 範例輸入和輸出
- 示範用法
- 測試案例
scripts/(可選)
- Shell 腳本或工具程式
- Helper 程式
- 自動化邏輯
README.md(可選)
- 使用者文件
- 安裝指令
- 用法範例
完整技能範例
my-skill/
├── SKILL.md # 必要:給 Claude 的指令
├── README.md # 可選:使用者文件
├── examples/ # 可選:範例用法
│ ├── input1.txt
│ └── output1.txt
└── scripts/ # 可選:Helper 腳本
└── helper.sh
技能位置和優先順序
Claude Code 在多個位置搜尋技能,具有特定的優先順序。
搜尋順序(優先順序由高到低)
-
專案技能(
./.claude/skills/)- 專用於目前專案
- 最高優先順序
- 覆蓫其他具有相同名稱的技能
- 隨專案以 git 追蹤
-
使用者技能(
~/.claude/skills/)- 個人技能
- 在所有專案中可用
- 適合個人的工作流程
- 不與團隊共享
-
管理技能(安裝目錄)
- 內建技能
- 最低優先順序
- 被專案/使用者技能覆蓋
實際影響
**情境:**您有多個位置的 /test 技能
Project: /.claude/skills/test/SKILL.md
User: ~/.claude/skills/test/SKILL.md
Managed: (installation)/skills/test/SKILL.md
結果: 專案技能被使用。
推薦的組織
專案特定技能:
my-project/
└── .claude/
└── skills/
├── deploy/ # 專案部署
└── db-migrate/ # 資料庫遷移
個人的技能:
~/.claude/skills/
├── review/ # 您的程式碼審查風格
├── refactor/ # 您的重構偏好
└── document/ # 您的文件格式
⭐ 技能熱重載(2.1.x 新增!)
什麼是熱重載?
2.1.x 之前,您必須重新啟動 Claude Code 才能看到技能變更。
2.1.x 及之後: 技能在修改時自動重新載入!
運作方式
自動偵測:
.claude/skills/
├── refactor.md
├── test.md
└── deploy.md
[您編輯 refactor.md]
Claude Code 偵測檔案變更 → 立即重新載入技能 → 技能準備好使用
無需重新啟動!
支援的位置
熱重載適用於以下位置的技能:
~/.claude/skills/- 使用者層級技能.claude/skills/- 專案層級技能- 巢狀
.claude/skills/- 子目錄技能
熱重載實作
您:編輯測試技能以包含覆蓋率報告
[您開啟 ~/.claude/skills/test.md]
[新增覆蓋率報告指示]
[儲存檔案]
Claude:我偵測到測試技能的更新。
技能已重新載入並準備好使用。
您:/test
Claude:[執行更新的測試技能並包含覆蓋率報告]
快速開發工作流程
之前(舊行為):
# 編輯技能檔案
vim ~/.claude/skills/refactor.md
# 重新啟動 Claude Code
exit
claude
# 現在技能已更新
之後(2.1.x 行為):
# 編輯技能檔案
vim ~/.claude/skills/refactor.md
# 技能立即可用!
# 無需重新啟動
開發迴圈
# 開發迴圈
vim ~/.claude/skills/feature.md # 編輯
/feature # 測試
vim ~/.claude/skills/feature.md # 再次編輯
/feature # 再次測試
更多進階技能功能(情境分叉、語言設定、代理指定),請參閱**第 19 課:分叉情境與進階技能**。
✅ 檢查您的理解
-
什麼是技能?
- 一種程式設計語言
- 可重複使用的基於提示的指令
- 一種檔案類型
- 一個鍵盤快捷鍵
-
使用者技能儲存在哪裡?
-
~/claude/skills/ -
~/.claude/skills/ -
/usr/share/claude/skills/ -
./skills/
-
-
哪個技能建立 git 提交?
- /save
- /commit
- /git
- /store
-
True 或 False: 使用者技能覆蓋專案技能具有相同的名稱。
- True
- False - 專案覆蓋使用者
-
每個技能需要什麼檔案?
- README.md
- script.sh
- SKILL.md
- config.json
答案: 1-b, 2-b, 3-b, 4-False, 5-c
總結
在本課程中,您學到了:
- 什麼是技能 - 可重複使用的基於提示的指令
- 內建技能 -
/commit、/memory、/config、/stats - 叫用技能 - 使用
/技能名稱語法 - 建立技能 - SKILL.md 檔案與指令
- 技能結構 - SKILL.md 必要,其他可選
- 技能位置 - 專案 > 使用者 > 管理的優先順序
下一步
在**第 6 課:設定與設定**中,您將學到:
- 設定範圍
- 建立設定檔
- 常見設定以進行自訂
- 環境變數
- CLAUDE.md 用於專案脈絡
進階閱讀
繼續至第 6 課:設定與設定 →