{
  "_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-0392",
    "kind": "work",
    "objective": "The model-facing tool surface: native primitives, FIND and CALL, and a hot set of at most twelve typed tools chosen per task",
    "detail": "Owner, 2026-09-20: not the two-tool extreme; the superior shape. A coding model keeps the native tools it was trained on — read, edit, write, shell, grep, glob, fetch — because those shapes are what its training data used and funnelling them through a generic CALL loses accuracy. Beside them: misc_find and misc_run reach every directory row (1,459 today). Beside those: a hot set of at most twelve typed tools chosen per task by the classifier (GET /api/tools/openai.json?hot=N already exists; the classifier supplies the list instead of planner_rank alone). Total under twenty-five tools per call, never one per capability; the measured cliff is ~50 tools (owner spec 2026-09-11 §2). Files, models and agents stay directory rows with aliases for discovery; MODEL_RUN and AGENT_RUN become typed tools only when they are in the hot set for that task. Resolve, auth, classify, prefetch, verify, ledger and receipt happen underneath and are never tools. Human grammar unchanged: misc [route:] <noun> <verb> …, escape misc run KEY k=v. Return {ok, result, receipt}. Done when the tool list a model receives is native primitives + misc_find + misc_run + the classifier hot set, and a receipt shows which hot tools were offered and which were used.",
    "state": "open",
    "priority": 2,
    "revision": 3,
    "depends_on": [],
    "permitted_capabilities": [],
    "acceptance_tests": [
      {
        "type": "evidence_present",
        "id": "done",
        "field": "done"
      }
    ],
    "required_evidence": [],
    "parent_task": null,
    "supersedes": null,
    "failure": null,
    "failure_count": 0,
    "last_result": null,
    "completed_at": null,
    "created_at": "2026-09-20T08:15:23.702Z",
    "updated_at": "2026-09-20T08:31:53.386Z",
    "audit": "/api/work/task/WT-0392/audit",
    "submit_to": "/api/work/task/WT-0392/submit"
  }
}