---
description: 重申需求、評估風險並建立逐步實作計畫。在開始修改任何程式碼之前，必須等待使用者確認。
---

# 規劃指令 (Plan Command)

此指令會呼叫 **planner** agent，在撰寫任何程式碼之前建立一份全面的實作計畫。

## 此指令的功能

1. **重申需求** - 澄清需要建置的內容。
2. **識別風險** - 找出潛在的問題與阻礙。
3. **建立步驟計畫** - 將實作拆解為多個階段。
4. **等待確認** - 在繼續之前，必須獲得使用者的核准。

## 何時使用

在以下情況使用 `/plan`：
- 開始一項新功能開發時。
- 進行重大架構變更時。
- 處理複雜的重構任務時。
- 會影響多個檔案/元件時。
- 需求不明確或存在歧義時。

## 運作原理

Planner agent 會執行以下操作：

1. **分析請求**並以清晰的術語重申需求。
2. **拆解為多個階段**，包含具體且可執行的步驟。
3. **識別元件之間的依賴關係**。
4. **評估風險**與潛在的阻礙因素。
5. **估算複雜度** (高/中/低)。
6. **展示計畫**並等待您的明確確認。

## 使用範例

```
使用者：/plan 我需要在市場結算時加入即時通知功能

Agent (planner)：
# 實作計畫：即時市場結算通知

## 需求重申
- 當使用者關注的市場結算時，向其發送通知
- 支援多種通知管道 (App 內、電子郵件、Webhook)
- 確保通知可靠送達
- 包含市場結果與使用者的部位狀況

## 實作階段

### 階段 1：資料庫 Schema
- 新增 notifications 表格，包含：id, user_id, market_id, type, status, created_at
- 新增 user_notification_preferences 表格，用於儲存管道偏好
- 在 user_id 和 market_id 上建立索引以優化性能

### 階段 2：通知服務
- 在 lib/notifications.ts 中建立通知服務
- 使用 BullMQ/Redis 實作通知佇列
- 為發送失敗加入重試邏輯
- 建立通知模板

### 階段 3：整合點
- 介入市場結算邏輯 (當狀態變更為 \"resolved\" 時)
- 查詢在該市場中持有部位的所有使用者
- 為每位使用者將通知加入佇列

### 階段 4：前端元件
- 在頁首建立 NotificationBell 元件
- 新增 NotificationList 彈窗
- 透過 Supabase 即時訂閱實作即時更新
- 新增通知偏好設定頁面

## 依賴項
- Redis (用於佇列)
- 電子郵件服務 (SendGrid/Resend)
- Supabase 即時訂閱

## 風險評估
- 高 (HIGH)：電子郵件送達率 (需要設定 SPF/DKIM)
- 中 (MEDIUM)：每個市場超過 1000 名使用者時的效能問題
- 中 (MEDIUM)：若市場結算頻繁，可能造成通知騷擾 (Notification spam)
- 低 (LOW)：即時訂閱的額外負擔

## 預估複雜度：中 (MEDIUM)
- 後端：4-6 小時
- 前端：3-4 小時
- 測試：2-3 小時
- 總計：9-13 小時

**正在等待確認**：是否執行此計畫？ (yes/no/modify)
```

## 重要注意事項

**關鍵 (CRITICAL)**：在您明確以 "yes"、"proceed" 或類似的肯定回覆確認計畫之前，Planner agent **不會**撰寫任何程式碼。

如果您希望進行調整，請回覆：
- "modify: [您的變更內容]"
- "different approach: [替代方案]"
- "skip phase 2 and do phase 3 first" (跳過階段 2，先執行階段 3)

## 與其他指令的整合

規劃完成後：
- 使用 `/tdd` 透過測試驅動開發進行實作。
- 若出現建置錯誤，請使用 `/build-fix`。
- 使用 `/code-review` 審查完成的實作。

## 相關 Agent

此指令會呼叫位於以下路徑的 `planner` agent：
`~/.claude/agents/planner.md`
