关于 bmad-sprint-planning
bmad-sprint-planning 是 BMAD Planning & Orchestrator 插件的 Phase 4 规划技能。它按依赖关系排列故事并分配并行波次,维护 sprint-status.yaml,不编写代码或跟踪速度。
主要功能
- 01读取规划文档和故事
- 02构建故事依赖关系图
- 03按依赖分配并行波次
- 04更新故事就绪状态
- 05支持只检查、不写入的排序验证
适用场景
- 01初始化 sprint-status.yaml
- 02找出可并行开发的就绪故事
- 03故事完成后重新安排顺序
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aj-geddes/ claude-code-bmad-skills --skill bmad-sprint-planning安装后在 Claude Code 中输入/bmad-sprint-planning确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/init-sprint-status.shsequence-stories.shtemplates/sprint-status.template.yaml详细介绍
BMAD Sprint Planning
角色: 排序与交接桥梁 — 第 4 阶段编排
系统记录源: bmad-output/sprint-status.yaml
此技能的功能
- 从
bmad-output/读取规划文档(PRD、架构、史诗、故事)。 - 推导所有故事之间的依赖关系图。
- 为每个故事分配一个
parallel_set(波次)——同一波次中的故事之间没有相互依赖,可以并行执行。 - 使用规范模板生成
bmad-output/sprint-status.yaml。 - 将第一波故事标记为
ready-for-dev;其他故事均保持backlog。 - 可按需重新排序,例如在故事完成或新增故事后。
此技能不会编写应用代码、运行测试、执行 lint、构建或审查差异。
三种意图操作
| 意图 | 触发短语 | 操作 |
|---|---|---|
| 创建 | "initialize sprint status", "first time" | 根据模板搭建新的 sprint-status.yaml |
| 更新 | "re-sequence", "story X is done", "add story", "update wave" | 在现有 sprint-status.yaml 中原位修改 |
| 验证 | "check sequencing", "are dependencies correct", "show wave plan" | 读取并报告,不写入 |
工作流 — 创建
-
加载规划文档
Glob: bmad-output/**/*.md, bmad-output/**/*.yaml优先顺序:
epics.md→prd.md→architecture.md→ 单个故事文件。 -
提取史诗和故事
- 解析所有故事 ID:格式为
{epic}.{story}.{slug}.story.md(例如,2.1.stripe-integration.story.md) - 根据
epics.md或prd.md中的史诗列表推导史诗顺序
- 解析所有故事 ID:格式为
-
构建依赖关系图
- 从每个故事的 frontmatter 或 Dev Notes 部分读取
dependencies[] - 拓扑排序:没有未满足依赖项的故事 → 第 1 波;第 1 波之后解除阻塞的故事 → 第 2 波;依此类推。
- 从每个故事的 frontmatter 或 Dev Notes 部分读取
-
初始化 sprint-status.yaml
bash ${CLAUDE_PLUGIN_ROOT}/skills/bmad-sprint-planning/scripts/init-sprint-status.sh然后填入排序后的数据(参见模板)。
-
对故事排序
bash ${CLAUDE_PLUGIN_ROOT}/skills/bmad-sprint-planning/scripts/sequence-stories.sh -
设置初始状态
- 第 1 波的故事:
status: ready-for-dev - 所有其他故事:
status: backlog - 史诗:若任何子故事已准备开发,则设为
status: in-progress;否则设为backlog
- 第 1 波的故事:
-
生成交接摘要 — 按
owned_scope列出第 1 波故事,以便无冲突地并行分派
工作流 — 更新
当故事转为 done 时:
- 从所有包含该故事的
dependencies[]列表中移除它 - 找出新解除阻塞的故事(其依赖现已全部满足)
- 将这些故事提升为
ready-for-dev - 重新评估父级史诗的状态
- 写入更新后的
sprint-status.yaml
并行集合分配
波次宽度(可同时执行的故事数量)并非固定数值,而是每个拓扑层级中无依赖前沿的大小。没有积分预算或速度上限。
Wave 1: all stories with no dependencies
Wave 2: all stories whose only dependencies are in wave 1
Wave N: all stories whose dependencies are fully in waves 1…(N-1)
同一波次中的故事,其 owned_scope 必须互不重叠,才能安全地并行分派。如果同一波次中的两个故事涉及同一个文件,则应将它们拆分到不同波次,或记录该冲突。
状态生命周期(视图,而非指标)
backlog → ready-for-dev → in-progress → review → done
- 这是排序状态的视图,而非跟踪工具。
- 状态转换由外部信号触发(开发工具报告、用户命令)。
- 此技能绝不会根据这些状态计算速度、燃尽情况或完成率。
自适应规模的轨道指导
| 轨道 | 故事数量 | Sprint-status 行为 |
|---|---|---|
| Quick Flow | 1–15 | 单轮波次分配;史诗结构精简 |
| BMAD Method | 10–50+ | 完整波次分配;按史诗分组 |
| Enterprise | 30+ | 多阶段波次规划;依赖关系图记录在 REFERENCE 中 |
生成状态文件前,会先与用户确认轨道。
子 Agent 策略
模式: 并行依赖分析
适用场景: 跨越 3 个以上 Epic 的 15 个以上故事
| Agent | 任务 | 输出 |
|---|---|---|
| Agent 1 | 解析所有故事文件,提取依赖声明 | bmad-output/context/dependency-raw.yaml |
| Agent 2 | 从 PRD/epics.md 解析 Epic 顺序 | bmad-output/context/epic-order.yaml |
| Agent 3 | 找出候选波次中的 owned_scope 冲突 | bmad-output/context/scope-conflicts.md |
主上下文:合并输出,运行拓扑排序,编写 sprint-status.yaml。
子 Agent 提示词示例
Task: Extract dependencies from all story files
Context: Read all *.story.md files under bmad-output/stories/
Objective: For each story, output its id and its dependencies[] list
Output: Write YAML list to bmad-output/context/dependency-raw.yaml
Format:
- id: "2.1.stripe-integration"
dependencies: ["1.3.user-auth"]
- id: "2.2.payment-webhook"
dependencies: ["2.1.stripe-integration"]
脚本
init-sprint-status.sh
如果 bmad-output/sprint-status.yaml 不存在,则根据模板生成该文件。
bash ${CLAUDE_PLUGIN_ROOT}/skills/bmad-sprint-planning/scripts/init-sprint-status.sh \
[project-name] [output-dir]
sequence-stories.sh
排列故事:先按 Epic 编号排列 Epic,再按依赖关系(拓扑排序)排列每个 Epic 中的故事,然后分配 parallel_set 整数。
bash ${CLAUDE_PLUGIN_ROOT}/skills/bmad-sprint-planning/scripts/sequence-stories.sh \
[sprint-status-file]
模板
${CLAUDE_PLUGIN_ROOT}/skills/bmad-sprint-planning/templates/sprint-status.template.yaml
字段:epics[]、stories[](包含 id、title、status、dependencies、parallel_set、owned_scope)。该模板不包含速度、燃尽图或点数字段。
关键指南
- 先加载上下文——写入前始终先读取现有的
sprint-status.yaml - 使用 TodoWrite跟踪多步骤排序工作流
- 尊重 owned_scope——分配同一波次成员前标记冲突
- 不包含指标——如果某个字段类似速度、点数或燃尽图数据,请将其删除
- 清晰交接——每次创建/更新结束时,列出
ready-for-dev故事及其owned_scope - 决策日志——将排序决策追加到
bmad-output/decision-log.md
属于 BMAD Planning & Orchestrator 插件的一部分——这是一个面向 BMAD Method 的 Claude Code 框架,由 BMAD Code Organization 开发(https://github.com/bmad-code-org/BMAD-METHOD)。体现了
bmad-sprint-planning的理念。所有方法论的荣誉均归 BMAD Code Organization 所有。