benchmark-validator.json 1.45 KB
{
  "_doc": "P3 mock fixture · 判失败的验收节点(27-P3B §六 验收 4)。attempt-{attempt}.json 里 verdict=attributed 落在 graph-engine.FAILING_VERDICTS 里 → readNodeProduct 置 failingVerdict → 节点判 fail。这份 fixture 的**全部意义**就是让「validator 说失败 → 引擎真的按失败处理」这条判据在 CI 里跑得出来:在这之前它只是「静态成立」(人读代码读通了链路),没有任何一次真跑或真链路证据。改 verdict 的取值前先看 graph-engine 的 FAILING_VERDICTS。 fail_reason 必须取自 graph-engine.ATTRIBUTION_REASONS 这个封闭域(impl_bug / input_underspecified / skill_defect / infra_flake)—— 自创的词会被**按设计降级成 null** 并留一条 timeline,不是崩溃,但节点行上就没有归因了。第一版这里写了 contract_invalid,实测就是这个下场。",
  "chunks": [
    "[mock] benchmark-validator 读取被测产物与验收契约。\n",
    "契约形状非法:acceptance.json 缺 test_script 段。\n"
  ],
  "result": "mock-fail benchmark-validator:契约非法,判失败。",
  "files": [
    {
      "path": "attempt-{attempt}.json",
      "content": "{\n  \"schema\": \"validator-triager/v1\",\n  \"verdict\": \"attributed\",\n  \"fail_reason\": \"input_underspecified\",\n  \"remediation_note\": \"acceptance.json 缺 test_script 段,补齐后重跑\"\n}\n"
    }
  ],
  "usage": {
    "input": 400,
    "output": 120
  }
}