关于 ln-200-scope-decomposer
用于新计划的顶层编排技能,面向需要将范围拆分为 Epic 和 Story 的团队。它依次委派 Epic 创建、各 Epic 的 Story 拆分,并可选执行 RICE 优先级排序。
主要功能
- 01发现团队 ID
- 02委派 Epic 拆分
- 03逐个 Epic 拆分 Story
- 04可选 RICE 优先级排序
- 05汇总结果与后续步骤
适用场景
- 01将新计划端到端拆分为 Epic 和 Story
- 02按顺序为多个 Epic 创建 Story
- 03为 Epic 中的 Story 执行可选优先级排序
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-200-scope-decomposer安装后在 Claude Code 中输入/ln-200-scope-decomposer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/coordinator_runtime_contract.mdcoordinator_summary_contract.mdepic_plan_summary_contract.mdmeta_analysis_protocol.mdnumbering_conventions.mdscope_decomposition_runtime_contract.mdscope_decomposition_summary_contract.mdreferences/scripts/coordinator-runtime/lib/artifacts.mjscli-helpers.mjscore.mjsloop-health.mjsruntime-constants.mjsschemas.mjsvalidate.mjsworker-guards.mjsworker-runtime.mjsreferences/scripts/epic-planning-runtime/cli.mjsreferences/scripts/epic-planning-runtime/lib/guards.mjsphases.mjsstore.mjsreferences/scripts/planning-runtime/lib/cli.mjsguards.mjsstore.mjsreferences/scripts/planning-worker-runtime/cli.mjsreferences/scripts/planning-worker-runtime/lib/guards.mjsphases.mjsstore.mjsreferences/scripts/scope-decomposition-runtime/cli.mjsreferences/scripts/scope-decomposition-runtime/lib/guards.mjsphases.mjs详细介绍
路径: 文件路径(
references/、../ln-*)均相对于此技能目录。
范围分解器(顶层编排器)
类型: L1 顶层编排器 类别: 2XX 规划
用于将完整计划从范围分解为用户故事的顶层编排器,负责协调 Epic 和 Story 协调器。
用途
此技能的功能
协调新计划的完整分解流程:
- 从 kanban_board.md 自动发现 Team ID
- 阶段 1: 发现(Team ID)
- 阶段 2: Epic 分解(委派给 ln-210-epic-coordinator)
- 阶段 3: Story 分解循环(批量预计算只读输入,然后按 Epic 顺序逐一委派给 ln-220-story-coordinator)
- 阶段 4: RICE 优先级排序循环(可选,预计算子级运行时输入,然后按适用的 Epic 顺序逐一委派给 ln-230-story-prioritizer)
- 阶段 5: 总结(总数 + 后续步骤)
运行时契约
必须阅读: 加载 references/coordinator_runtime_contract.md、references/scope_decomposition_runtime_contract.md、references/scope_decomposition_summary_contract.md、references/epic_plan_summary_contract.md、references/coordinator_summary_contract.md
运行时系列:scope-decomposition-runtime
标识符:
- 范围标识符
阶段:
PHASE_0_CONFIGPHASE_1_DISCOVERYPHASE_2_EPIC_DECOMPOSITIONPHASE_3_STORY_LOOPPHASE_4_PRIORITIZATION_LOOPPHASE_5_FINALIZEPHASE_6_SELF_CHECK
协调器总结契约:
- 使用来自
ln-210的epic-plan - 使用来自
ln-220的story-plan - 使用来自
ln-230的story-prioritization-worker - 在
PHASE_5_FINALIZE期间写入最终的scope-decomposition协调器总结
工作器调用(必须)
宿主技能调用: 必须通过 Skill(skill: "...", args: "...") 委派。
- Claude:严格按所示调用 Skill 工具。
- Codex:如果没有 Skill 工具,则在可用技能中找到指定技能,读取其
SKILL.md,将args视为$ARGUMENTS,执行该技能工作流,然后带着结果/产物返回此处。 - 不要内联工作器逻辑,也不要在未执行目标技能的情况下将工作器标记为完成。
按阶段委派的工作器:
- 阶段 2:
ln-210-epic-coordinator— Epic 分解(CREATE/REPLAN) - 阶段 3:
ln-220-story-coordinator— 按 Epic 进行 Story 分解(顺序执行) - 阶段 4:
ln-230-story-prioritizer— 按 Epic 进行可选的 RICE 优先级排序(顺序执行)
# Phase 2 — Epic decomposition
node references/scripts/epic-planning-runtime/cli.mjs start --identifier {scopeIdentifier} --manifest-file {epicManifestPath}
Skill(skill: "ln-210-epic-coordinator", args: "{scopeIdentifier} --manifest-file {epicManifestPath}")
node references/scripts/scope-decomposition-runtime/cli.mjs record-epic-summary --identifier {scopeIdentifier} --payload-file {epicSummaryArtifactPath}
# Phase 3 — Story decomposition (per Epic, sequential)
node references/scripts/story-planning-runtime/cli.mjs start --epic {epicId} --manifest-file {storyManifestPath}
Skill(skill: "ln-220-story-coordinator", args: "{epicId} --manifest-file {storyManifestPath}")
node references/scripts/scope-decomposition-runtime/cli.mjs record-story-summary --identifier {scopeIdentifier} --payload-file {storySummaryArtifactPath}
# Phase 4 — RICE prioritization (optional, per Epic, sequential)
node references/scripts/planning-worker-runtime/cli.mjs start --skill ln-230 --identifier {identifier} --manifest-file {prioritizationManifestPath} --run-id {childRunId} --summary-artifact-path {childSummaryArtifactPath}
child_run = { skill, run_id, identifier, summary_artifact_path }
childSummaryArtifactPath = .hex-skills/runtime-artifacts/runs/{parent_run_id}/story-prioritization-worker/ln-230--{identifier}.json
Skill(skill: "ln-230-story-prioritizer", args: "{identifier} --epic {epicId} --run-id {childRunId} --summary-artifact-path {childSummaryArtifactPath}")
Read {childSummaryArtifactPath}
node references/scripts/scope-decomposition-runtime/cli.mjs record-prioritization-summary --identifier {scopeIdentifier} --payload-file {childSummaryArtifactPath}
TodoWrite 格式(必须)
- Phase 1: Discover top-level scope context (pending)
- Phase 2: Run Epic decomposition (pending)
- Phase 3: Run sequential Story loop (pending)
- Phase 4: Run optional prioritization loop (pending)
- Phase 5: Finalize scope summary (pending)
- Phase 6: Self-check (pending)
何时使用此技能
以下情况应使用此技能:
- 启动需要完整分解的新计划(范围 → Epic → Story)
- 在单个工作流中自动创建 Epic 和 Story
- 相较于手动逐步调用,更倾向于完整流程
- 为新项目采用高效省时的方式(端到端需要 2-3 小时)
替代方案: 如需精细控制,可手动调用协调器:
- ln-210-epic-coordinator - 创建/重新规划 Epic
- ln-220-story-coordinator - 创建/重新规划 Story(每个 Epic 调用一次)
- ln-230-story-prioritizer - RICE 优先级排序(每个 Epic 调用一次)
何时不应使用
以下情况不要使用:
- 计划已有 Epic → 改用 ln-210-epic-coordinator 的 REPLAN 模式
- 需要重新规划现有 Story → 针对每个 Epic 使用 ln-220-story-coordinator 的 REPLAN 模式
- 只需创建 Epic → 直接使用 ln-210-epic-coordinator
- 只需为特定 Epic 创建 Story → 直接使用 ln-220-story-coordinator
核心概念
编排器模式
ln-200-scope-decomposer 是纯协调器——不会直接执行工作:
- ✅ 发现上下文(Team ID)
- ✅ 做出路由决策(要调用哪个协调器)
- ✅ 通过 Skill 工具委派所有工作(ln-210、ln-220、ln-230)
- ✅ 管理工作流状态(创建 Epic → Story 循环)
- ❌ 不会研究项目文档(由 ln-210 执行)
- ❌ 不会生成 Epic/Story 文档(由 ln-210/ln-220 执行)
- ❌ 不会创建跟踪器议题(协调器通过已配置的提供方执行)
- ❌ 不会提示用户(所有用户交互均由协调器处理)
协调器:
- **ln-210-epic-coordinator:**创建 3-7 个 Epic(如适用,为基础设施创建 Epic 0,为业务领域创建 Epic 1-N)
- **ln-220-story-coordinator:**为每个 Epic 创建 5-10 个 Story(包含内联标准研究)
按顺序分解 Story
**关键约束:**Epic N 的 Story 必须全部完成后,才能开始 Epic N+1(ln-220 包含用户交互——交互式对话无法跨 Epic 并行处理)。
为何按顺序执行?
- ln-220-story-coordinator 包含用户交互(确认 Story 预览)
- 交互式对话无法并行处理(用户必须审核每个 Epic 的 Story)
- 确保 Epic N 的 Story 在开始 Epic N+1 之前已获批准并创建
- 可以先批量准备只读内容(Epic 元数据、子项清单、制品路径),但 Story 创建本身仍须按顺序执行
**示例:**6 个 Epic → 依次调用 ln-220 共 6 次(Epic 0 → Epic 1 → Epic 2 → ... → Epic 5)
基础设施 Epic = Epic 0
**预留编号:**Epic 0 预留给基础设施 Epic(如果 ln-210 提出)。
编号方式:
- 如果存在基础设施 Epic → Epic 0(基础设施),Epic 1-N(业务领域)
- 否则 → Epic 1-N(仅业务领域)
**决策:**ln-210-epic-coordinator Phase 1 Step 3 会自动确定是否需要基础设施 Epic(新项目、多技术栈、安全/监控要求)。
自动发现
Team ID:从 docs/tasks/kanban_board.md 的 Tracker Configuration 表自动发现(参见 CLAUDE.md“配置自动发现”)。
**回退方案:**如果缺少 kanban_board.md → ln-210-epic-coordinator 将直接询问用户
工作流
Phase 1:发现(自动)
从 docs/tasks/kanban_board.md 自动发现 Team ID。
验证:
- Team ID 存在于 kanban_board.md 中
- 如果缺失 → 跳过(ln-210 将向用户询问)
编排器层级不会要求用户确认——所有用户交互均由协调器处理。
**输出:**Team ID(如果未找到则为 None)
Phase 2:Epic 分解(委派)
**目标:**为计划创建所有 Epic。
由协调器启动:
🔄 [ORCHESTRATOR] Phase 2: Delegating Epic creation to ln-210-epic-coordinator
node references/scripts/epic-planning-runtime/cli.mjs start --identifier {scopeIdentifier} --manifest-file {epicManifestPath}
child_run = { skill: "ln-210", run_id, identifier, summary_artifact_path }
node references/scripts/scope-decomposition-runtime/cli.mjs record-epic-summary --identifier {scopeIdentifier} --payload-file {epicSummaryArtifactPath}
ln-210-epic-coordinator 将:
- Phase 1:研究项目文档(requirements.md、architecture.md、tech_stack.md)
- Phase 2:自动提出领域和基础设施 Epic(Epic 0)→ 用户确认领域列表
- Phase 3:制定理想的 Epic 计划(Epic 0-N)
- Phase 5a:从文档中自动提取 Q1-Q4 → 生成所有 Epic 文档 → 显示批量预览 → 用户确认 → 创建所有 Epic
- 返回:Epic URL 和摘要
**完成后:**通过已配置的跟踪器提供方创建 Epic,并更新 kanban_board.md。
**输出:**创建 3-7 个 Epic(如适用,为基础设施创建 Epic 0,为业务领域创建 Epic 1-N)
Phase 3:Story 分解循环(顺序执行,委派)
**目标:**为每个 Epic 创建 Story。先准备一次只读子项输入,然后按顺序执行 Epic 循环。
顺序循环逻辑:
PREPARE once:
1. Read epic-plan summary
2. Precompute story child identifiers
3. Precompute manifest paths + summary artifact paths
FOR EACH Epic (Epic 0, Epic 1, ..., Epic N):
1. Invoke ln-220-story-coordinator for current Epic
2. Wait for completion
3. Verify Stories created in kanban_board.md
4. Move to next Epic
停止条件(分解循环)
| 条件 | 操作 |
|---|---|
| 所有 Epic 均已处理(Story + 可选的 RICE) | 停止 — 继续执行摘要 |
| 某个 Epic 的 ln-220 失败(协调器错误) | 停止 — 报告部分结果,列出已完成的 Epic |
| 用户在确认 Story 期间取消 | 停止 — 报告已完成的 Epic,跳过剩余项 |
| Story 总数超过 80 | 停止 — 警告:“范围可能过大。是否继续?” |
每个 Epic 的调用:
🔄 [ORCHESTRATOR] Phase 3: Delegating Story creation for Epic N to ln-220-story-coordinator
node references/scripts/story-planning-runtime/cli.mjs start --epic {epicId} --manifest-file {storyManifestPath}
child_run = { skill: "ln-220", run_id, identifier, summary_artifact_path }
node references/scripts/scope-decomposition-runtime/cli.mjs record-story-summary --identifier {scopeIdentifier} --payload-file {storySummaryArtifactPath}
ln-220-story-coordinator 将(对每个 Epic):
- 阶段 1:从 Epic 中自动提取 Q1-Q6 + 回退搜索(requirements.md、tech_stack.md)
- 阶段 2:在行内 MCP Ref 中研究标准(自动)
- 阶段 3:制定理想的 Story 计划(5-10 个 Story)
- 阶段 4a:生成所有 Story 文档 → 显示预览 → 用户确认 → 创建所有 Story
- 返回:Story URL + 摘要
顺序约束说明:
- ln-220 包含用户交互(确认 Story 预览)
- 无法并行处理——用户必须按顺序审阅每个 Epic 的 Story
- Epic N 的 Story 获得批准后,才会生成 Epic N+1 的 Story
**每个 Epic 处理后:**通过配置的追踪器提供方创建 Story,并更新 kanban_board.md。
**输出:**总计 30-60 个 Story(每个 Epic 5-10 个 × 3-7 个 Epic)
TodoWrite 格式(必需): 开始前,将各阶段和 Epic 迭代添加到待办事项中:
- Phase 1: Discovery (in_progress)
- Phase 2: Delegate to ln-210-epic-coordinator (pending)
- Phase 3: Delegate to ln-220 for Epic 0 (pending)
- Phase 3: Delegate to ln-220 for Epic 1 (pending)
- Phase 3: Delegate to ln-220 for Epic 2 (pending)
... (one todo per Epic)
- Phase 4: Delegate to ln-230 for Epic 0 (pending)
- Phase 4: Delegate to ln-230 for Epic 1 (pending)
... (one todo per Epic, optional)
- Phase 5: Summary (pending)
开始时将每项标记为 in_progress,协调器成功返回后标记为 completed。
阶段 4:RICE 优先级排序循环(可选、顺序执行、委派)
**目标:**使用市场调研,通过 RICE 评分确定适用 Epic 中 Story 的优先级。
**可选:**询问用户“是否对所有 Epic 运行 RICE 优先级排序?”如果用户拒绝,则跳到阶段 5。
顺序循环逻辑:
PREPARE once:
1. Set prioritization_enabled=true|false in runtime state
2. Determine expected_prioritization_epics (only Epics that should be prioritized)
3. Precompute child identifiers, manifests, and artifact paths
FOR EACH expected Epic:
1. Invoke ln-230-story-prioritizer for current Epic
2. Wait for completion
3. Verify prioritization.md created in docs/market/[epic-slug]/
4. Move to next Epic
每个 Epic 的调用:
node references/scripts/planning-worker-runtime/cli.mjs start --skill ln-230 --identifier {identifier} --manifest-file {prioritizationManifestPath} --run-id {childRunId} --summary-artifact-path {childSummaryArtifactPath}
child_run = { skill: "ln-230", run_id, identifier, summary_artifact_path }
node references/scripts/scope-decomposition-runtime/cli.mjs record-prioritization-summary --identifier {scopeIdentifier} --payload-file {childSummaryArtifactPath}
ln-230-story-prioritizer 将(对每个 Epic):
- 通过配置的追踪器提供方加载 Story 元数据(
listStoriesByEpic) - 针对每个 Story 调研市场规模和竞争情况
- 计算 RICE 分数并分配优先级(P0-P3)
- 生成 docs/market/[epic-slug]/prioritization.md
**跳过条件:**如果 Epic 仅包含技术或基础设施 Story,且不存在有实际意义的业务排序决策,则不要将该 Epic 添加到 expected_prioritization_epics。
**每个 Epic 处理后:**优先级排序表保存到 docs/market/[epic-slug]/prioritization.md,并记录在该 Epic 的摘要中。
**最终确定规则:**如果启用了优先级排序,则只有在所有 expected_prioritization_epics 均记录了 story-prioritization-worker 摘要后,才允许运行时最终确定。
**输出:**所有适用 Epic 的优先级排序表。
阶段 5:摘要和后续步骤
**目标:**使用汇总的所有 Epic 级摘要结果,提供完整的分解概览。
🔄 [ORCHESTRATOR] Phase 5: Full decomposition complete
Initiative Decomposition Summary:
- Epics created: N Projects (Epic 0: Infrastructure [if exists], Epic 1-N: Business domains)
- Stories created: M Issues (breakdown per Epic)
- Prioritization completed: K Epic tables (aggregated across all expected Epic runs)
- Location: docs/tasks/kanban_board.md
Next Steps:
1. Run ln-310-multi-agent-validator to validate all Stories
2. Use ln-400-story-executor to process each Story (tasks → execution → Done)
OR use ln-300-task-coordinator to create tasks manually for each Story
**输出:**包含完整分解结果的摘要消息
在 PHASE_6_SELF_CHECK 之前,写入最终协调器产物:
node references/scripts/scope-decomposition-runtime/cli.mjs record-scope-summary --identifier {scopeIdentifier} --payload-file {scopeSummaryPath}
关键规则
1. 编排器层级不得提示用户
编排器不会提示用户:
- ❌ 不询问“是否继续分解?”(多余——协调器已会确认)
- ❌ 不提供时间估算(具有误导性——实际耗时各不相同)
- ❌ 不提供 Epic/Story 预览(由协调器负责)
所有用户交互均委派给协调器:
- ln-210 阶段 2:领域审批(用户控制点 1)
- ln-210 阶段 5a:Epic 批次预览(用户控制点 2)
- ln-220 阶段 4a:每个 Epic 的 Story 预览(用户控制点 3,共 N 次)
2. 仅并行执行只读准备工作
- 允许批量准备元数据加载、清单生成和产物路径规划。
- 不要跨 Epic 并行执行 Epic 或 Story 变更。
- 不要并行执行面向用户的预览检查点。
完成定义
完成工作前,请验证所有检查点:
✅ 已发现团队 ID(阶段 1):
- 已从 kanban_board.md 加载团队 ID,或已跳过(ln-210 将会请求)
✅ Epic 分解完成(阶段 2):
- 已委托给 ln-210-epic-coordinator
- 已创建 3-7 个 Epic(如适用,Epic 0 用于基础设施,Epic 1-N 用于业务领域)
- 已返回 Epic URL
- Epic 已显示在 kanban_board.md 中
- 已在运行时状态中记录
epic-plan摘要
✅ Story 分解完成(阶段 3):
- 已为每个 Epic 依次委托给 ln-220-story-coordinator
- 每个 Epic 已创建 5-10 个 Story
- 已返回每个 Epic 的 Story URL
- 所有 Story 已显示在 kanban_board.md 中(待办事项部分)
- 已为所有已处理的 Epic 记录
story-plan摘要
✅ RICE 优先级排序完成(阶段 4,可选):
- 已询问用户是否需要进行优先级排序(用户拒绝时跳过)
- 运行时已记录是否启用优先级排序
- 启用优先级排序时,运行时已记录
expected_prioritization_epics - 已为每个预期 Epic 委托给 ln-230-story-prioritizer
- 优先级排序表已保存到 docs/market/[epic-slug]/
- 已为所有预期 Epic 记录
story-prioritization-worker摘要
✅ 已提供摘要(阶段 5):
- 已显示总数量(Epic、Story 以及每个 Epic 的明细)
- 已显示 kanban_board.md 的位置
- 已提供后续步骤(验证、创建任务)
- 已在自检前记录最终的
scope-decomposition摘要
输出: 包含完整分解结果的摘要消息(Epic + 每个 Epic 的 Story)
与生态系统集成
调用方
用户直接调用:“分解计划:[计划名称]”或“为[项目]创建 Epic 和 Story”
调用(通过 Skill 工具)
- ln-210-epic-coordinator(阶段 2)- CREATE 模式(批量创建 Epic,并进行批量预览)
- ln-220-story-coordinator(阶段 3,依次循环)- 每个 Epic 使用 CREATE 模式(创建 Story 并进行预览)
- ln-230-story-prioritizer(阶段 4,可选,依次循环)- 为每个 Epic 进行 RICE 优先级排序
下游
ln-200-scope-decomposer 完成后:
- ln-310-multi-agent-validator - 在创建任务前验证所有已创建的 Story
- ln-400-story-executor - 处理每个 Story(任务 → 执行 → 完成)
- 或 ln-300-task-coordinator - 为每个 Story 手动创建任务
最佳实践
信任协调器
信任协调器的结果: 协调器会返回摘要,编排器无需重新验证。
错误处理: 如果协调器返回错误,请告知用户并停止流程。
时间估算
合理估算: 完整分解需要 2-3 小时(6 个 Epic × 平均 7 个 Story = 42 个 Story)。
明细:
- 阶段 2(创建 Epic):30-45 分钟(批量预览可缩短时间)
- 阶段 3(创建 Story):1.5-2 小时(6 个 Epic × 每个 Epic 15-20 分钟)
- 阶段 4(摘要):2 分钟
请勿向用户提供时间估算——具体时间取决于项目复杂度和用户响应时间。
使用示例
请求:
"Decompose initiative: E-commerce Platform"
执行:
-
阶段 1:发现
- 已从 kanban_board.md 加载团队 ID
-
阶段 2:Epic 分解
- 调用 ln-210-epic-coordinator
- ln-210 创建 6 个 Epic:
- Epic 11(基础设施 Epic 0 模式)
- Epic 12-16(业务领域)
- 输出:6 个 Epic URL
-
阶段 3:Story 分解循环(依次执行)
- Epic 11: 调用 ln-220 → 6 个 Story(US017-US022)
- Epic 12: 调用 ln-220 → 7 个 Story(US023-US029)
- Epic 13: 调用 ln-220 → 5 个 Story(US030-US034)
- Epic 14: 调用 ln-220 → 6 个 Story(US035-US040)
- Epic 15: 调用 ln-220 → 7 个 Story(US041-US047)
- Epic 16: 调用 ln-220 → 5 个 Story(US048-US052)
- 输出:共 36 个 Story
-
阶段 4:摘要
🔄 [ORCHESTRATOR] Full decomposition complete Initiative: E-commerce Platform - Epics created: 6 Projects (Epic 11: Infrastructure, Epic 12-16: Business domains) - Stories created: 36 Issues - Epic 11: 6 Stories - Epic 12: 7 Stories - Epic 13: 5 Stories - Epic 14: 6 Stories - Epic 15: 7 Stories - Epic 16: 5 Stories - Location: docs/tasks/kanban_board.md Next Steps: 1. Run ln-310-multi-agent-validator to validate all Stories 2. Use ln-400-story-executor to process each Story (tasks → execution → Done)
结果: 通过完整的流水线自动化创建了 6 个 Epic + 36 个 Story
阶段 6:元分析
可选参考:仅当用户要求进行运行后元分析或按协议格式进行运行反思时,才加载 references/meta_analysis_protocol.md。
技能类型:planning-coordinator。收到请求后,在所有阶段完成后运行。使用 planning-coordinator 格式在聊天中输出。
参考文件
- 配置来源:
docs/tasks/kanban_board.md(团队 ID、下一个 Epic 编号) - Epic 协调器:
ln-210-epic-coordinator/SKILL.md - Story 协调器:
ln-220-story-coordinator/SKILL.md - Story 优先级排序器:
ln-230-story-prioritizer/SKILL.md - 编号约定:
references/numbering_conventions.md(Epic 0 已预留)
聊天输出前缀
使用表情符号前缀以便于视觉区分:
- 🔄 [ORCHESTRATOR] - ln-200-scope-decomposer(顶层协调器)
用途: 在委托多个协调器时,帮助用户跟踪协调器的进度。
版本: 2.0.0 最后更新: 2025-11-20