{
  "_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-0110",
    "kind": "work",
    "objective": "Generate a typed argument schema for every directory row from its own # ARGS: line, so a cold model stops guessing pipe order",
    "detail": "Every one of the ~1,066 rows presents the same MCP inputSchema: {body: string, description: 'Pipe-delimited args'}. Windmill, Mastra and Arcade all infer real parameter schemas; we do not, and that untyped blob is the single largest accuracy tax on every surface at once — MCP tools/list, ?ask= output, the sheet bridge, the tag protocol and every cold model that has never seen this build. The argument names already exist on the rows: `# ARGS: $1=scope, $2=row key, $3=ttl seconds`. Parse that line into {type:object, properties:{scope:{type:string,description:...}, ...}, required:[...]} and store it as input_schema, leaving rows that already carry a hand-written schema untouched. mcpToolsFromRows already prefers input_schema when present, so MCP improves with no change to the projection. Do not invent types the docstring does not state; a name with no stated type is a string.",
    "state": "superseded",
    "priority": 1,
    "revision": 10,
    "depends_on": [],
    "permitted_capabilities": [
      "D1_QUERY",
      "D1_EXEC",
      "DIR_GET",
      "DIR_PATCH"
    ],
    "acceptance_tests": [
      {
        "id": "directory_readable",
        "type": "http_ok",
        "url": "/api/directory/CAP_MINT"
      },
      {
        "id": "named_properties",
        "type": "contains",
        "url": "/api/directory/CAP_MINT",
        "needle": "\"properties\"",
        "scope": "raw"
      },
      {
        "id": "coverage",
        "type": "sql_count_at_least",
        "sql": "SELECT count(*) FROM directory WHERE enabled=1 AND input_schema LIKE '%properties%'",
        "min": 700
      }
    ],
    "required_evidence": [
      "rows_updated",
      "sample_before_after",
      "mcp_tools_list_sample"
    ],
    "parent_task": null,
    "supersedes": null,
    "failure": null,
    "failure_count": 2,
    "last_result": null,
    "completed_at": null,
    "created_at": "2026-09-06T07:55:59-07:00",
    "updated_at": "2026-09-06T08:37:37-07:00",
    "audit": "/api/work/task/WT-0110/audit",
    "submit_to": "/api/work/task/WT-0110/submit"
  }
}