字數總計:0 個 | 閱讀時長:0 分鐘 |閱讀次數:

什麼是 Custom Slash Command?

在 Claude Code 中,你可以把常用的工作流程定義成自訂斜線命令(Custom Slash Command),例如 /audit/write-test/review-pr。當你需要執行這些任務時,直接呼叫對應的命令,Claude 會按照你預先定義好的步驟進行操作。

與單純提示詞捷徑的差異: Custom Command 不只是簡單的文本替換,而是把整個工作流程結構化,包含輸入參數、執行步驟、驗證方式等,讓 Claude 能更精確地執行你設計的任務。

💡 為什麼需要 Custom Command?

  • 提高重複任務的執行效率
  • 確保同一類型任務的一致性
  • 可帶參數進行靈活的自訂
  • 支援專案規範和最佳實踐的推行

目錄結構:.claude/commands/

Custom Command 的定義檔存放在 .claude/commands/ 目錄下,每個 .md 檔代表一個命令。

.claude/commands/ 目錄結構圖 1:命令檔的組織方式。audit.md、write_tests.md 和 review_pr.md 分別對應 /audit、/write_tests 和 /review_pr 命令。

Custom Command 的 8 大組成區塊

一個設計完善的 Custom Command 應該包含以下區塊:

區塊說明必要性
任務目標明確告訴 Claude 這個 command 要完成什麼必要
輸入參數使用 $ARGUMENTS 接收使用者輸入,支援靈活自訂常用
執行步驟列出 Claude 要依序執行的具體動作必要
專案規範補充測試、命名、架構、匯入路徑等規則強烈建議
工具使用方式指示 Claude 何時讀檔、查詢、執行測試或修改程式視任務而定
輸出格式定義 Claude 如何格式化回報結果強烈建議
驗證方式指定要執行的測試、lint、build 或 type check強烈建議
失敗處理當測試失敗或資訊不足時的處理方式進階建議

實戰範例:Review PR Command

以下是一個完整的 review_pr.md 範例,展示如何整合上述 8 個區塊:

# Review PR

請根據以下目標進行程式碼審查:

$ARGUMENTS

## 任務目標

你審查目前變更內容,找出設計、可讀性、安全性、測試覆蓋與維護性問題。

## 執行步驟

1. 檢查 git diff。
2. 理解這次變更的目的。
3. 找出可能的 bug。
4. 檢查是否違反專案架構規範。
5. 檢查是否缺少測試。
6. 檢查是否有安全性風險。
7. 提出具體修改建議。

## 審查重點

請特別注意:
- 是否有破壞既有 API 行為
- 是否有 null pointer / undefined 風險
- 是否有權限驗證缺漏
- 是否有不必要的耦合
- 是否有重複邏輯
- 是否缺少測試案例
- 是否有過度設計

## 輸出格式

請用以下格式回報:

### 總結
簡短說明這次變更的整體品質。

### 必修問題
列出一定要修的問題。

### 建議改善
列出可以改善但不阻塞合併的問題。

### 測試建議
列出建議補上的測試。

如何呼叫 Custom Command

基本呼叫

/review_pr

帶參數呼叫

/review_pr focus on auth and permission risk

此時 $ARGUMENTS 會被替換為 focus on auth and permission risk,Claude 便會在審查時重點關注權限驗證與安全風險。

提示:參數可以多行,支援複雜的指引與上下文。

Custom Command 與 Skill 的關係

官方說明:「custom commands have been merged into skills」

Claude Code 的最新版本將 Custom Command 整合到 Skill 機制中。這並不意味著 .claude/commands/ 目錄被廢棄,而是引入了更強大的 Skill 系統。

新舊寫法對比

舊寫法:Command(.claude/commands/deploy.md)

# Deploy

Deploy the application to production.

## 執行步驟

1. Run tests
2. Build the application
3. Deploy to production
4. Report the result

新寫法:Skill(.claude/skills/deploy/)

.claude/skills/deploy/
├── SKILL.md           # 任務定義(frontmatter + 內容)
├── scripts/
│   └── deploy.sh      # 可選的輔助腳本
└── docs/
    └── runbook.md     # 詳細文件

SKILL.md 可包含 frontmatter 控制自動觸發行為:

---
name: deploy
description: Deploy application to production
category: deployment
---

# Deploy

按照以下步驟部署應用...

Skill 的優勢

  • 自動載入能力:Claude 可在相關情境自動判斷是否載入該 Skill,而非需要手動呼叫
  • 檔案目錄支援:可組織多個檔案(腳本、文件、範例等)
  • Frontmatter 控制:透過元資料控制觸發條件、分類、依賴關係等
  • 更好的文件化:支援獨立的文件目錄與範例

Command vs Skill:決策對比表

功能特性Custom CommandSkill
觸發方式手動呼叫 /命令名稱手動呼叫或自動載入
自動載入是(可透過 frontmatter 控制)
Frontmatter 控制不支援支援(name、description、category 等)
檔案目錄支援單一 .md 檔目錄結構(SKILL.md + 腳本 + 文件)
參數傳遞$ARGUMENTS$ARGUMENTS + 額外變數支援
最佳應用場景明確的、頻繁手動呼叫的任務長期、多面向、可複用的能力

何時用 Command,何時用 Skill?

使用 Custom Command 的時機

✓ 任務明確且場景單一
✓ 開發者會經常主動呼叫
✓ 任務流程相對簡單,不需要複雜的檔案結構
✓ 新手想快速體驗自訂命令的效果

例: /review-pr/audit/format-code

使用 Skill 的時機

✓ 能力較為複雜,涉及多個檔案或腳本
✓ 希望 Claude 能在相關情境自動觸發(不限手動呼叫)
✓ 任務需要配套文件、範例、最佳實踐
✓ 能力會在多個專案間複用
✓ 需要更精細的元資料控制(分類、依賴、觸發條件等)

例: 完整的部署流程、安全審計工具、重構工作流程

小結

Slash Command 是入口,Skill 是可被重複使用與擴充的能力包。

核心要點

  1. Custom Command 是在 .claude/commands/ 下定義的工作流程指令,支援參數化和結構化設計
  2. 8 大組成區塊(任務目標、參數、步驟、規範、工具使用、輸出、驗證、失敗處理)是設計高品質命令的指導原則
  3. Skill 是新一代機制,整合了 Command 的功能並加入自動載入、frontmatter 控制和檔案目錄支援
  4. 既有 Command 仍可運作,但建議新建能力時優先採用 Skill 模式
  5. 選擇標準很清楚:簡單明確的任務用 Command,複雜可複用的能力用 Skill

無論選擇哪種方式,關鍵都在於結構化設計清晰的指引,這樣 Claude 才能確實理解你的意圖並精確執行。