现象
Ultra-flow 的检查点节点返回 {verdict: "replan"},但下游各阶段仍照常执行:每个下游节点发现"没有已确认的设计"后也回 replan,整图空转到终态,零实现。
实例(workflow dag_fe5ff13ada6fUONA2rH3Pypdf4):
cp-design-decision 返回 replan(设计含 4 个硬缺陷,均带 file:line 实证)
stage-development、stage-acceptance、stage-release、stage-summary 仍依次执行,各自返回 replan
- 全图 15 节点状态
completed、workflow 终态 completed,但无分支、无代码改动
根因
裁决(verdict)只是节点的输出数据,拓扑只依据 depends_on 决定执行顺序,对 verdict 的取值完全无感知。report_to_parent: true 会唤醒父会话,但图不暂停等待父会话介入——等父会话看到 replan 时下游已在执行或已执行完。契约里"父会话收到 replan 后用 control/replan 补救"缺乏结构性的执行保证。
修法选项
- 方案 A(结构性闸门,推荐):为 DAG 调度引入"门节点"语义——当一个节点声明了带
verdict 的 output_schema 且 report_to_parent: true 时,其下游在 verdict 产生后不自动调度,等待父会话处置;verdict 为 replan 则永不自动推进。或为下游节点提供 condition(引用上游 verdict),条件不满足即跳过。
- 方案 B(作者纪律):强制把跨门阶段拆成独立 workflow,由父会话在段间决策。此为约定而非机制,新模板仍会复发,仅作过渡。
验收
- 在检查点返回
replan 的 workflow 中,下游阶段不被调度;父会话被唤醒并携带 findings,经 control/replan 补救后从修正阶段推进。
- 检查点返回
continue 时行为不变、流程照常推进(回归)。
- 新增回归测试覆盖"replan 后下游不空转"。
关联
- 同批编排健壮性:探索/设计门的独立验证问题(见同批 issue)。
现象
Ultra-flow 的检查点节点返回
{verdict: "replan"},但下游各阶段仍照常执行:每个下游节点发现"没有已确认的设计"后也回 replan,整图空转到终态,零实现。实例(workflow
dag_fe5ff13ada6fUONA2rH3Pypdf4):cp-design-decision返回 replan(设计含 4 个硬缺陷,均带 file:line 实证)stage-development、stage-acceptance、stage-release、stage-summary仍依次执行,各自返回 replancompleted、workflow 终态completed,但无分支、无代码改动根因
裁决(verdict)只是节点的输出数据,拓扑只依据
depends_on决定执行顺序,对 verdict 的取值完全无感知。report_to_parent: true会唤醒父会话,但图不暂停等待父会话介入——等父会话看到 replan 时下游已在执行或已执行完。契约里"父会话收到 replan 后用 control/replan 补救"缺乏结构性的执行保证。修法选项
verdict的 output_schema 且report_to_parent: true时,其下游在 verdict 产生后不自动调度,等待父会话处置;verdict 为replan则永不自动推进。或为下游节点提供condition(引用上游 verdict),条件不满足即跳过。验收
replan的 workflow 中,下游阶段不被调度;父会话被唤醒并携带 findings,经 control/replan 补救后从修正阶段推进。continue时行为不变、流程照常推进(回归)。关联