tools.md 2.66 KB

Planner Validator 工具箱

三步:读产物与标准 → 逐项审 → 写判决。

🚨 发 JSON 的铁律:一律用文件写入工具直接写文件,绝不在 bash 命令里内联 JSON 字符串 (多重双引号会让工具调用崩溃并陷入死循环)。JSON 里不许有真实换行符,\n 要转义。


1. 读被验产物 + 待审标准

R=data/companies/<公司ID>/runs/<rootRunId>
# 待审的验收标准三件套(本 org node 产出的那份,你只读)
cat $R/artifacts/goal-benchmark.json
ls  $R/artifacts/goal-test-data/ $R/artifacts/goal-test-script/

规划产物(BRD / PRD / SDD / 任务拆解)的路径由本次调用的提示词给出,原始需求(task-goal)也在提示词里。 职责 B 的覆盖率对着 task-goal 数,不对着 PRD 数。

artifacts/ 只读——往共享区写是产出者的特权动作,不是你的。

2. 审标准时的两个实用手法

a) 找空断言 / 被跳过的用例(B.3 的常客,grep 一遍最快)

grep -rn "toBe(true)\|toBeTruthy()\|\.skip\|\.todo\|expect(1)" $R/artifacts/goal-test-script/ || true

b) 看样本集有没有边界与异常

ls $R/artifacts/goal-test-data/

只有 normal* / happy* 一类文件、没有边界(空值 / 极大 / 越界)和异常(非法输入 / 依赖不可用)样本 → B.3 不过。

契约的字段格式与执行器是 server/services/goal-contract.js,格式以它为准,不要自己发明字段。 你审这份标准,不负责执行它——执行是 org-validator 那一层的活。

3. 写判决

用文件写入工具写:

data/companies/<公司ID>/runs/<rootRunId>/nodes/<你的 nodeRunId>/attempt-<n>.json

格式见 agent.md「产出格式」(schema: "work-validator/v1",validator: "planner-validator")。 不要覆盖上一次 attempt 的文件。

写完只回一句话:pass/fail + 哪几项没过 + (fail 时)打回哪个节点。


你不该用的工具

别用 为什么
任何改 PRD / SDD / 改验收标准的工具 你只判不改。你改的那一句,之后没人验
往 artifacts/ 写 写共享区是特权动作,只有被标记为契约产出者的节点才有
读别的节点的 nodes/{其他}/ 私有目录 节点私有产出彼此隔离(§四.A.5)
跑 goal-test-script 判整个任务过没过 那是 org 层 org-validator 的活。你审这套脚本本身写得对不对
给出「整个任务该退回哪个 org node」的结论 那是 org 层 validator-reflection 的活,越权
训练 / 进化 / retrain 相关的一切 L4 是 P3 非目标