用途 plan-orchestrator 是分层规划体系(hierarchical-planning)的单一入口,用于把用户的分层规划意图路由到 aura-frog/scripts/plans/ 下正确的后端脚本。它用一个合并的调度器取代原先 10 个独立命令文件,对应用户命令 commands/plan.md,数据模型位于 .claude/plans/ 目录(依据 Tech Spec §6)。
主要能力 支持 11 个动词:bootstrap(无动词前缀的 /aura-frog:plan,执行 T0/T1/T2 访谈)、expand(拆解 T2→T3 或 T3→T4)、next(派发下一个就绪的 T4 任务)、status(渲染计划树)、replan(在预算内修改目标及后代)、promote(把 T4 发现上浮到 T2/T1)、archive(压缩已完成的 T2 并归档原件)、undo(按 LIFO 恢复最近检查点)、freeze(级联冻结后代)、thaw(反向解冻并校验阻塞已解除及 git 差异兼容性)、conflicts(封装 L1+L2 冲突检测,支持 list/show/resolve/history/check)。
使用方式 路由分三阶段,命中即停: 阶段 1,显式动词前缀(确定性)。格式为 <verb> [<target_id_or_flags>],例如 expand FEAT-A、next、freeze TASK-00042 --reason "blocked on db schema"、conflicts list --open。若首词命中动词表,直接分发,跳过后续阶段。经 plan-<verb>.md 别名桩调用(如 /aura-frog:plan-expand FEAT-A)同样按阶段 1 处理。 阶段 2,意图分类(关键词匹配)。无显式动词时,用词干子串、不区分大小写地匹配 11 组意图关键词,例如 expand|decompose 匹配 expand,rollback 匹配 undo,what's next 匹配 next。单一命中则先对节点形 token(匹配 ^(MISSION|INIT|FEAT|STORY|TASK)-[A-Z0-9]+$ 或标题子串)调用 resolve-node.sh 解析,再分发。多命中时向用户提示“检测到两个意图,请选择先执行哪一个”。零命中进入阶段 3。 阶段 3,LLM 兜底(模糊情形)。给出结构化提示,列出可用动词及编辑距离最近的两个候选,要求用户回复动词或 /aura-frog:plan status,不猜测、不自动分发。
节点解析 目标可为完整 ID(FEAT-A、TASK-00042,需精确匹配)、标题子串(如 auth-flow,对节点 intent: 前置字段做不区分大小写子串匹配)或特殊 token(--active 解析为 active.json 的 active.task,--feature 解析为 active.feature)。解析委托 resolve-node.sh,退出码 0 表示单一匹配,1 表示多重匹配并打印候选,2 表示无匹配。
原子性约定 每个写入型后端脚本须:读取当前 active.json 与目标节点文件;将变更前状态及 git SHA 保存为检查点 .claude/plans/checkpoints/<NODE_ID>.<ISO8601>.json;将目标文件 revision 递增 1 后修改;用 validate-plan-tree.sh 校验,任一不变量失败即中止并恢复检查点;向 history.jsonl 追加决策事件 {ts, verb, target, before_revision, after_revision, agent};以写入 .tmp 再 mv 覆盖的方式原子写入,绝不部分写入。
图索引 graph-index.json <plans_dir>/graph-index.json 为每个节点记录 tier、status、parent、children、depends_on、path、intent,避免每次派发和渲染时重复遍历树、解析 frontmatter。它默认不隐式创建,需由 next-task.sh --rebuild、render-plan-tree.sh --rebuild 或 validate-plan-tree.sh --rebuild 首次生成;每次变更后由 _lib.sh#set_field 只读一个文件完成修补,索引不存在时为无操作;读取方在节点文件缺失、比索引更新或目录自构建后有变化时拒绝使用并回退到自身扫描;.md 文件是唯一事实来源,validate-plan-tree.sh 从不读取索引,只在校验通过后产出索引;可用 AF_GRAPH_INDEX_DISABLED=true 禁用。索引只可能增加耗时,不影响准确性。
裸词激活与覆盖 当 .claude/plans/active.json 存在且可解析、用户输入首词属于动词表、且总词数不超过 5 时,hooks/bare-word-router.cjs 会触发路由(因此“next”会路由,而“next steps are unclear”不会)。动词需要目标但未给时,会建议最可能的节点:next 无需目标;expand 建议 active.feature 或 active.story;freeze/thaw/replan/promote/undo 建议 active.task。用户可用 must do:、just do:、exactly: 前缀强制走阶段 1,并绕过后端脚本的确认提示(视为 --force)。设置 AF_PLAN_ROUTING_DISABLED=true 时技能提前退出,/aura-frog:plan 回退为按命令文件协议直接调用脚本。
适用场景与限制 适用于使用 aura-frog 分层规划体系、需要以统一命令管理计划树生命周期的项目。相关规则包括 run-plan-bridge.md(将 /run 锚定到 active T4)、plan-trust-policy.md(记忆与计划树冲突时以计划为准)、checkpoint-discipline.md(检查点格式与触发条件)。限制:阶段 3 明确要求不猜测、不自动分发;replan 受 replan_budget 约束;freeze 拒绝已 done/archived 的节点;thaw 需校验阻塞解除及 git 差异兼容性。具体收费、平台支持等资料暂未提供。