Plan 命令¶
此命令会在编写代码之前创建全面的实现计划。它接受自由格式的需求或 PRD Markdown 文件。
默认情况下,它会内联执行。默认情况下,它不会调用 Task 工具或子代理。这使得 /plan 也可以用于仅发布命令而不包含代理文件的插件安装。
此命令的工作方式¶
- 重述需求 — 明确要构建什么
- 识别风险 — 暴露潜在问题和阻塞项
- 创建分阶段计划 — 将实现分解为阶段
- 等待确认 — 继续之前必须获得用户批准
使用时机¶
使用 /plan 的情况:
- 开始新功能时
- 进行重要架构变更时
- 处理复杂重构时
- 多个文件/组件受到影响时
- 需求不明确或模糊时
工作方式¶
助手将执行以下操作:
- 分析请求,并用明确的术语重述需求
- 如果仓库可用,则根据相关代码库模式为计划提供依据
- 分解为阶段,包含具体且可执行的步骤
- 识别组件之间的依赖关系
- 评估风险和潜在阻塞项
- 估算复杂度(High/Medium/Low)
- 呈现计划,并等待明确确认
输入模式¶
| 输入 | 模式 | 行为 |
|---|---|---|
path/to/name.prd.md |
PRD 工件模式 | 读取 PRD,选择下一个待处理的交付里程碑或实现阶段,并写入 .claude/plans/{name}.plan.md |
| 其他 Markdown 路径 | 参考模式 | 将文件作为上下文读取,并输出内联计划 |
| 自由格式文本 | 对话模式 | 输出内联计划 |
| 空输入 | 澄清模式 | 询问应该计划什么 |
在 PRD 工件模式中,会按需创建 .claude/plans/。如果 PRD 包含 Delivery Milestones 表格,则仅将所选行从 pending 更新为 in-progress,并在其 Plan 单元格中设置生成的计划路径。如果 PRD 以旧版 .claude/PRPs/prds/ 格式使用 Implementation Phases,则在不迁移路径的情况下读取它。
模式依据¶
在编写计划之前,会从代码库中搜索实现应遵循的约定。对于每个相关类别,捕获带有文件引用的最佳示例:
| 类别 | 捕获对象 |
|---|---|
| 命名 | 受影响区域的文件、函数、类型、命令或脚本命名 |
| 错误处理 | 失败如何发生、返回、记录日志或优雅处理 |
| 日志 | 级别、格式、记录什么 |
| 数据访问 | 仓库、服务、查询或文件系统模式 |
| 测试 | 测试文件位置、框架、测试夹具、断言风格 |
如果不存在类似代码,请明确说明。不要凭空创造模式。
PRD 工件输出¶
当以 .prd.md 文件调用时,会以以下结构将计划写入 .claude/plans/{kebab-case-name}.plan.md:
# Plan: {機能名}
**Source PRD**: {パス}
**Selected Milestone**: {マイルストーンまたはフェーズ名}
**Complexity**: {Small | Medium | Large}
## Summary
{2-3文}
## Patterns to Mirror
| Category | Source | Pattern |
|---|---|---|
| Naming | `path:line` | {短い説明} |
| Errors | `path:line` | {短い説明} |
| Tests | `path:line` | {短い説明} |
## Files to Change
| File | Action | Why |
|---|---|---|
| `path` | CREATE / UPDATE / DELETE | {理由} |
## Tasks
### Task 1: {名前}
- **Action**: {何をするか}
- **Mirror**: {従うパターン}
- **Validate**: {正確性を証明するコマンド}
## Validation
```bash
{プロジェクト固有の検証コマンド}
```
## Risks
| Risk | Likelihood | Mitigation |
|---|---|---|
## Acceptance
- [ ] すべてのタスク完了
- [ ] バリデーション通過
- [ ] パターンをミラー、再発明しない
写入工件后,会报告路径,并在编写代码之前等待确认。
使用示例¶
User: /plan マーケットが解決した時にリアルタイム通知を追加する必要があります
Assistant:
# 実装計画: リアルタイムマーケット解決通知
## 要件の再述
- ユーザーがウォッチしているマーケットが解決した時に通知を送信
- 複数の通知チャネル(アプリ内、メール、webhook)をサポート
- 通知が確実に配信されることを保証
- マーケットの結果とユーザーのポジション結果を含める
## 実装フェーズ
### フェーズ 1: データベーススキーマ
- 通知テーブルを追加(カラム: 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: マーケットが頻繁に解決する場合の通知スパム
- LOW: リアルタイムサブスクリプションのオーバーヘッド
## 推定複雑さ: MEDIUM
- バックエンド: 4-6時間
- フロントエンド: 3-4時間
- テスト: 2-3時間
- 合計: 9-13時間
**確認待ち**: この計画で進めますか?(yes/no/modify)
重要注意事项¶
重要:在用户以 "yes" 或 "proceed" 等明确肯定回答确认计划之前,此命令不会编写任何代码。
如果希望修改,请这样回答: - "modify: [修改内容]" - "different approach: [替代方案]" - "skip phase 2 and do phase 3 first"
与其他命令的集成¶
计划之后:
- 使用 tdd-workflow 技能以测试驱动开发方式实现
- 如果发生构建错误,请使用 /build-fix
- 要审查完成的实现,请使用 /code-review
- 要创建拉取请求,请使用 /pr 或 /prp-pr
需要先生成需求吗? 使用
/plan-prd在.claude/prds/{name}.prd.md中创建精简的 PRD。需要旧版 PRP 流程吗? 使用
/prp-plan基于.claude/PRPs/工件创建详细的 PRP 计划。使用/prp-implement在严格的验证循环中执行这些计划。
可选规划器代理¶
ECC 还提供用于手动安装的 planner 代理,其中包含代理文件。仅当本地运行时已公开该子代理,并且用户明确要求委托计划时使用它。
如果 planner 子代理不可用,请继续内联规划,而不是显示 "Agent type 'planner' not found" 错误。
对于手动安装,源文件位于:
agents/planner.md
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC