{
  "subjectSha": "6ac56de2",
  "modelId": "claude-opus-5",
  "promptTemplateVersion": "jt-v1",
  "templateHash": "7f974b9ad9f6955462b4da1586cd3ebd8f6e47b371b48483fc3906609d0160bf",
  "docHash": "075f98b785e3a1828ab0c130cd713d797e259abee258eb00b6fa12062153fcc4",
  "sampleId": "observe/oneshot-plan",
  "iteration": 3,
  "appendCost": 4,
  "unitsToModify": [
    "✅ 执行状态（2026-08-31 收尾回填）",
    "File Structure",
    "🔴 预注册（Task 1 里写死进源码，先 commit 再跑）",
    "Self-Review（写完计划后自查，已执行）"
  ],
  "wallMs": 46924,
  "exitCode": 0,
  "raw": "按这份文档正在组织的那类条目 = **一个 Task 单元**（Task 1…5，含计划外插入的 Task 2′）。\n\n新增一个同类 Task，除追加 `## Task N` 段本身外，必须改动的已有部分：\n\n1. **`## ✅ 执行状态（2026-08-31 收尾回填）`** —— 该表按 Task 逐行登记（状态 / 实际产出 / 偏差），新 Task 必须在此加行；表上方「**全部 Task 已执行完毕**」及其结论段也随之失真。\n2. **`## File Structure`** —— 全文件清单集中在此一处（Create / Modify 各项），新 Task 涉及的文件必须在此登记；其中「`metrics/f4-denominator-branches.mjs` —— 唯一新文件」这句会被新增文件推翻。\n3. **`## 🔴 预注册（Task 1 里写死进源码，先 commit 再跑）`** —— 预注册常量 `PREREG` 与「为什么只预注册第一项」「留痕」「探针撞出的两条，必须进 Task 2 与 Task 4」全部集中在此一块，新 Task 若带阈值/期望值或有新增派活，须改此段（文档自述 Task 2′ 的阈值即是「预注册后另行 commit」）。\n4. **`## Self-Review（写完计划后自查，已执行）`** —— 第 1 项 Spec 覆盖映射（「§5 第 2 项 → Task 3/4」「N80.4 → Task 1 Step 4 + Task 4 Step 1」）、第 3 项类型一致性（点名 Task 1 Step 3/4 与 Task 2 Step 3/5/6）、第 4 项已知风险均按 Task 编号横切，须更新。\n\n附带（视新 Task 位置/内容而定，非必然）：\n\n- **`**Architecture:**`** 一行同样声明了「新增 `metrics/f4-denominator-branches.mjs`」，新增文件时须改；\n- 若新 Task **插在中间**（如 2′ 的情形），后续 Task 标题编号及散落在正文中的交叉引用（`Task 3 Step 1 的命令里已带该参数`、`本器 ⛔ 不照抄这条控制，改为显式扰动臂（Task 2 Step 1）`、`Task 2 Step 3 的三态合成探针` 等）须一并改；\n- **`## Global Constraints`** 仅在新 Task 引入新纪律时须改。\n\n```json\n{\"unitsToModify\": [\"✅ 执行状态（2026-08-31 收尾回填）\", \"File Structure\", \"🔴 预注册（Task 1 里写死进源码，先 commit 再跑）\", \"Self-Review（写完计划后自查，已执行）\"], \"appendCost\": 4}\n```"
}