planner 骨架(brd→prd→sdd→goal-benchmark→validator)复现:三个 planning 节点
声明了 produces 却没真落盘,executor 没抛异常就被引擎判 success;goal-benchmark
的入边 needs:[brd,prd,sdd] 只用来拼提示词里的 ⚠️ 提示,agent 视而不见照样产出
合法 acceptance。下游 validator 永远读不到三份文档,backward 重试撞循环硬顶后
只能人工兜底。
settleNode 判 success 之前新增两道闸门(均只对 agent_call 节点生效,subgraph/org
节点的契约由子 work run 自己的节点过闸):
- unsatisfiedRequiredProduces:声明的 required produces 一个候选文件都没落盘 →
fail_reason=produces_missing,不再放行
- requiredInputsMissing:声明的 required needs 在 graph_files 里查不到实例 →
fail_reason=missing_required_input,不采信 agent 自报的 success
两者都只判「有没有」,不判「分类对不对」——ambiguous 归类留给下游 ⚠️ 提示词处理,
避免把「写了东西但引擎猜不出对应哪个 kind」误判成没执行。
包含此前已完成但未提交的 27-P4 T3(graph_runs.max_concurrency 落库)及配套
advance-batch 测试。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>