Skip to main content

第 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:選擇技能位置

技能按此優先順序搜尋:

  1. 專案技能: ./.claude/skills/
  2. 使用者技能: ~/.claude/skills/
  3. 管理技能: 安裝目錄

步驟 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 在多個位置搜尋技能,具有特定的優先順序。

搜尋順序(優先順序由高到低)

  1. 專案技能./.claude/skills/

    • 專用於目前專案
    • 最高優先順序
    • 覆蓫其他具有相同名稱的技能
    • 隨專案以 git 追蹤
  2. 使用者技能~/.claude/skills/

    • 個人技能
    • 在所有專案中可用
    • 適合個人的工作流程
    • 不與團隊共享
  3. 管理技能(安裝目錄)

    • 內建技能
    • 最低優先順序
    • 被專案/使用者技能覆蓋

實際影響

**情境:**您有多個位置的 /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 課:分叉情境與進階技能**。


✅ 檢查您的理解

  1. 什麼是技能?

    • 一種程式設計語言
    • 可重複使用的基於提示的指令
    • 一種檔案類型
    • 一個鍵盤快捷鍵
  2. 使用者技能儲存在哪裡?

    • ~/claude/skills/
    • ~/.claude/skills/
    • /usr/share/claude/skills/
    • ./skills/
  3. 哪個技能建立 git 提交?

    • /save
    • /commit
    • /git
    • /store
  4. True 或 False: 使用者技能覆蓋專案技能具有相同的名稱。

    • True
    • False - 專案覆蓋使用者
  5. 每個技能需要什麼檔案?

    • 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 課:設定與設定