关于 bmad-epics-and-stories
bmad-epics-and-stories 是 BMAD Planning & Orchestrator 插件中的规划工作流,将已批准的规划文档拆分为 epic 地图和可交给外部开发工具的 story 文件。适用于需要创建、更新或验证开发待办的团队;它强调范围约束、故事依赖与冲突检查,不编写或执行代码。
主要功能
- 01从 PRD 和架构文档生成 epic 与故事
- 02支持创建、更新和验证三种意图
- 03按轨道调整拆分方式与故事规模
- 04为故事定义验收标准和文件范围
- 05检查故事文件范围冲突
- 06将故事标记为 ready-for-dev 后移交
适用场景
- 01把已批准的需求拆分为可执行故事
- 02更新故事内容并遵守锁定章节
- 03检查草稿故事是否符合上下文对象规范
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aj-geddes/ claude-code-bmad-skills --skill bmad-epics-and-stories安装后在 Claude Code 中输入/bmad-epics-and-stories确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFERENCE.mdscripts/generate-story-id.shtemplates/epic.template.mdstory.template.md详细介绍
BMAD 史诗与用户故事
跟踪类型自适应拆分。 将已批准的规划文档转化为可执行的待办列表:一份
epics.md 映射文件,以及每个用户故事对应的上下文对象。这是最后一个规划步骤——接下来接触用户故事的将是外部开发工具,而不是此插件。
角色风格: 架构师(Winston)负责拆分;产品经理(John)确认范围。仅采用轻量风格——这是一个工作流。
范围准则(请先阅读)
此技能负责规划。它绝不会编写应用程序代码、运行测试、执行代码检查、检查覆盖率或构建。它生成的最后一个产物是标记为 status: ready-for-dev 的用户故事文件。验收标准、测试策略和开发说明都是你编写的规划输出。执行测试或编写实现代码不在范围内——请做好规划并交接。如果你想要“实现”或“运行测试套件”,请立即停止。
输入(请先加载这些文件)
| 文件 | 用途 |
|---|---|
bmad-output/project-context.md | 项目章程——每次运行都要加载 |
bmad-output/prd.md | 功能需求、史诗意图 |
bmad-output/architecture.md | 技术栈、组件、模块边界 |
bmad-output/ux-design.md(如果存在) | UI 验收详情 |
bmad-output/decision-log.md | 需要遵循的相关决策 |
现有的 bmad-output/stories/*.story.md | 经验总结与 ID 连续性 |
输出文件夹默认为 bmad-output/(遵循用户指定的覆盖值)。用户故事放在
bmad-output/stories/,映射文件放在 bmad-output/epics.md。
三种意图
- 创建 — 将 PRD 和架构拆分到
epics.md,然后编写用户故事文件。 - 更新 — 修改现有用户故事(范围、验收标准、经验总结)。遵循 LOCKED 部分。
- 验证 — 根据 Context Object 契约检查用户故事草稿,并报告缺漏。
如果意图不明确,请询问。不要擅自重新生成现有用户故事。
轨道(切勿编号分级)
通过交互选择;启发式规则提供建议,由用户确认。
- Quick Flow(1-15 个用户故事)——仅限 tech-spec;直接拆分为用户故事,
epics.md保持精简。 - BMad Method(10-50+ 个)——PRD + Architecture(+ 可选的 UX);先生成完整史诗映射,再编写用户故事。
- Enterprise(30+ 个)——增加 Security + DevOps 用户故事流。
规模规则(按数量计算,不使用点数)
一个用户故事必须小到能在一次 Agent 会话中完成——大约 2-8 小时,最多一个工作日。 如果用户故事规模更大,就将其拆分;切勿为了填满一个冲刺而扩大范围。这里没有斐波那契点数、没有速度指标,也没有燃尽图。交付情况按数量跟踪:剩余用户故事数与完成速率。拆分启发式规则请参阅 REFERENCE.md。
工作流 — 创建
- 加载上下文 — 阅读以上输入;注意所选轨道。
- 推导史诗 — 将 PRD 需求归纳为史诗(每个史诗都是一个可交付的价值切片)。
根据 templates/epic.template.md 编写
bmad-output/epics.md: 史诗目标、范围内的需求(附引用)、按顺序排列的故事列表、跨史诗依赖项。 - 确认 史诗规划图,并在编写故事前征求用户确认。
- 生成 ID —
bash ${CLAUDE_PLUGIN_ROOT}/skills/bmad-epics-and-stories/scripts/generate-story-id.sh <epic-number>会给出下一个{epic}.{story}和一个 slug 占位文本。文件名:{epic}.{story}.{slug}.story.md。 - 编写每个故事,将其作为上下文对象,依据
templates/story.template.md 编写。它必须自包含
(约 8K 个 token),确保开发 Agent 无需查看其他文件。填写每个部分:
- 故事 — 作为……/我想要……/以便……。
- 验收标准 — 编号列出且可测试。已锁定。
- 任务/子任务 — 使用复选框;每项通过
(AC: #N)对应一项验收标准。 - 开发备注 — 提供具体指导并附带来源引用(例如:
[Source: architecture.md#auth-service]、[Source: prd.md#FR-12])。已锁定。 - 测试 — 仅提供策略(需要验证的内容、测试类型、测试夹具)。不执行测试。已锁定。
- 依赖关系图 — 被哪些故事阻塞 / 会阻塞哪些其他故事 ID。
- 负责的文件/模块范围 — 明确列出本故事可以修改的路径。这是实现无冲突并行调度的关键;请精确声明。参见 REFERENCE.md。
- 从先前故事中汲取的经验 — 纳入已完成同级故事中的经验。
- 开发 Agent 记录 — 留空,供外部开发工具填写。
- 范围冲突检查 — 对新增或已编辑的故事运行共享检查器:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/scope-conflict-check.sh bmad-output/stories/解决任何负责范围重叠的问题,再将故事标记为可安全并行处理。 - 设置状态 — 编写时设为
backlog;只有在每个部分都已完成、验收标准可测试、范围已声明且冲突检查通过后,才改为ready-for-dev。 - 记录并交接 — 将决策追加到
decision-log.md;告知用户哪些故事已处于ready-for-dev状态,并交接给外部开发工具。不要实施。
工作流 — 更新 / 验证
- 更新: 按 ID 定位文件,可自由编辑未锁定的部分。更改已锁定部分(验收标准/开发备注/测试)需获得用户明确确认,并在决策日志中记录。若负责范围有变更,则重新运行范围冲突检查。
- 验证: 对每个故事确认所有必需部分均存在、每项任务都引用了一项验收标准、开发备注包含来源引用、负责范围非空且无冲突、状态合法。报告通过/未通过清单;除非用户要求,否则不要编辑。
状态生命周期
backlog → ready-for-dev → in-progress → review → done。此技能只负责
backlog 和 ready-for-dev。交接后的所有工作均由外部开发工具负责。
已锁定部分 — 合约
验收标准、开发备注和测试均为已锁定部分。故事模板规定,外部开发工具不得编辑这些部分。它们是编写完成且附有引用的事实依据。
子 Agent 策略
模式: 并行生成部分/故事 — 每个史诗或独立故事分配一个 Agent。
| Agent | 任务 | 输出 |
|---|---|---|
| Agent N | 为史诗 N 编写作为完整上下文对象的故事 | bmad-output/stories/N.*.story.md |
协调:将共享上下文(PRD/架构/轨道/规模规则)写入
bmad-output/context/sharding-context.md;为每个史诗分配一个 Agent;返回后,主上下文会对所有故事运行范围冲突检查,并在任何故事标记为 ready-for-dev 之前解决重叠问题。
示例提示词:
Task: Compile stories for Epic 2 (Payments) as context objects.
Context: read bmad-output/context/sharding-context.md.
For each story: number AC, map every Task to an AC (AC: #N), cite Dev Notes to
prd.md/architecture.md sections, declare an explicit Owned File/Module Scope, leave
Dev Agent Record empty. Size to one dev-day; split anything larger. NO story points.
Output: bmad-output/stories/2.*.story.md, status: backlog.
参考
- REFERENCE.md — 分片方法、规模/拆分规则、范围声明规范。
- templates/epic.template.md
- templates/story.template.md
${CLAUDE_PLUGIN_ROOT}/skills/bmad-epics-and-stories/scripts/generate-story-id.sh— 下一个{epic}.{story}ID + slug。${CLAUDE_PLUGIN_ROOT}/scripts/scope-conflict-check.sh— 共享的 Owned-Scope 重叠检查器。
属于 BMAD Planning & Orchestrator 插件的一部分 — 由 BMAD Code Organization 为 BMAD Method 打造的 Claude Code 执行框架(https://github.com/bmad-code-org/BMAD-METHOD)。实现了
bmad-create-epics-and-stories的理念。所有方法论方面的致谢均归 BMAD Code Organization 所有。