run-plan 的定位是战略型工作流编排器:它协调复杂的实施计划,把各个阶段委派给专门的子智能体,每个子智能体在全新的上下文窗口中运行;编排器自身保持上下文精简,这种隔离可以防止某一阶段的上下文渗入下一阶段。
主要能力与运行方式
参数形式。$ARGUMENTS 接受三种形式:本地计划文件路径(如 .agents/plans/foo-plan.md);GitHub issue 编号(如 #456,必须带 # 以区别于文件名,裸数字会被拒绝);完整 GitHub issue URL(如 https://github.com/<org>/<repo>/issues/456)。检测规则:以 # 开头或匹配 github.com/.../issues/<n> 的按 GitHub 引用处理,否则按文件路径处理。
标志。可任意组合、任意顺序,位于主参数之后:--no-github(即使存在 GH 元数据也强制仅本地模式)、--no-branch(跳过自动创建工作分支)、--no-pr(运行结束时跳过 PR 提交,仅 GH 模式)、--allow-main(允许在默认分支上配合 --no-branch 运行,否则会被拒绝)、--base <branch>(覆盖工作分支和 PR 的基分支,默认取仓库默认分支)、--draft(以草稿方式打开 PR)、--no-review(跳过每阶段审查关口,文档明确注明不推荐,因为该关口用于避免 Code 智能体自评带来的漂移在提交时被固化)、--no-branch-review(跳过 PR 前的分支审查)。若 $ARGUMENTS 为空或缺失,会提示用法并停止。
协议概览。Step 1 解析计划来源并读取:先检测 GitHub 可用性(git remote get-url origin、gh auth status),再从 GitHub 引用或文件页脚标记解析计划子 issue,必要时通过 gh issue view 拉取正文并写入计划文件;仅在 GH 模式下做漂移检测,比较本地与远程的勾选项,本地多勾则推送并报告,远程多勾则覆盖本地,非复选框内容不一致则展示差异并询问用户,不自动解决。随后读取计划文件(识别 # Plan: <Feature Name> 标题、跨阶段架构决策、阶段与验收标准)以及工作区的 AGENTS.md / CLAUDE.md,提取项目约定与 PR 提交规则。计划文件不存在或无阶段则停止。
工作状态。运行期间维护一组状态:计划文件路径、从文件名派生的 slug、功能名、计划子 issue 编号及其 URL、父 PRD-epic 编号、是否刚拉取、GH 同步模式(active 或 degraded)、运行结局(complete / partial / aborted)、分支名、基分支、PR 打开模式(declared / silent)、临时目录、追加式用量账本路径、运行起始时间、keep-dirty 路径、预提交路径、输入提交 SHA 等。
分支与临时目录。Step 1e 解析基分支并处理确定性拒绝条件(分离头指针、在当前基分支上且未加 --allow-main 等会在任何用户交互前直接拒绝);随后解析 scratch 目录(仓库内 plans 目录同级的 scratch/run-plan/<plan_slug>/,或 ${TMPDIR} 回退路径),必要时加入 git 本地忽略,并处理脏工作树,避免未提交变更泄漏进各阶段提交。
适用场景与限制。适用于把成文的、分阶段且带验收标准的实施计划逐阶段落地执行,尤其是希望控制上下文长度、并将进度同步到 GitHub issue 的场景。限制与前提包括:委派能力依赖宿主;参考实现是 Claude Code 的 Task 工具,其子智能体类型为 Explore 与 general-purpose,在具备不同委派机制的宿主上需把各智能体模式映射到最接近的隔离上下文执行器,角色定义而非 subagent_type 字符串才是契约;在完全没有子智能体能力的宿主上,会按顺序内联执行各阶段简要说明,但需事先告知用户处于这种降级模式,此时全新上下文隔离不再有保证;用量统计同样降级为宿主暴露的元数据,且从不以此阻断工作流。