计划评审技能Skill plan-review

该技能用于基于研究发现评审和调整产品需求文档(PRD)计划,涉及敏捷开发、故事修改、计划优化等。关键词:计划评审、PRD调整、敏捷开发、产品管理、故事修改、研究分析。

敏捷开发 0 次安装 0 次浏览 更新于 3/15/2026

名称: 计划评审技能 描述: “基于研究发现评审和调整PRD计划。在研究完成后使用,以评估故事修改。触发于:评审计划、调整故事、基于研究更新PRD。”

计划评审技能

评估研究发现并决定是否调整PRD中的即将到来的故事。


工作内容

  1. 阅读当前故事的研究报告
  2. 评估发现是否影响当前或未来故事
  3. 决定计划修改(如果有)
  4. 更新 prd.json 并记录更改
  5. changeLog 中记录所有更改
  6. 确保计划保持连贯和可实现

何时修改计划

当研究揭示以下内容时修改故事:

  • 比原计划更好的技术方法
  • 缺失的先决步骤
  • 应拆分的故事(太大不适合一个上下文)
  • 可合并的故事(太小,紧密耦合)
  • 依赖关系改变需要重新排序
  • 新边缘情况需要额外验收标准

当以下情况时不要修改:

  • 发现有趣但不影响实现
  • 更改会使已完成故事无效
  • 修改是范围蔓延(超出原PRD目标)

计划修改类型

1. 修改现有故事

更新验收标准、描述或研究主题。

{
  "timestamp": "2026-01-29T12:00:00Z",
  "storyId": "US-002",
  "action": "modified",
  "reason": "研究发现现有徽章组件支持优先级颜色,简化实现",
  "changes": {
    "acceptanceCriteria": {
      "removed": ["创建新的PriorityBadge组件"],
      "added": ["复用Badge组件并带有优先级颜色变体"]
    }
  }
}

2. 添加新故事

插入先决或后续故事。

{
  "timestamp": "2026-01-29T12:00:00Z",
  "storyId": "US-001.5",
  "action": "added",
  "reason": "研究显示需要对优先级列添加数据库索引以提高过滤性能",
  "insertAfter": "US-001"
}

3. 拆分故事

将故事分解为更小的部分。

{
  "timestamp": "2026-01-29T12:00:00Z",
  "storyId": "US-003",
  "action": "split",
  "reason": "故事太大 - 将下拉组件与保存逻辑分离",
  "splitInto": ["US-003a", "US-003b"]
}

4. 重新排序故事

基于新依赖关系更改优先级/顺序。

{
  "timestamp": "2026-01-29T12:00:00Z",
  "storyId": "US-004",
  "action": "reordered",
  "reason": "URL状态管理需要在过滤器实现之前完成",
  "newPriority": 2,
  "previousPriority": 4
}

5. 移除故事

标记故事为不必要(无法移除已完成故事)。

{
  "timestamp": "2026-01-29T12:00:00Z",
  "storyId": "US-005",
  "action": "removed",
  "reason": "研究发现此功能在代码库中已存在"
}

计划评审流程

步骤1:阅读研究报告

scripts/aha-loop/research/[story-id]-research.md 加载研究报告

关注:

  • 实施建议
  • 替代方案比较(如果建议与计划不同)
  • 后续研究需求
  • 发现的问题

步骤2:评估影响

针对每个发现,询问:

  1. 这影响当前故事吗?

    • 如果需要,更新验收标准
    • 添加实施笔记
  2. 这影响未来故事吗?

    • 检查依赖关系是否改变
    • 检查是否需要新先决条件
    • 检查是否有故事可以简化/移除
  3. 这揭示范围问题吗?

    • 故事太大?拆分它。
    • 故事太小?与相关故事合并。
    • 缺失故事?添加它们。

步骤3:起草更改

修改 prd.json 前:

  1. 列出所有提议更改
  2. 确认未影响已完成故事
  3. 确保更改保持逻辑故事顺序
  4. 检查所有故事在一个上下文窗口中可实现

步骤4:更新prd.json

首先备份(通过aha-loop.sh自动,但需验证)。

应用更改到 prd.json

// 示例:添加故事
{
  "id": "US-001.5",
  "title": "为优先级过滤添加数据库索引",
  "description": "作为开发者,我需要优先级列上的索引以支持高效过滤。",
  "acceptanceCriteria": [
    "在tasks.priority列创建索引",
    "迁移运行无误",
    "类型检查通过"
  ],
  "priority": 1.5,  // 后续会归一化
  "passes": false,
  "researchTopics": [],
  "researchCompleted": true,  // 简单索引无需研究
  "learnings": "",
  "implementationNotes": "在US-001研究中发现过滤查询需要此索引",
  "notes": ""
}

添加到changeLog:

{
  "changeLog": [
    // ... 现有条目
    {
      "timestamp": "2026-01-29T12:00:00Z",
      "storyId": "US-001.5",
      "action": "added",
      "reason": "US-001研究揭示需要索引以支持高效优先级过滤(US-004)",
      "researchSource": "scripts/aha-loop/research/US-001-research.md"
    }
  ]
}

步骤5:归一化优先级

修改后,确保优先级连续:

// 之前: [1, 1.5, 2, 3, 4]
// 之后: [1, 2, 3, 4, 5]

安全规则

绝对不要:

  • 删除或修改 passes: true 的故事
  • 添加超出原PRD目标的范围
  • 创建故事间循环依赖
  • 未记录在 changeLog 中做更改

总是:

  • 记录每个更改原因
  • 引用研究来源
  • 保持依赖顺序(模式 → 后端 → UI)
  • 保持故事大小适合一个上下文窗口

评审报告模板

计划评审后,追加到 progress.txt

## 计划评审 - [日期/时间]

### 分析的研究
- [故事 ID]: [研究报告路径]

### 所做更改

**[动作类型]: [故事 ID]**
- 原因: [为什么需要此更改]
- 影响: [影响内容]

### 无更改(如果适用)
- 研究发现无需计划修改
- 原因: [为什么无需更改]

### 更新故事顺序
1. US-001: [标题] ✓ (已完成)
2. US-001.5: [标题] (新增)
3. US-002: [标题]
...

---

示例:完整计划评审

场景: US-001(添加优先级到数据库)研究揭示:

  1. 需要索引以提高过滤性能
  2. 现有徽章组件可复用
  3. URL状态管理模式已存在于代码库

更改:

  1. 添加 US-001.5 - 在优先级列创建索引

    • 原因: 过滤查询(US-004)无索引会慢
  2. 修改 US-002 - 更新验收标准

    • 移除: “创建PriorityBadge组件”
    • 添加: “复用Badge组件并带有’priority’变体属性”
  3. 修改 US-004 - 添加实施笔记

    • 笔记: “使用来自src/hooks/的现有useUrlState钩子”

无需重新排序 - 依赖关系未变。


检查清单

完成计划评审前:

  • [ ] 研究报告完全分析
  • [ ] 所有影响故事识别
  • [ ] 未修改已完成故事
  • [ ] 更改记录在 changeLog
  • [ ] 优先级归一化
  • [ ] 依赖关系仍有效
  • [ ] 所有故事在一个上下文窗口中可实现
  • [ ] 评审摘要添加到 progress.txt