用途:手动触发 plan-sync,在实现发生偏移后更新下游任务规格;代码变更快于规格时使用。
主要能力:按任务 ID(fn-N.M)或 epic ID(fn-N)定位同步源;自动查找下游 todo/blocked 任务并交由 plan-sync 子代理同步。支持 --dry-run,仅报告变更、不写文件。
使用方式:输入格式为 <id> [--dry-run]。flowctl 为内置(bundled),非全局安装,固定路径为 ROOT="$(git rev-parse --show-toplevel)"、OPENCODE_DIR="$ROOT/.opencode"、FLOWCTL="$OPENCODE_DIR/bin/flowctl"。先解析参数并读取 planSync.crossEpic 配置(默认 false),校验 ID 须以 fn- 开头;再检查 .flow/ 目录是否存在(无则提示先运行 flowctl init);用 $FLOWCTL show <ID> --json 校验 ID 存在;随后查找下游任务(任务输入按所属 epic 过滤,epic 输入优先选最近完成的 done,其次 in_progress,作为 source),过滤 status 为 todo 或 blocked 的下游任务;无下游任务则提示并成功退出;接着通过 Task 工具以 subagent_type: flow-next:plan-sync 生成代理,传入 COMPLETED_TASK_ID、FLOWCTL、EPIC_ID、DOWNSTREAM_TASK_IDS、DRY_RUN、CROSS_EPIC;最后报告结果,dry-run 模式下注明未修改文件。
适用场景:实现与规格出现偏差后,需要将变更同步到下游任务规格时。
限制:planSync.enabled 配置仅用于自动触发,手动始终运行;源任务状态不限(todo、in_progress、done、blocked 均可);下游包含 todo 和 blocked;复用 plan-sync 代理;缺少 .flow/ 或 ID 不存在会报错并停止。