{
  "_ai_door": {
    "see": "https://miscsubjects.com/start",
    "note": "Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."
  },
  "task": {
    "task_id": "WT-0312",
    "kind": "work",
    "objective": "W0.1c Event bodies to R2: default pointer write path + backfill (events first, invocations second)",
    "detail": "M-1 composition (2026-09-14, scratchpad/wall-readings.md) re-scopes this: inline event bodies are 3.37 GiB across 4,825,555 rows vs invocation_json 0.74 GiB across 417,938 rows — moving invocation bodies alone reclaims only ~8% of the file. 83,910 events rows already carry r2_request_key/r2_response_key, so the pointer path exists and is live. Make pointer-write the default, then backfill events bodies by descending size, then invocations.invocation_json. Full payloads to R2, D1 holds pointer + hash (hard rule 8).",
    "state": "open",
    "priority": 1,
    "revision": 1,
    "depends_on": [],
    "permitted_capabilities": [
      "INVOKE",
      "CLI_WRANGLER",
      "FILE_PUT"
    ],
    "acceptance_tests": [
      {
        "type": "evidence_present",
        "id": "commit",
        "field": "commit"
      },
      {
        "type": "evidence_present",
        "id": "live",
        "field": "verification"
      }
    ],
    "required_evidence": [
      "commit",
      "verification"
    ],
    "parent_task": null,
    "supersedes": null,
    "failure": null,
    "failure_count": 0,
    "last_result": null,
    "completed_at": null,
    "created_at": "2026-09-14T02:44:49-07:00",
    "updated_at": "2026-09-14T02:44:49-07:00",
    "audit": "/api/work/task/WT-0312/audit",
    "submit_to": "/api/work/task/WT-0312/submit"
  }
}