跳至主要內容
EMil Wu
EN

Commands → Skills 遷移指南

Claude Code 在 v2.1.3 之後把 Custom Commands 合併進了 Skills 系統。如果你還在用 .claude/commands/,這篇指南會幫你理解兩者的差異,並提供一份可以直接交給 Agent 執行的遷移 Playbook。

關於這次合併的背景、社群反應和影響分析,請看新聞:Slash Command 已死?。這篇專注在怎麼遷移


Commands 跟 Skills 的核心差異

CommandsSkills
檔案結構單一檔案(.claude/commands/deploy.md目錄結構(.claude/skills/deploy/SKILL.md
子檔案不支援支援(規則檔、格式檔、prompt 模板等)
Frontmatter不支援支援(descriptionuser-invocablecontext: forkmodel 等)
知識拆分全部擠在一個檔案主檔 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
  1. 建立目錄 .claude/skills/deploy/
  2. 在檔案開頭加 frontmatter(namedescriptionuser-invocable: true
  3. 原本的 command 內容接在後面,不改動
  4. 刪掉原本的 command 檔案

有衝突(command 名字 = 現有 skill 目錄)

如果目標目錄已經有 SKILL.md(通常是 Knowledge 模組):

  1. 把現有 SKILL.md 改名為描述性檔名(如 methodology.md
  2. 用 command 內容建立新的 SKILL.md(Orchestrator)
  3. 在新 SKILL.md 裡引用改名後的知識檔

遷移注意事項

行數控制

行數狀態
< 200理想
200–300可接受
300–500偏長,考慮拆分
> 500必須拆分

超過 300 行,LLM 對後段指令的遵從率開始下降。但不要為了拆而拆——350 行邏輯連貫的單一檔案,比 200 行 + 兩個碎片檔好。

可以拆出去的

  • 分類規則、決策表
  • 輸出格式模板
  • Subagent prompt 模板
  • 使用情境範例

不該拆的

  • 工作流步驟(Step 1 → Step 2 → …)
  • 錯誤處理邏輯
  • Skills to Load 區段

清理

遷移後記得:

  1. 刪除 .claude/commands/ 目錄
  2. 更新 CLAUDE.md 裡的 Commands 段落
  3. 搜尋專案中所有引用 .claude/commands/ 的路徑,更新為 .claude/skills/
  4. 檢查 memory 檔案是否有舊路徑引用

Agent Playbook 下載

上面是給人看的指南。如果你想讓 Agent 自己執行遷移,下載這份 Playbook:

📥 下載 Agent Playbook(.md)

使用方式: 下載後放進你的專案目錄,然後跟 Claude Code 說:

請讀取 commands-to-skills-migration-playbook.md,依照裡面的步驟遷移我的 Commands 到 Skills

Agent 會照著 Playbook 裡的步驟自動完成:Inventory → 建立 Skills → 處理衝突 → 清理舊檔案 → 驗證。


相關資源:

支持這個系列

如果這系列文章對你有幫助,考慮請我喝杯咖啡