- name
- rpiv-loop:plan-feature
- description
- 通过深入的代码库分析和研究创建全面的功能计划
- argument-hint
- <功能描述或 PRD 路径>
- allowed-tools
- Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, WebSearch, WebFetch
- version
- 2.17.15
> `<rpiv-loop-root>` 解析顺序:环境变量 `RPIV_LOOP_ROOT` -> `CLAUDE_PLUGIN_ROOT` -> 当前插件根目录;均不存在时停止并请用户配置 `RPIV_LOOP_ROOT` 或 `CLAUDE_PLUGIN_ROOT`。
# 规划新任务
## 功能:$ARGUMENTS
## 使命
通过系统的代码库分析、外部研究和战略规划,将功能请求转换为**全面的实施计划**。
**核心原则**:在此阶段我们**不编写代码**。我们的目标是创建一个上下文丰富的实施计划,使 AI 代理能够一次性成功实施。
**关键理念**:上下文为王。计划必须包含实施所需的所有信息——模式、必读内容、文档、验证命令——以便执行代理在第一次尝试时就能成功。
## 规划流程
### 阶段 0:前置检查
**在开始规划前执行状态管理:**
1. 检查是否存在相关的 PRD 文件:`rpiv/requirements/prd-*.md`
2. 如果存在相关 PRD:
- 读取该 PRD 文件内容
- 检查是否有 YAML frontmatter
- 根据 PRD 当前 status 处理:
- `pending` → 更新为 `in-progress`,更新 `updated_at`
- `in-progress` → **可能是上次会话中断**。提示用户但继续执行(Plan 创建完成后仍会将 PRD 标记为 completed)
- `completed` → PRD 已完成,正常继续
- `superseded` → 警告用户此 PRD 已被取代,询问是否仍要基于它创建 Plan
- 记录 PRD 文件路径,用于后续 related_files
- **读取 PRD frontmatter 的 `product_types` 字段**(缺失时按 `[code]` 处理,行为与改造前一致)。若含 `skill`,本次规划走 skill 分支:Read `<rpiv-loop-root>/references/skill-authoring/skill-plan-guide.md`,按其指引替换阶段 2 的调研内容、补充结构设计决策、并在阶段 5.6 注入 skill 标准 AC 条目。含 `code` 时下方各阶段原样执行;`[code, skill]` 时两者叠加、互不遮蔽
3. 如果没有 frontmatter(旧文件),跳过状态更新
4. **版本替代检查**:检查是否存在同名特性的旧版本文件(如当前要创建 `plan-{name}-v2.md`,而 `plan-{name}.md` 已存在;或新建的 `feature-{name}-complete.md` 取代旧 todo `todo-{name}-refine.md`)。如果存在旧版本且状态不是 `superseded` / `archived`,**按文件类型分别处理**:
- **流程文件(PRD/Plan/validation 各类)**:使用 AskUserQuestion 询问用户是否将旧版本标记为 `superseded`。确认后更新旧文件 frontmatter:`status: superseded`,追加 `superseded_by: {新文件路径}`,更新 `updated_at`;同时建议在新文件反向加 `supersedes: {旧文件路径}` 形成双向闭环。
- **todo 文件**:todo **不支持** `superseded`(hook 会拒)。使用 AskUserQuestion 询问用户是否将被取代的旧 todo **直接归档**:确认后更新旧文件 frontmatter `status: archived`,追加 `superseded_by: {新文件路径}` 作为追溯笔记,更新 `updated_at`。这与 flow_status 对误标 superseded 的 todo 的自动归一化产出一致——就地 `status: archived` 即逻辑终态;archive 技能只归档 `completed`/`superseded`,不会再搬已 `archived` 的文件,故 `archived_at` 可不补、物理位置不强制。
### 阶段 1:功能理解
**深入功能分析:**
- 提取要解决的核心问题
- 识别用户价值和业务影响
- 确定功能类型:新功能/增强/重构/错误修复
- 评估复杂度:低/中/高
- 映射受影响的系统和组件
**创建用户故事格式或完善用户提供的故事:**
```
作为 <用户类型>
我想要 <行动/目标>
以便 <收益/价值>
```
### 阶段 2:代码库情报收集
**使用专门的代理和并行分析:**
**1. 项目结构分析**
- 检测主要语言、框架和运行时版本
- 映射目录结构和架构模式
- 识别服务/组件边界和集成点
- 定位配置文件(pyproject.toml、package.json 等)
- 查找环境设置和构建流程
**2. 模式识别**(在有益时使用专门的子代理)
- 在代码库中搜索类似的实现
- 识别编码约定:
- 命名模式(CamelCase、snake_case、kebab-case)
- 文件组织和模块结构
- 错误处理方法
- 日志记录模式和标准
- 提取功能领域的常见模式
- 记录要避免的反模式
- 检查 CLAUDE.md 以了解项目特定的规则和约定
**3. 依赖分析**
- 编录与功能相关的外部库
- 了解库的集成方式(检查导入、配置)
- 在 docs/、ai_docs/、rpiv/reference 或 ai-wiki(如果可用)中查找相关文档
- 注意库版本和兼容性要求
**4. 测试模式**
- 识别测试框架和结构(pytest、jest 等)
- 查找类似的测试示例作为参考
- 了解测试组织(单元测试 vs 集成测试)
- 注意覆盖率要求和测试标准
**5. 集成点**
- 识别需要更新的现有文件
- 确定需要创建的新文件及其位置
- 映射路由器/API 注册模式
- 如果适用,了解数据库/模型模式
- 如果相关,识别身份验证/授权模式
**澄清模糊之处:**
- 如果此时需求不清楚,在继续之前询问用户以澄清
- 获取具体的实施偏好(库、方法、模式)
- 在继续之前解决架构决策
### 阶段 3:外部研究与文档
**在有益时使用专门的子代理进行外部研究:**
**文档收集:**
- 研究最新的库版本和最佳实践
- 查找带有特定章节锚点的官方文档
- 定位实施示例和教程
- 识别常见的陷阱和已知问题
- 检查破坏性更改和迁移指南
**技术趋势:**
- 研究技术栈的当前最佳实践
- 查找相关的博客文章、指南或案例研究
- 识别性能优化模式
- 记录安全考虑
**编译研究参考:**
```markdown
## 相关文档
- [库官方文档](https://example.com/docs#section)
- 特定功能实施指南
- 原因:需要 X 功能
- [框架指南](https://example.com/guide#integration)
- 集成模式部分
- 原因:展示如何连接组件
```
### 阶段 4:深度战略思考
**深入思考:**
- 此功能如何融入现有架构?
- 关键依赖和操作顺序是什么?
- 可能出现什么问题?(边缘情况、竞争条件、错误)
- 如何全面测试?
- 存在哪些性能影响?
- 是否有安全考虑?
- 这种方法的可维护性如何?
**设计决策:**
- 在替代方法之间选择,并给出明确的理由
- 为可扩展性和未来修改而设计
- 如果需要,规划向后兼容性
- 考虑可扩展性影响
### 阶段 5:计划结构生成
**使用以下结构创建全面的计划:**
完整计划模板已按 progressive disclosure 抽出:Read `<rpiv-loop-root>/references/plan-feature/plan-template.md`,按其结构逐节填写。
模板章节骨架(字段细节以模板文件为准):功能描述 / 用户故事 / 问题陈述 / 解决方案陈述 / 功能元数据 / 上下文参考(必读文件・新建文件・相关文档・要遵循的模式)/ 实施计划(阶段 1-4)/ 逐步任务(DEPENDS_ON・IMPLEMENT・PATTERN・IMPORTS・GOTCHA・PROPAGATE・VALIDATE 字段)/ 测试策略 / 验证命令(级别 1-5)/ 验收标准 / 完成检查清单 / 备注
### 阶段 5.6:产出 acceptance.yaml(AC 对账的权威数据源)
**目的**:与 plan 文件同步生成结构化的 Gherkin 风格验收判据(AC),作为 `validate` 填写证据、`delivery-report` 门禁校验的唯一真实源。
**文件路径**:`rpiv/validation/<feature>/acceptance.yaml`(若目录不存在需一并创建)。
**plan 阶段职责**(本 SKILL 只写以下字段):
- `id`:全文件唯一,格式 `AC-NNN`(三位数字),**禁止重复**
- `given` / `when` / `then`:严格按 Gherkin 三段式书写
- `verification_method`:具体到命令 / 测试文件路径 / 脚本名,禁止"人工检查"这种泛词
- `blocking`:`true` 表示强约束项,交付前必须 passed 或 not_applicable;`false` 为软性目标
- `notes`(可选):额外上下文
**validate 阶段后续职责**(不要在 plan 阶段预填):
- `evidence`:执行 verification_method 后的具体证据(路径:行号 / 日志片段 / 截图文件名)
- `status`:`passed` / `failed` / `not_applicable`(初始留空,由 QA 翻状态)
**delivery-report 阶段职责**:只读 `acceptance.yaml`,**禁止修改任何字段**。`check_acceptance.py` 通过 `uv run --no-project python <rpiv-loop-root>/tools/check_acceptance.py <feature>` 校验后以退出码决定能否出具交付报告。
**质量门(plan 阶段自检清单)**:
- [ ] `acceptance.yaml` 条目数 ≥ 3
- [ ] 所有 `id` 唯一且连号
- [ ] 所有 `verification_method` 非空且具体
- [ ] 每个 `blocking: true` 项都配了可执行的 `verification_method`
- [ ] `given/when/then` 用祈使句描述系统行为,禁止"用户应该感觉良好"这种无法验证的措辞
**YAML 示例**:Read `<rpiv-loop-root>/references/plan-feature/acceptance-template-example.md`(最小可用示例,复制后替换内容);空白骨架另见 `<rpiv-loop-root>/tools/acceptance_template.yaml`,根键统一用 `criteria:`。
**产出约束**:
- 本章节要求 `acceptance.yaml` 与 plan.md **同一会话内产出**,缺一不可
- plan.md 的「验收标准」章节可保留对 plan 自身的 checklist,但强约束 AC 的**唯一权威源**是 `acceptance.yaml`
- 与 delivery-report 的 `check_acceptance.py` 构成闭环:plan 写骨架 → validate 翻状态 → delivery-report 校验通过才放行
---
## 输出格式
**文件名**:`rpiv/plans/plan-{kebab-case-feature-name}.md`
- 将 `{kebab-case-feature-name}` 替换为简短、描述性的功能名称
- 示例:`plan-user-authentication.md`、`plan-search-api.md`、`plan-database-refactor.md`
**目录**:如果不存在,创建 `rpiv/plans/`
### 文件格式
文件必须包含 YAML frontmatter 和内容:
```markdown
---
description: "功能实施计划: {feature-name}"
status: pending
created_at: {YYYY-MM-DDTHH:MM:SS}
updated_at: {YYYY-MM-DDTHH:MM:SS}
archived_at: null
related_files:
- rpiv/requirements/prd-{feature-name}.md # 如果存在相关 PRD
---
# {计划内容}
```
**Frontmatter 字段说明:**
- `description`: 文件描述
- `status`: 文件状态,新创建时固定为 `pending`
- `created_at`: 创建时间戳,ISO 8601 格式
- `updated_at`: 更新时间戳,创建时与 created_at 相同
- `archived_at`: 归档时间戳,创建时固定为 `null`
- `related_files`: 关联文件列表(如果存在相关 PRD 则添加)
### 完成后续
计划创建完成后:
1. 如果在前置检查中更新了 PRD 的状态,将其 status 从 `in-progress` 改为 `completed`
2. 更新 PRD 的 `updated_at` 时间戳
3. 提示用户:"计划已创建。相关 PRD 已标记为完成。"
4. 建议下一步:"建议 `/clear` 后执行 `/rpiv-loop:execute rpiv/plans/plan-{feature-name}.md` 开始实施。"
## 质量标准
### 上下文完整性 ✓
- [ ] 所有必要的模式已识别和记录
- [ ] 外部库使用已记录并附有链接
- [ ] 集成点已清晰映射
- [ ] 已捕获陷阱和反模式
- [ ] 每个任务都有可执行的验证命令
### 实施就绪 ✓
- [ ] 其他开发者可以在没有额外上下文的情况下执行
- [ ] 任务按依赖顺序排列(可以从上到下执行)
- [ ] 每个任务都是原子的且可独立测试
- [ ] 模式引用包括特定的文件:行号
### 模式一致性 ✓
- [ ] 任务遵循现有代码库约定
- [ ] 新模式有明确的理由说明
- [ ] 没有重新发明现有的模式或工具
- [ ] 测试方法符合项目标准
### 信息密度 ✓
- [ ] 无通用引用(全部具体且可操作)
- [ ] URL 在适用时包含章节锚点
- [ ] 任务描述使用代码库关键字
- [ ] 验证命令是非交互式可执行的
## 成功指标
**一次性实施**:执行代理可以在没有额外研究或澄清的情况下完成功能
**验证完整**:每个任务至少有一个有效的验证命令
**上下文丰富**:计划通过"无先验知识测试" - 不熟悉代码库的人可以仅使用计划内容进行实施
**信心分数**:#/10 表示执行将在第一次尝试时成功
## 报告
创建计划后,提供:
- 功能和方法的摘要
- 创建的计划文件的完整路径
- 复杂度评估
- 关键实施风险或考虑因素
- 一次性成功的估计信心分数
Ver no GitHub