用途:把串行的软件开发故事待办(backlog)转换为可同时开发且互不冲突的并发波次,并描述如何合并回主分支。该技能只产出计划,具体执行由外部开发工具完成。
主要能力:
- 依据史诗顺序、故事依赖映射、各故事的 Owned File/Module Scope 以及架构文档,构建依赖 DAG,并拓扑排序为受宽度上限约束的波次。
- 冲突分为三类:顺序边(史诗顺序、depends_on)、文件范围边(范围相交的故事不同波)、语义边(都涉及共享/横切模块,如 auth、config、DB schema、共享类型)。
- 三种意图:Create(首次规划)、Update(新增/完成/重划故事后重算)、Validate(复查既有计划是否仍文件不相交、依赖满足、未超上限并报告漂移)。
- 输出 parallelization-plan.md,可选 dependency-graph.json 与 waves.json;每个故事给出隔离的 git worktree 分支名与文件范围,并给出有序合并流程:按故事 id 升序合入 integration/wave-{N},经集成审查检查点后以单个 PR 合入 main,下一波从合并后的 main 分出。
必要用法(路径经 ${CLAUDE_PLUGIN_ROOT} 解析):
- 构建依赖图: python3 "${CLAUDE_PLUGIN_ROOT}/skills/bmad-parallel-plan/scripts/build-dependency-graph.py" --status "<output>/sprint-status.yaml" --stories "<output>/stories" --out "<output>/dependency-graph.json"
- 拓扑排序为受限波次: python3 "${CLAUDE_PLUGIN_ROOT}/skills/bmad-parallel-plan/scripts/plan-parallel-waves.py" --graph "<output>/dependency-graph.json" --max-parallel 3 --out "<output>/waves.json"
- 可选范围冲突检查: bash "${CLAUDE_PLUGIN_ROOT}/scripts/scope-conflict-check.sh" "<output>/stories/2.1.foo.story.md" "<output>/stories/2.2.bar.story.md" 随后用 templates/parallelization-plan.template.md 渲染计划并写入 <output>/parallelization-plan.md,另在 decision-log.md 追加一行记录 maxParallel、波数与因缺失范围而延后的故事。
输入:sprint-status.yaml、stories/{epic}.{story}.{slug}.story.md、architecture.md,以及配置 userConfig.maxParallel(默认 3)。只有状态为 ready-for-dev 或更晚的故事可进入波次。
限制:技能本身从不生成 worktree、不运行开发智能体、不写应用代码、不跑测试与 lint、不执行 git;分支名与合并顺序仅为建议。缺范围或范围为空的故事属于规划阻塞,须标出而非猜测。范围相交的故事不得同波,依赖未满足不得提前调度,不得超过 maxParallel。故事的验收标准、开发笔记与测试内容被锁定,不得修改。
本技能属于 BMAD Planning & Orchestrator 插件,隶属 aj-geddes/claude-code-bmad-skills,实现 BMAD Code Organization 的 BMAD Method 精神。