其他
实现前检查规划就绪度并生成或维护 sprint 状态文件
适用于在开始实现前检查规划是否足够可实施,并从 epics 生成、查看、校验或修复 sprint-status.yaml 的 BMad sprint 规划流程。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
实现前检查规划就绪度并生成或维护 spr特定
解决思路
- 以资深开发者即将承诺该计划的心态,先像怀疑者阅读交接材料一样审视规划,趁缺口代价低时发现它们。
- 然后再把机械工作交给脚本:解析 epics、推导 keys、合并状态、写入 `sprint-status.yaml`。
- 把判断力用在脚本无法处理的地方:决定哪些文件是 epics、权衡就绪度、协调脚本标记的问题。
- 激活时先解析 customization:运行 `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`。
- 若上述脚本未找到:说明 BMad 未在此设置;提供运行 `bmad` skill 的 setup;若尚无 `bmad`,先安装 `npx skills add bmad-code-org/BMAD-METHOD --skill bmad`,然后重新运行命令。
- 若出现其他失败:直接读取 `{skill-root}/customize.toml` 并使用默认值。
- 按顺序执行 `{workflow.activation_steps_prepend}` 中每一项。
- 将 `{workflow.persistent_facts}` 中每一项视为本次运行剩余部分的基础上下文。
- 对 `{workflow.persistent_facts}` 中以 `file:` 为前缀的条目,按 `{project-root}` 下的路径或 glob 加载引用内容作为事实。
- 对其他 `{workflow.persistent_facts}` 条目,逐字作为事实使用。
- 解析配置:运行 `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.project_name --key modules.bmm.planning_artifacts --key modules.bmm.implementation_artifacts --key modules.bmm.project_knowledge`。
- 将 `{date}` 设为当前系统日期时间。
- 问候用户,检测意图,并只加载该意图需要的内容。
- 若意图为 `readiness`:只检查实现就绪度,加载 `references/readiness-gate.md`,运行 gate,报告,然后停止。
- 若意图为 `sprint-planning`:执行完整流程,也是已有 `sprint-status.yaml` 的刷新路径;加载 `references/readiness-gate.md`,PASS 后加载 `references/generate-tracking.md`。
- 若意图为 `status`(例如用户说 “show sprint status” 或 “where are we”):跳过 gate,加载 `references/status-view.md`。
- 若意图为 `validate`:加载 `references/validate.md`,检查跟踪文件格式。
- 若意图为 `fix`:加载 `references/fix-sprint-status.md`,修复或重建损坏的 `sprint-status.yaml`。
- 若为交互式且意图不明确,向用户提问;无头行为见 Headless Mode。
- 按顺序执行 `{workflow.activation_steps_append}` 中每一项。
- 激活完成;若 `activation_steps_prepend` 或 `activation_steps_append` 非空,在继续前确认每一项都已按顺序执行。
- 若 `sprint_plan.py` 报错或文件处于其无法处理的状态,此规则覆盖每种意图:不要停在错误处,也不要静默猜测。
- 自己读取文件,按最佳判断交付相同结果,告知用户确定性路径失败及其原因,并提供 fix 流程 `references/fix-sprint-status.md` 来恢复脚本可处理的文件。
- 无论何种意图,按已加载的 reference 收尾,然后若 `{workflow.on_complete}` 非空则运行它。
- 将 `{workflow.on_complete}` 为字符串标量时视为一条指令;为数组时视为指令序列。
- 无头模式被调用时不要询问;运行 gate,并且除非意图仅为 readiness,否则生成 tracking。
- 无头模式下,对交互流程会通过询问解决的歧义(重复 epic 版本、未协调的 orphan、未确认的 fix),以 `blocked` 状态停止,而不是猜测。
- 无头模式结束时返回 JSON 响应,字段包含 `status`、`intent`、`gate`、`status_file`、`findings`、`warnings`。
- 在 JSON 中,`gate` 取 `PASS`、`CONCERNS` 或 `FAIL`;若为 `FAIL`,包含 `findings` 和已写入的 findings 路径(如已写入),并省略 `status_file`。
- 在 JSON 中,`intent` 取 `readiness`、`sprint-planning`、`status`、`validate` 或 `fix`;对 status 和 validate 意图,省略 `gate`,并把脚本 JSON 通过 `report` 键传回(不要用 `status`,它表示运行状态)。
- 使用 `scripts/sprint_plan.py` 作为确定性解析器/生成器/合并器;它支持子命令 `generate`、`status`、`validate`。
- 把 `scripts/sprint_plan.py` 的 JSON 输出视为本技能读取的契约;argparse 错误也是 JSON。
- 加载 `references/readiness-gate.md` 获得 PASS/CONCERNS/FAIL gate:工件清单与可实施性问题。
- 加载 `references/generate-tracking.md` 获得 epic 发现、generate 命令以及如何根据其 JSON 报告行动。
- 加载 `references/status-view.md` 获得状态视图:计数、风险、未完成行动项、下一推荐动作。
- 加载 `references/fix-sprint-status.md` 重建损坏 tracking 文件:收集证据的子代理、用户确认、原始干净重建。
- 加载 `references/validate.md` 对已有 `sprint-status.yaml` 做格式校验。
- 参考 `sprint-status-template.yaml`:它记录文件格式与状态词汇;脚本嵌入同一块,测试套件将两份副本绑定在一起。
适用边界 · 注意事项
- 未配置 BMad 环境且无法安装 `bmad` 或运行 `uv` 时。
- 没有可解析的 epics 或 planning artifacts 时。
- 必须以 headless 自动运行且不能接受歧义被标记为 `blocked` 时。