---
description: 重新阐述需求、评估风险并创建分步实施计划。在接触任何代码之前，等待用户确认。
---

# 计划命令

此命令调用 **planner** 代理，在编写任何代码之前创建一个全面的实施计划。

## 此命令的作用

1. **重新阐述需求** - 明确需要构建什么
2. **识别风险** - 揭示潜在问题和阻碍
3. **创建分步计划** - 将实施分解为多个阶段
4. **等待确认** - 必须获得用户批准才能继续

## 何时使用

在以下情况下使用 `/plan`：

* 开始新功能时
* 进行重大架构变更时
* 处理复杂重构时
* 多个文件/组件将受到影响时
* 需求不明确或存在歧义时

## 工作原理

planner 代理将：

1. **分析请求** 并用清晰的术语重新阐述需求
2. **分解为多个阶段**，每个阶段包含具体、可操作的步骤
3. **识别组件之间的依赖关系**
4. **评估风险和潜在阻碍**
5. **估算复杂度**（高/中/低）
6. **展示计划**并等待您明确的确认

## 使用示例

```
User: /plan 我需要为市场结算时添加实时通知功能

Agent (planner):
# 实施计划：实时市场结算通知

## 需求重述
- 当用户关注的市场结算时，向用户发送通知
- 支持多种通知渠道（应用内、电子邮件、Webhook）
- 确保通知可靠送达
- 包含市场结果和用户持仓结果

## 实施阶段

### 第一阶段：数据库架构
- 添加 notifications 表，包含列：id, user_id, market_id, type, status, created_at
- 添加 user_notification_preferences 表用于存储渠道偏好设置
- 在 user_id 和 market_id 上创建索引以提升性能

### 第二阶段：通知服务
- 在 lib/notifications.ts 中创建通知服务
- 使用 BullMQ/Redis 实现通知队列
- 为发送失败的情况添加重试逻辑
- 创建通知模板

### 第三阶段：集成点
- 接入市场结算逻辑（当状态变为 "resolved" 时）
- 查询在市场中有持仓的所有用户
- 为每个用户将通知加入队列

### 第四阶段：前端组件
- 在头部创建 NotificationBell 组件
- 添加 NotificationList 模态框
- 通过 Supabase 订阅实现实时更新
- 添加通知偏好设置页面

## 依赖项
- Redis（用于队列）
- 电子邮件服务（SendGrid/Resend）
- Supabase 实时订阅

## 风险
- 高：电子邮件送达率（需要配置 SPF/DKIM）
- 中：市场用户超过 1000+ 时的性能问题
- 中：市场频繁结算可能导致通知泛滥
- 低：实时订阅开销

## 预估复杂度：中
- 后端：4-6 小时
- 前端：3-4 小时
- 测试：2-3 小时
- 总计：9-13 小时

**等待确认**：是否按此计划进行？（是/否/修改）
```

## 重要说明

**关键**：planner 代理在您明确用“是”、“继续”或类似的肯定性答复确认计划之前，**不会**编写任何代码。

如果您希望修改，请回复：

* "修改：\[您的修改内容]"
* "不同方法：\[替代方案]"
* "跳过阶段 2，先执行阶段 3"

## 与其他命令的集成

计划之后：

* 使用 `/tdd` 通过测试驱动开发来实现
* 如果出现构建错误，请使用 `/build-fix`
* 使用 `/code-review` 来审查已完成的实现

## 相关代理

此命令调用由 ECC 提供的 `planner` 代理。

对于手动安装，源文件位于：
`agents/planner.md`
