{
  "subjectSha": "6ac56de2",
  "modelId": "claude-opus-5",
  "arm": "V2",
  "promptTemplateVersion": "jt-v1",
  "templateHash": "7f974b9ad9f6955462b4da1586cd3ebd8f6e47b371b48483fc3906609d0160bf",
  "docHash": "075f98b785e3a1828ab0c130cd713d797e259abee258eb00b6fa12062153fcc4",
  "sampleId": "observe/oneshot-plan",
  "iteration": 1,
  "value": 4,
  "parsed": {
    "unitsToModify": [
      "✅ 执行状态（2026-08-31 收尾回填）",
      "File Structure",
      "Task 5: status 登记 + 收尾",
      "Self-Review（写完计划后自查，已执行）"
    ],
    "appendCost": 4
  },
  "wallMs": 46591,
  "exitCode": 0,
  "raw": "按这份计划自己组织的单元（`## Task N`）来看，追加一个新 Task 需要改动的已有部分：\n\n**1. `## ✅ 执行状态（2026-08-31 收尾回填）`**\n- 表格要加一行（`| Task | 状态 | 实际产出 / 偏差 |` 是全篇 Task 的汇总表，横切所有 Task）。\n- 表上方那句「**全部 Task 已执行完毕。**」+ 结论段落随之失效，要改写。\n\n**2. `## File Structure`**\n- 该段以 Create/Modify 逐文件列全篇产物；新 Task 若建/改任何文件，必须回来补一条（文件清单是按「层」横切的，不在 Task 内部）。\n\n**3. `## Task 5: status 登记 + 收尾`**\n- Task 5 是终点单元（status 登记 N81 / `git status` + push / work-log），新 Task 的结论要并进 Step 1 的登记内容，且新 Task 在序上必须插在 Task 5 之前 —— 追加到文末会让「收尾」不在最后。\n\n**4. `## Self-Review（写完计划后自查，已执行）`**\n- 第 1 项「Spec 覆盖」是 spec 条目 → Task 编号的映射表，要补新 Task 的映射并重新声明「✅ 无缺口」。\n- 第 3 项「类型一致性」逐字列举跨 Task 共享的字段名（`STATES` / `zerosByState[s].zeros` / `c.proposalF4Ids`）及其出现位置（「Task 1 Step 3/4 与 Task 2 Step 3/5/6」），新 Task 若用到这些字段要补位置。\n- 第 4 项「已知风险」若新 Task 引入前置依赖，同样在此段。\n\n条件性（仅当新 Task 带新预注册常量时才改，非必然）：`## 🔴 预注册（Task 1 里写死进源码，先 commit 再跑）` 的 `PREREG` 常量块，以及 `Task 1 · Step 1`（该 Step 的内容是「照上面预注册原文抄」）。\n\n另：`Task 2` 内部的控制项（`must-hit-0` … `must-hit-8`）用连续编号，但新增 `must-hit-9` 属于纯追加，不需要改已有控制项。\n\n```json\n{\"unitsToModify\": [\"✅ 执行状态（2026-08-31 收尾回填）\", \"File Structure\", \"Task 5: status 登记 + 收尾\", \"Self-Review（写完计划后自查，已执行）\"], \"appendCost\": 4}\n```"
}