主題
Commands 指令
Commands 是可重複使用的 workflow,讓你可以快速執行常見的任務。
什麼是 Commands?
Commands 是存放在 .claude/commands/ 目錄的 Markdown 檔案,可以透過 /project:<command-name> 執行。
建立 Commands
1. 建立目錄
bash
mkdir -p .claude/commands2. 建立 Command 檔案
在 .claude/commands/ 目錄建立 .md 檔案:
bash
touch .claude/commands/new-feature.md3. 撰寫 Command
markdown
# 新功能開發
請幫我開發新功能:$ARGUMENTS
## 步驟
1. 先分析需求,確認功能範圍
2. 設計資料結構(如果需要)
3. 建立 UI 元件
4. 實作業務邏輯
5. 測試功能
## 規範
- 遵循 CLAUDE.md 的開發規範
- 使用 shadcn/ui 元件
- 確保 TypeScript 類型正確4. 使用 Command
/project:new-feature 使用者登入功能$ARGUMENTS 會被替換成「使用者登入功能」。
常用 Commands 範例
review.md - 程式碼審查
markdown
# 程式碼審查
請檢查最近修改的檔案,評估以下面向:
## 1. 程式碼品質
- 是否遵循專案規範(CLAUDE.md)
- 命名是否清楚易懂
- 函數是否單一職責
## 2. 潛在 Bug
- 邊界條件處理
- 錯誤處理是否完整
- Null/undefined 檢查
## 3. 效能問題
- 不必要的重渲染
- N+1 查詢
- 大量資料處理
## 4. 安全漏洞
- XSS 攻擊
- SQL injection
- 敏感資料洩露
請列出問題並提供修正建議。使用:
/project:reviewtest.md - 撰寫測試
markdown
# 撰寫測試
請為以下功能撰寫測試:$ARGUMENTS
## 測試類型
使用 Vitest 撰寫 unit tests
## 測試重點
1. 正常流程
2. 邊界條件
3. 錯誤處理
4. 空值處理
## 規範
- 測試檔案放在 `__tests__` 目錄或使用 `.test.ts` 後綴
- 每個測試案例要有清楚的描述
- 使用 `describe` 和 `it` 組織測試
- 避免測試實作細節,專注於行為使用:
/project:test calculateTotal 函數api.md - 建立 API 端點
markdown
# 建立 API 端點
請建立 API 端點:$ARGUMENTS
## 步驟
1. 在 `app/api/` 建立 Route Handler
2. 定義 request/response 類型
3. 實作業務邏輯
4. 加入錯誤處理
5. 加入驗證(如果需要認證)
## API 規範
- 使用 Route Handlers (route.ts)
- 回傳格式:
```typescript
{
success: boolean;
data?: T;
error?: string;
}- 使用正確的 HTTP status codes
- 敏感操作需要認證
Supabase 整合
- 使用 Server Client
- 注意 RLS 政策
**使用:**/project:api GET /api/trips - 取得使用者的所有行程
### component.md - 建立元件
```markdown
# 建立 UI 元件
請建立 React 元件:$ARGUMENTS
## 步驟
1. 在 `components/` 目錄建立元件
2. 定義 Props 介面
3. 實作元件邏輯
4. 加入樣式(Tailwind CSS)
## 規範
- 使用 TypeScript
- 優先使用 Server Component
- 需要 hooks/事件時使用 "use client"
- 使用 shadcn/ui 元件作為基礎
- 使用 `cn()` 合併 class names
## 範例結構
```typescript
interface ComponentNameProps {
// props
}
export function ComponentName({ ...props }: ComponentNameProps) {
return (
// JSX
)
}
**使用:**/project:component TripCard - 顯示行程摘要的卡片
### deploy.md - 部署檢查
```markdown
# 部署檢查
執行部署前檢查:
## 1. 編譯檢查
```bash
npm run build2. Lint 檢查
bash
npm run lint3. 類型檢查
bash
npm run typecheck4. 測試
bash
npm run test5. Docker 建構測試
bash
docker build -t app .
docker run -p 3000:3000 app6. 環境變數檢查
確認以下環境變數已設定:
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- [其他需要的環境變數]
如果所有檢查通過,請告訴我可以部署。 如果有問題,請列出並提供修正建議。
**使用:**/project:deploy
### refactor.md - 重構程式碼
```markdown
# 重構程式碼
請重構以下程式碼:$ARGUMENTS
## 重構原則
1. **KISS** - Keep It Simple, Stupid
2. **DRY** - Don't Repeat Yourself
3. **SOLID** - 單一職責、開放封閉等
## 重構重點
- 拆分過長的函數
- 提取重複的邏輯
- 改善命名
- 簡化複雜的條件判斷
- 減少巢狀層級
## 注意事項
- 不要改變功能行為
- 保持向後相容
- 每次小步重構,確認不破壞功能使用:
/project:refactor UserService進階技巧
使用 $ARGUMENTS
$ARGUMENTS 會被替換成 Command 後面的所有文字:
markdown
請處理:$ARGUMENTS/project:mycommand 參數1 參數2 參數3結果:「請處理:參數1 參數2 參數3」
組合 Commands
可以在 Command 中引用其他規範:
markdown
# 完整開發流程
請按照以下步驟開發功能:$ARGUMENTS
1. 參考 CLAUDE.md 的規範
2. 使用 shadcn/ui 元件
3. 完成後執行 /project:review
4. 修正問題後執行 /project:test專案專屬 Commands
每個專案可以有不同的 Commands,根據專案需求定制:
project-a/.claude/commands/
├── api.md # 專案 A 的 API 規範
└── deploy.md # 專案 A 的部署流程
project-b/.claude/commands/
├── api.md # 專案 B 的 API 規範(可能不同)
└── deploy.md # 專案 B 的部署流程下一步
- Subagents 使用 - 使用內建的專業 Agent
- Debug 技巧 - 除錯方法