Skip to main content

rpiv-loop-plan-feature

通过深入的代码库分析和研究创建全面的功能计划

Zur Installation springen

Quellinformationen

Repository
zhuqingxun/zqxbase
Letzte Quellaktivität
9. September 2026 um 07:14
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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 表示执行将在第一次尝试时成功 ## 报告 创建计划后,提供: - 功能和方法的摘要 - 创建的计划文件的完整路径 - 复杂度评估 - 关键实施风险或考虑因素 - 一次性成功的估计信心分数
Auf GitHub ansehen