Skip to content

Commands 指令

Commands 是可重複使用的 workflow,讓你可以快速執行常見的任務。

什麼是 Commands?

Commands 是存放在 .claude/commands/ 目錄的 Markdown 檔案,可以透過 /project:<command-name> 執行。

建立 Commands

1. 建立目錄

bash
mkdir -p .claude/commands

2. 建立 Command 檔案

.claude/commands/ 目錄建立 .md 檔案:

bash
touch .claude/commands/new-feature.md

3. 撰寫 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:review

test.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 build

2. Lint 檢查

bash
npm run lint

3. 類型檢查

bash
npm run typecheck

4. 測試

bash
npm run test

5. Docker 建構測試

bash
docker build -t app .
docker run -p 3000:3000 app

6. 環境變數檢查

確認以下環境變數已設定:

  • 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 的部署流程

下一步

AI 時代的軟體工程工作坊教學手冊