{
  "_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-0244",
    "kind": "work",
    "objective": "CONSOLE: structured task objects and routing — target column on work_tasks, POST /api/work/intake that turns a description into the closed task JSON, and the router as the first custom harness object with quota-aware assignment",
    "detail": "Spec: ~/Downloads/CONSOLE-TASK-OBJECTS-AND-ROUTING-SPEC.md. Handoff v2 section 7.1. The owner: \"Describe what I want, have it made into extremely structured JSON, which goes into tasks, and those tasks are assigned to Claude CLI, Codex CLI, Kimi CLI, etc,\" and \"my model concentrates on routing and my build concentrates on creating superior harnesses, so larger models get clearly defined work (fewer 100-tool-loop turns) and smaller models complete more sophisticated work.\" What is already there and must not be rebuilt: work_tasks.acceptance IS done_when (ten runnable test types, and createTask refuses any other); evidence_required, capabilities, depends_on, parent_id, supersedes and the hash chain all exist. The real gap is target (file/row/table/page), the intake that proposes before it creates, and the harness object. Intake is two-step and never one: createTask has no dry-run by design, so a probe that reaches it makes a real row — that is how WT-0040 was born with the objective probe. The router's tools are exactly four: read the work object, read the directory, create-or-assign a task, open a room. It routes; it does not do the work. Routing reads live budget before it assigns, because today Anthropic and OpenAI refused for credit, Moonshot is suspended, Kimi went out of its window and Codex ran out of usage. Migration 0421. Lane A owns the server, Lane B the Tasks UI. Acceptance in spec section 5.",
    "state": "open",
    "priority": 3,
    "revision": 1,
    "depends_on": [],
    "permitted_capabilities": [],
    "acceptance_tests": [
      {
        "type": "evidence_present",
        "id": "commit",
        "field": "commit"
      },
      {
        "type": "evidence_present",
        "id": "target_column",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "intake_creates_nothing",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "intake_refuses_uncheckable",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "router_assigns_with_reason",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "router_refuses_no_budget",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "two_harness_versions_compared",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "critic",
        "field": "critic_turn"
      }
    ],
    "required_evidence": [],
    "parent_task": null,
    "supersedes": null,
    "failure": null,
    "failure_count": 0,
    "last_result": null,
    "completed_at": null,
    "created_at": "2026-09-12T17:10:29-07:00",
    "updated_at": "2026-09-12T17:10:29-07:00",
    "audit": "/api/work/task/WT-0244/audit",
    "submit_to": "/api/work/task/WT-0244/submit"
  }
}