org-coder-validator 在真实回归任务里被 missing_required_input 反复误判 blocked:
executor.json/executor-fanout.json 的 test/integration→validator 边声明
produces:["log"](required 默认 true),但 test 类节点从不写出能被 indexNodeOutputs
认作 kind=log 的文件(coder.log 实际属于 impl,test 自己的 _plan.md/_research.md
认不出 kind 也没有一对一无歧义可猜),这个 kind 因此永远不会被索引到,
requiredInputsMissing 每次都判缺失——不是时序问题,是结构性、每次重试都复现的硬伤。
改成 { kind: 'log', required: false },对齐 validator.json 已有的写法(它的
needs:artifact 早就标了 required:false)。真正必需的 needs:artifact 不变,
仍受硬闸门保护。
中途走了一段弯路:最初以为该改 inboundContracts() 按 role 过滤只留 needs,
改完单测炸了 9 个用例——大多数边只声明 produces(无配对 needs),这条链路
正是 T-mt25ecbd 产出闸门依赖的数据源,按 role 过滤会静默削弱那次修复。
已撤回(work-graph-db.js 这次只加注释,没有逻辑改动),细节记在 33 号文档。
新增回归用例 graph-files-index.test.js ⑪:produces required:false 且该 kind
从未被索引到时不拦下游成功,同边 needs:artifact(required:true) 依旧受保护。
全量单测 998/998 通过。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>