Commit 867d51501560dee30124ff8f79fabefc67b0c84d

Authored by yibo
1 parent 3d5db4b1

docs(33): 收口两条剩余 checklist——真实回归已验证、validator.json 复查过不是同类问题

之前把这条 run 手动 patch required=0 + 重试推到 completed 那次操作,其实就是
"用真实回归任务验证 org-coder-validator 不再假阳性 blocked" 这条的证据,回来补记
(唯一没走到的是"由 workgraph-planning 全新规划一张图"这一环,端到端证据仍缺)。

复查了 validator.json 的 needs:[{kind:'artifact',required:false}]:不是同类潜伏
问题,是刻意设计——它验的 artifact 由另一张图产出,靠任务级共享索引找,
不依赖这条边的声明,required:false 与 33 号的 log 声明成因完全不同。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
docs/todo/system-design/33-needs-gate-role-filter-bug.md
... ... @@ -143,11 +143,23 @@ T-mt25ecbd 那次修复要守住的保护——好在跑单测立刻炸了,没
143 143 的 `needs:artifact` 依旧受硬闸门保护(未被这次改动削弱)
144 144 - [x] 全量单测 `npx vitest run server/tests/unit`:**998/998 通过**(含新增用例,
145 145 零回归)
  146 +- [x] (2026-08-22 追加)用真实回归任务验证 `org-coder-validator` 不再假阳性
  147 + blocked——**已验证**:直接把这次真实卡住的那条 run 的 `graph_edge_contracts`
  148 + 行(`log` 那条)手动 patch 成 `required=0`,重试 `org-coder-validator` 并
  149 + 恢复自动驱动,节点从 `blocked` 转 `success`,root run 最终收敛到
  150 + `completed`。唯一没有走到的是"由 `workgraph-planning` 全新规划一张图,
  151 + 模板里 `{kind:'log',required:false}` 的对象写法被正确解析落库"这一环——
  152 + 理论上没有风险(`validator.json` 已经在用同样的对象写法且工作正常,见下一条),
  153 + 但没有用一次全新任务端到端跑过,只是手动 patch 了已有的行。
  154 +- [x] (2026-08-22 追加)`validator.json` 的 `needs:[{kind:'artifact',required:false}]`
  155 + 复查过:**不是同一类潜伏问题,是刻意设计**。它的 `dataContractNotes` 原文
  156 + 写明:被验的 `artifact` 由**另一张图**(org-coder 等)产出,这里的 `needs`
  157 + 只是文档意图声明,产物索引按 `company+task` 检索、不按图/边——`required:false`
  158 + 是因为这条 `artifact` 依赖压根不指望靠这条边找到实例(找的时候看的是任务级
  159 + 共享索引,边上声明与否不影响检索结果),跟 33 号文档这次的 bug(`log` 声明了
  160 + 却永远不会被索引到)成因完全不同,不用动。
146 161  
147 162 ## 四、留待下次
148 163  
149   -- [ ] 用真实回归任务(同 31 号文档 §一的路数,起一条新 e2e-demo 任务)验证
150   - `org-coder-validator` 不再假阳性 blocked——这次改动只有单测覆盖,还没有
151   - 真实 LLM 跑过的证据
152   -- [ ] `validator.json` 的两条 `needs:[{kind:'artifact',required:false}]` 是否也该
153   - 核对一遍「这个 kind 到底会不会被索引到」,避免同一类问题在别的模板里潜伏
  164 +- [ ] "由 `workgraph-planning` 全新规划一张图" 这一环的端到端证据仍然缺失
  165 + (见上面第五条最后一句)——理论风险低,但没有真跑过
... ...