用途
Run Issue Tree 用于规划与执行基于波次(wave)的 GitHub Issue 树,支持父议题与子议题嵌套、标签驱动状态、面向智能体的议题正文,以及运行时原生的工作分派。
适用场景包括:
- 从规格、PRD 或 epic 规划 GitHub Issue 树,拆分为带波次标签的父议题与子议题;
- 创建带嵌套子议题及 Blocked-by / Blocks 依赖关系的 epic 或 tracking issue;
- 通过 gh 与运行时原生 subagent 分派,逐波执行已有的 GitHub Issue 树;
- 给定 GitHub 议题 URL 或编号,要求“运行它”“执行这棵树”或“处理下一波”;
- 将工作分解为 wave:0-foundation、wave:N、status:ready / in-progress / needs-review / failed 等标签;
- 编写面向智能体的议题正文,包含 BSV Definition of Done、归属协议与显式阻塞项;
- 将已关闭的叶子子议题向上过渡到父议题关闭队列,并验证父议题 DoD。
不适用场景:在 Linear 而非 GitHub Issues 中工作(应使用 run-linear-cli);不使用 GitHub 议题树而直接并行运行 Codex 智能体(应使用 run-codex-2);不涉及 GitHub 议题创建、子议题链接或波次标签的通用规划;PR 审查而非议题执行(应使用 review-pr)。
主要能力
- 模式路由:无议题树时进入 Plan Mode;存在带开放波次的议题树时进入 Execute Mode;用户说“plan/decompose/design the tree”进入 Plan Mode;说“run/execute/dispatch/work the next wave”进入 Execute Mode;给出议题 URL 或 #NUMBER 时针对该根议题进入 Execute Mode。若 Execute Mode 找不到树且用户未提供根议题编号,则切换到 Plan Mode。
- 硬性规则:变更前须获批准;自底向上创建;每个议题仅一个波次标签、一个类型标签、一个优先级标签;创建前用脚本校验议题正文;每个议题正文必须以 BSV Definition of Done 结尾;只分派就绪叶子议题;绝不通过 gh 分派工作;执行期间不修改议题正文,只添加评论;未验证 DoD 证据不得关闭议题;未获用户明确确认不得越过失败波次;每次分派前重新读取状态而非缓存。
- 脚本:read-tree.sh(递归打印树并验证父链接)、link-sub-issue.sh(REST 优先的子议题链接)、setup-labels.sh(创建波次/类型/优先级/状态标签)、issue-tree-status.sh(执行状态的规范报告)、dispatch-wave.sh(写入分派清单与提示文件)、validate-issue-body.sh(校验正文大小、协议段落、DoD 质量与引用)。
使用方式
前置条件包括:gh auth status、jq 可用、通过 gh repo view 获取 REPO、设置 SKILL_DIR 为包含 SKILL.md 的目录,并验证 scripts 目录存在。直接 gh issue 命令须始终传入 --repo "$REPO"。
Plan Mode 流程:P1 发现上下文(检测仓库、扫描开放议题、检查 README 与入口点);P2 提出规划问题(Q1–Q5,用户未回答则停止,若说“proceed with assumptions”则创建仅草稿树且仍需批准);P3 设计树(映射波次,wave:0-foundation 始终最先,最大化分解,映射依赖,每议题分配一个波次/类型/优先级标签,展示缩进树并等待明确批准);P4 创建议题(自底向上,创建前将正文写入文件并运行 validate-issue-body.sh);P5 连接关系(用 link-sub-issue.sh 建立父子层级,用 cross-linking-patterns.md 处理双向依赖);P6 验证创建的树(运行 read-tree.sh 与 issue-tree-status.sh)。
Execute Mode 流程:E1 读取状态(运行 read-tree.sh 与 issue-tree-status.sh);E2 选择工作(使用状态机:open/no-status → status:ready → status:in-progress → status:needs-review / closed / status:failed,失败后由用户选择恢复;父议题进入关闭队列而非分派队列);E3 准备与分派(运行 dispatch-wave.sh,使用 Q5 并发上限,生成 status.md、manifest.json 与每个就绪议题的提示文件,仅在真正开始分派时加 --mark-in-progress,通过当前运行时原生 subagent/task 工具分派);E4 验证完成(逐项检查 BSV 标准,全部满足则移除活动状态标签并带证据关闭,否则标记 status:failed 并等待用户恢复);E5 过渡波次(波次关闭后重新运行 issue-tree-status.sh,返回波次摘要、关闭证据、下一波就绪情况、父议题关闭队列与遗留失败;存在部分失败时不得未经确认越过失败波次)。
输出契约
Plan Mode 返回:已批准的树预览、创建的根议题、按类型与波次的议题计数、标签设置结果、子议题连接验证、未解决的假设。
Execute Mode 返回:根议题、当前波次、每波计数、就绪叶子队列、父议题关闭队列、带阻塞项的阻塞列表、带恢复状态的失败列表、已分派议题编号、下一项所需决策。
波次完成返回:波次摘要、已关闭 DoD 的证据、下一波就绪情况、遗留失败(如有)。
限制
- 仅适用于 GitHub Issues,不适用于 Linear。
- 工作分派必须通过当前运行时的原生 subagent/task 工具,不能通过 gh。
- 执行期间不得修改议题正文,只能添加评论。
- 未验证 DoD 证据不得关闭议题;未获用户明确确认不得越过失败波次。
- 规划时不得跳过 Q1–Q5,不得在未批准计划树的情况下创建议题或标签。
- 参考文件按需读取,不应全部预加载。
- 关于具体收费、价格、平台支持范围等信息,资料中暂未提供。