{
  "_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": "WF-0003",
    "kind": "failure",
    "objective": "Repair: BACKEND_PRIMITIVES_REPORTED_AS_OWNER_USABLE_INLINE_CONTENT_SYSTEM",
    "detail": "A failure object attached to WT-0082. Close it by enforcing the missing invariant at the shared layer, repairing every affected object, adding the regression test and the deploy blocker, then submitting runtime evidence.",
    "state": "completed",
    "priority": 1,
    "revision": 7,
    "depends_on": [],
    "permitted_capabilities": [
      "FILE_PUT",
      "CLI_WRANGLER",
      "CLI_GH",
      "D1_MIGRATE",
      "ARTICLE_PUT",
      "BROWSER_CONTROL",
      "DEPLOY"
    ],
    "acceptance_tests": [
      {
        "id": "recursive_article_live",
        "type": "article_published",
        "slug": "recursive-content"
      },
      {
        "id": "recursive_article_depth",
        "type": "article_min_words",
        "slug": "recursive-content",
        "min": 700
      },
      {
        "id": "public_explanation",
        "type": "contains",
        "url": "/a/recursive-content",
        "needle": "Every block has one stable identity"
      },
      {
        "id": "visible_self_explanation",
        "type": "contains",
        "url": "/a/recursive-content",
        "needle": "How recursive content works"
      },
      {
        "id": "block_api_live",
        "type": "http_ok",
        "url": "/api/blocks/article/recursive-content"
      },
      {
        "id": "global_blocks_exist",
        "type": "sql_count_at_least",
        "sql": "SELECT COUNT(*) AS n FROM content_blocks WHERE retired_at IS NULL",
        "min": 1
      },
      {
        "id": "article_refs_exist",
        "type": "sql_count_at_least",
        "sql": "SELECT COUNT(*) AS n FROM article_block_refs WHERE article_slug='recursive-content'",
        "min": 3
      },
      {
        "id": "version_history_exists",
        "type": "sql_count_at_least",
        "sql": "SELECT COUNT(*) AS n FROM content_block_versions",
        "min": 1
      }
    ],
    "required_evidence": [
      "repair",
      "regression_test",
      "deploy_blocker",
      "repaired_objects",
      "runtime_evidence"
    ],
    "parent_task": "WT-0082",
    "supersedes": null,
    "failure": {
      "failure_class": "BACKEND_PRIMITIVES_REPORTED_AS_OWNER_USABLE_INLINE_CONTENT_SYSTEM",
      "layer": "article-page owner interaction and acceptance coverage",
      "missing_invariant": "A recursive-content shipment is not acceptable unless an authenticated owner can enter edit mode on an ordinary live article, select visible prose, mint that exact selection as a stable block, edit/save it in place, and exercise every requested block verb without navigating to an admin form. Acceptance must cover every use case extracted from the owner session, not merely API existence.",
      "repair": "Build a first-class article edit mode with visible selection-to-block, inline editing, split/move/retire/reuse/comment/version/score surfaces; server-bind ordinary rendered articles to their block graph; enforce self-contained typed blocks for reuse; audit all original requested use cases against production.",
      "regression_test": "Authenticated browser test on /a/oip-governance-ontology: Edit page is visible; selecting text exposes Make block; creating a block wraps the visible selection; clicking it exposes inline edit and all block actions; save changes the live prose without leaving /a/; every original-session use case has an acceptance row.",
      "deploy_blocker": "Refuse completion of recursive-content work unless the ordinary article-page browser workflow—not an admin URL or JSON endpoint—passes.",
      "repaired_objects": [],
      "runtime_evidence": "Owner screenshot at 2026-08-08 15:30 shows ordinary /a/oip-governance-ontology with no selection-to-block or inline edit surface; the only obvious Edit article link navigates to /admin/articles/<slug>. Live DOM confirms hidden glyph controls exist only where fuzzy block matching succeeds and no Make block interaction exists."
    },
    "failure_count": 0,
    "last_result": {
      "accepted": true,
      "tests_declared": 8,
      "tests_passed": 8,
      "tests_inherited_from": null,
      "results": [
        {
          "id": "recursive_article_live",
          "ok": true,
          "detail": "status=published"
        },
        {
          "id": "recursive_article_depth",
          "ok": true,
          "detail": "1410 words (need 700)"
        },
        {
          "id": "public_explanation",
          "ok": true,
          "detail": "contains \"Every block has one stable identity\" in https://miscsubjects.com/a/recursive-content (scope=content) → true"
        },
        {
          "id": "visible_self_explanation",
          "ok": true,
          "detail": "contains \"How recursive content works\" in https://miscsubjects.com/a/recursive-content (scope=content) → true"
        },
        {
          "id": "block_api_live",
          "ok": true,
          "detail": "HTTP 200 https://miscsubjects.com/api/blocks/article/recursive-content"
        },
        {
          "id": "global_blocks_exist",
          "ok": true,
          "detail": "count=49582 (need 1)"
        },
        {
          "id": "article_refs_exist",
          "ok": true,
          "detail": "count=35 (need 3)"
        },
        {
          "id": "version_history_exists",
          "ok": true,
          "detail": "count=49588 (need 1)"
        }
      ],
      "missing_evidence": []
    },
    "completed_at": "2026-08-08T17:34:53-07:00",
    "created_at": "2026-08-08T15:32:25-07:00",
    "updated_at": "2026-08-08T17:34:53-07:00",
    "audit": "/api/work/task/WF-0003/audit",
    "submit_to": "/api/work/task/WF-0003/submit"
  }
}