Commands → Skills 遷移指南
Claude Code 在 v2.1.3 之後把 Custom Commands 合併進了 Skills 系統。如果你還在用 .claude/commands/,這篇指南會幫你理解兩者的差異,並提供一份可以直接交給 Agent 執行的遷移 Playbook。
關於這次合併的背景、社群反應和影響分析,請看新聞:Slash Command 已死?。這篇專注在怎麼遷移。
Commands 跟 Skills 的核心差異
| Commands | Skills | |
|---|---|---|
| 檔案結構 | 單一檔案(.claude/commands/deploy.md) | 目錄結構(.claude/skills/deploy/SKILL.md) |
| 子檔案 | 不支援 | 支援(規則檔、格式檔、prompt 模板等) |
| Frontmatter | 不支援 | 支援(description、user-invocable、context: fork、model 等) |
| 知識拆分 | 全部擠在一個檔案 | 主檔 SKILL.md + supporting files,JIT 載入 |
| Subagent 隔離 | 做不到 | context: fork 原生支援 |
一句話總結:Commands 是「一個指令 = 一個檔案」,Skills 是「一個能力 = 一個目錄」。
三類 Skill
遷移之前要先知道,每個 Skill 屬於三類之一:
1. Orchestrator(編排者)
使用者打 /daily 觸發的入口點,定義「做什麼、按什麼順序」。加上 user-invocable: true。
你原本的 Commands 遷移後都會變成這一類。
2. Knowledge(知識模組)
告訴 Agent「怎麼分類」、「怎麼判斷」的方法論和規則。沒有 user-invocable,被 Orchestrator 按需引用。
3. Forked Subagent(隔離執行者)
在獨立 context 中跑任務,只回傳精簡結果。設定 context: fork + allowed-tools。
使用者輸入 /daily
↓
Orchestrator (daily/SKILL.md)
├── 載入 Knowledge (規則檔)
├── 委派 Subagent → 回傳摘要
└── 產出結果
遷移的基本步驟
無衝突(大多數情況)
如果你的 command 名字跟現有 skill 目錄不重複:
之前: .claude/commands/deploy.md
之後: .claude/skills/deploy/SKILL.md
- 建立目錄
.claude/skills/deploy/ - 在檔案開頭加 frontmatter(
name、description、user-invocable: true) - 原本的 command 內容接在後面,不改動
- 刪掉原本的 command 檔案
有衝突(command 名字 = 現有 skill 目錄)
如果目標目錄已經有 SKILL.md(通常是 Knowledge 模組):
- 把現有 SKILL.md 改名為描述性檔名(如
methodology.md) - 用 command 內容建立新的 SKILL.md(Orchestrator)
- 在新 SKILL.md 裡引用改名後的知識檔
遷移注意事項
行數控制
| 行數 | 狀態 |
|---|---|
| < 200 | 理想 |
| 200–300 | 可接受 |
| 300–500 | 偏長,考慮拆分 |
| > 500 | 必須拆分 |
超過 300 行,LLM 對後段指令的遵從率開始下降。但不要為了拆而拆——350 行邏輯連貫的單一檔案,比 200 行 + 兩個碎片檔好。
可以拆出去的
- 分類規則、決策表
- 輸出格式模板
- Subagent prompt 模板
- 使用情境範例
不該拆的
- 工作流步驟(Step 1 → Step 2 → …)
- 錯誤處理邏輯
- Skills to Load 區段
清理
遷移後記得:
- 刪除
.claude/commands/目錄 - 更新 CLAUDE.md 裡的 Commands 段落
- 搜尋專案中所有引用
.claude/commands/的路徑,更新為.claude/skills/ - 檢查 memory 檔案是否有舊路徑引用
Agent Playbook 下載
上面是給人看的指南。如果你想讓 Agent 自己執行遷移,下載這份 Playbook:
📥 下載 Agent Playbook(.md)使用方式: 下載後放進你的專案目錄,然後跟 Claude Code 說:
請讀取 commands-to-skills-migration-playbook.md,依照裡面的步驟遷移我的 Commands 到 Skills
Agent 會照著 Playbook 裡的步驟自動完成:Inventory → 建立 Skills → 處理衝突 → 清理舊檔案 → 驗證。
相關資源:
支持這個系列
如果這系列文章對你有幫助,考慮請我喝杯咖啡
請我喝杯咖啡
