{
  "decision_id": "ui_autobaixa_canonical_replace_decision",
  "created_at": "2026-07-08T22:26:27.008946Z",
  "status": "PASS",
  "cause": "Canonical replace target candidates extracted from scan JSON. Use next patch to replace only within selected context.",
  "mutation_index_html": "NO",
  "append_allowed": "NO",
  "replace_only": "YES",
  "source_scan_json": "/home/yeff/public_html/devon/_backup/audit_ui_canonical_render_point_for_autobaixa_20260708_192209.json",
  "index_html": "/home/yeff/public_html/devon/canon/execution/ui/index.html",
  "html_line_count": 644,
  "runtime_binding_status": "PASS",
  "runtime_items_count": 220,
  "runtime_fields_exposed": 220,
  "runtime_items_ready": 0,
  "selected_candidate": {
    "line": 7,
    "score": 35,
    "reasons": [
      "loads runtime_truth.js",
      "script tag"
    ],
    "text": "<script src=\"runtime_truth.js?v=clean-contract\"></script>",
    "context_start": 1,
    "context_end": 19,
    "context": [
      {
        "line": 1,
        "text": "<!doctype html>"
      },
      {
        "line": 2,
        "text": "<html lang=\"en\">"
      },
      {
        "line": 3,
        "text": "<head>"
      },
      {
        "line": 4,
        "text": "<meta charset=\"utf-8\">"
      },
      {
        "line": 5,
        "text": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">"
      },
      {
        "line": 6,
        "text": "<title>Devon Execution Console</title>"
      },
      {
        "line": 7,
        "text": "<script src=\"runtime_truth.js?v=clean-contract\"></script>"
      },
      {
        "line": 8,
        "text": "<style>"
      },
      {
        "line": 9,
        "text": ":root{"
      },
      {
        "line": 10,
        "text": "  --bg:#eef3f9;"
      },
      {
        "line": 11,
        "text": "  --panel:#fff;"
      },
      {
        "line": 12,
        "text": "  --line:#d9e3ef;"
      },
      {
        "line": 13,
        "text": "  --muted:#64748b;"
      },
      {
        "line": 14,
        "text": "  --text:#0f172a;"
      },
      {
        "line": 15,
        "text": "  --blue:#2563eb;"
      },
      {
        "line": 16,
        "text": "  --green:#16a34a;"
      },
      {
        "line": 17,
        "text": "  --red:#dc2626;"
      },
      {
        "line": 18,
        "text": "  --orange:#b45309;"
      },
      {
        "line": 19,
        "text": "  --soft:#f8fafc;"
      }
    ]
  },
  "ranked_candidates": [
    {
      "line": 7,
      "score": 35,
      "reasons": [
        "loads runtime_truth.js",
        "script tag"
      ],
      "text": "<script src=\"runtime_truth.js?v=clean-contract\"></script>",
      "context_start": 1,
      "context_end": 19,
      "context": [
        {
          "line": 1,
          "text": "<!doctype html>"
        },
        {
          "line": 2,
          "text": "<html lang=\"en\">"
        },
        {
          "line": 3,
          "text": "<head>"
        },
        {
          "line": 4,
          "text": "<meta charset=\"utf-8\">"
        },
        {
          "line": 5,
          "text": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">"
        },
        {
          "line": 6,
          "text": "<title>Devon Execution Console</title>"
        },
        {
          "line": 7,
          "text": "<script src=\"runtime_truth.js?v=clean-contract\"></script>"
        },
        {
          "line": 8,
          "text": "<style>"
        },
        {
          "line": 9,
          "text": ":root{"
        },
        {
          "line": 10,
          "text": "  --bg:#eef3f9;"
        },
        {
          "line": 11,
          "text": "  --panel:#fff;"
        },
        {
          "line": 12,
          "text": "  --line:#d9e3ef;"
        },
        {
          "line": 13,
          "text": "  --muted:#64748b;"
        },
        {
          "line": 14,
          "text": "  --text:#0f172a;"
        },
        {
          "line": 15,
          "text": "  --blue:#2563eb;"
        },
        {
          "line": 16,
          "text": "  --green:#16a34a;"
        },
        {
          "line": 17,
          "text": "  --red:#dc2626;"
        },
        {
          "line": 18,
          "text": "  --orange:#b45309;"
        },
        {
          "line": 19,
          "text": "  --soft:#f8fafc;"
        }
      ]
    },
    {
      "line": 370,
      "score": 30,
      "reasons": [
        "render function/marker",
        "progress/completion area"
      ],
      "text": "  $(\"contextRing\").setAttribute(\"data-progress-source\", \"contract-runtime-renderer-v4\");",
      "context_start": 362,
      "context_end": 382,
      "context": [
        {
          "line": 362,
          "text": "  $(\"topbar\").innerHTML = items.map(([k,v]) => `<div class=\"kpi\"><small>${esc(k)}</small><b>${esc(v)}</b></div>`).join(\"\");"
        },
        {
          "line": 363,
          "text": "}"
        },
        {
          "line": 364,
          "text": ""
        },
        {
          "line": 365,
          "text": "function setHero(ctx, eyebrow, title, desc){"
        },
        {
          "line": 366,
          "text": "  $(\"contextEyebrow\").textContent = eyebrow;"
        },
        {
          "line": 367,
          "text": "  $(\"contextTitle\").textContent = title;"
        },
        {
          "line": 368,
          "text": "  $(\"contextDescription\").textContent = desc;"
        },
        {
          "line": 369,
          "text": "  $(\"contextRing\").style.setProperty(\"--pct\", ctx.authorized ? ctx.percent : 0);"
        },
        {
          "line": 370,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-source\", \"contract-runtime-renderer-v4\");"
        },
        {
          "line": 371,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-scope\", ctx.scope);"
        },
        {
          "line": 372,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);"
        },
        {
          "line": 373,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-authority\", ctx.authority);"
        },
        {
          "line": 374,
          "text": "  $(\"contextRingLabel\").textContent = label(ctx);"
        },
        {
          "line": 375,
          "text": "}"
        },
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        }
      ]
    },
    {
      "line": 384,
      "score": 30,
      "reasons": [
        "status rendering",
        "progress/completion area",
        "UI structure area"
      ],
      "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");",
      "context_start": 376,
      "context_end": 396,
      "context": [
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 384,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");"
        },
        {
          "line": 385,
          "text": "    return;"
        },
        {
          "line": 386,
          "text": "  }"
        },
        {
          "line": 387,
          "text": "  setHero(cur.ctx, \"Execution Timeline / Global\", \"Project and YEFF AI Runtime Monitor\", \"Global progress is blocked by open contract gaps, missing remote evidence, missing runtime binding or target server proof gaps.\");"
        },
        {
          "line": 388,
          "text": "}"
        },
        {
          "line": 389,
          "text": ""
        },
        {
          "line": 390,
          "text": "function renderCards(){"
        },
        {
          "line": 391,
          "text": "  const cur = current();"
        },
        {
          "line": 392,
          "text": "  let rows;"
        },
        {
          "line": 393,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 394,
          "text": "    rows = ["
        },
        {
          "line": 395,
          "text": "      [\"Scope\", \"PHASE\"],"
        },
        {
          "line": 396,
          "text": "      [\"Progress\", label(cur.ctx)],"
        }
      ]
    },
    {
      "line": 372,
      "score": 22,
      "reasons": [
        "status rendering",
        "progress/completion area"
      ],
      "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);",
      "context_start": 364,
      "context_end": 384,
      "context": [
        {
          "line": 364,
          "text": ""
        },
        {
          "line": 365,
          "text": "function setHero(ctx, eyebrow, title, desc){"
        },
        {
          "line": 366,
          "text": "  $(\"contextEyebrow\").textContent = eyebrow;"
        },
        {
          "line": 367,
          "text": "  $(\"contextTitle\").textContent = title;"
        },
        {
          "line": 368,
          "text": "  $(\"contextDescription\").textContent = desc;"
        },
        {
          "line": 369,
          "text": "  $(\"contextRing\").style.setProperty(\"--pct\", ctx.authorized ? ctx.percent : 0);"
        },
        {
          "line": 370,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-source\", \"contract-runtime-renderer-v4\");"
        },
        {
          "line": 371,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-scope\", ctx.scope);"
        },
        {
          "line": 372,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);"
        },
        {
          "line": 373,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-authority\", ctx.authority);"
        },
        {
          "line": 374,
          "text": "  $(\"contextRingLabel\").textContent = label(ctx);"
        },
        {
          "line": 375,
          "text": "}"
        },
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 384,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");"
        }
      ]
    },
    {
      "line": 526,
      "score": 22,
      "reasons": [
        "status rendering",
        "progress/completion area"
      ],
      "text": "    '  <div class=\"ring\" id=\"contextRing\" style=\"--pct:0\" data-progress-source=\"\" data-progress-scope=\"\" data-progress-status=\"\" data-progress-authority=\"\"><span id=\"contextRingLabel\"></span></div>',",
      "context_start": 518,
      "context_end": 538,
      "context": [
        {
          "line": 518,
          "text": ""
        },
        {
          "line": 519,
          "text": "  const nodes = ["
        },
        {
          "line": 520,
          "text": "    '<section class=\"hero\">',"
        },
        {
          "line": 521,
          "text": "    '  <div>',"
        },
        {
          "line": 522,
          "text": "    '    <div class=\"eyebrow\" id=\"contextEyebrow\"></div>',"
        },
        {
          "line": 523,
          "text": "    '    <h1 id=\"contextTitle\"></h1>',"
        },
        {
          "line": 524,
          "text": "    '    <p id=\"contextDescription\"></p>',"
        },
        {
          "line": 525,
          "text": "    '  </div>',"
        },
        {
          "line": 526,
          "text": "    '  <div class=\"ring\" id=\"contextRing\" style=\"--pct:0\" data-progress-source=\"\" data-progress-scope=\"\" data-progress-status=\"\" data-progress-authority=\"\"><span id=\"contextRingLabel\"></span></div>',"
        },
        {
          "line": 527,
          "text": "    '</section>',"
        },
        {
          "line": 528,
          "text": "    '<section class=\"cards\" id=\"cards\"></section>',"
        },
        {
          "line": 529,
          "text": "    '<section class=\"panel\">',"
        },
        {
          "line": 530,
          "text": "    '  <div class=\"panel-head\"><b id=\"tableTitle\"></b><span id=\"tableMeta\"></span></div>',"
        },
        {
          "line": 531,
          "text": "    '  <div class=\"table-wrap\" id=\"tableWrap\"></div>',"
        },
        {
          "line": 532,
          "text": "    '</section>',"
        },
        {
          "line": 533,
          "text": "    '<section id=\"runtimeGovernanceMount\"></section>'"
        },
        {
          "line": 534,
          "text": "  ];"
        },
        {
          "line": 535,
          "text": ""
        },
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        }
      ]
    },
    {
      "line": 316,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderNav(){",
      "context_start": 308,
      "context_end": 328,
      "context": [
        {
          "line": 308,
          "text": "  }"
        },
        {
          "line": 309,
          "text": "  return { type: \"timeline\", row: null, ctx: timelineCtx() };"
        },
        {
          "line": 310,
          "text": "}"
        },
        {
          "line": 311,
          "text": ""
        },
        {
          "line": 312,
          "text": "function navClass(type, id){"
        },
        {
          "line": 313,
          "text": "  return state.selected.type === type && state.selected.id === id ? \"nav-card active\" : \"nav-card\";"
        },
        {
          "line": 314,
          "text": "}"
        },
        {
          "line": 315,
          "text": ""
        },
        {
          "line": 316,
          "text": "function renderNav(){"
        },
        {
          "line": 317,
          "text": "  $(\"executionNav\").innerHTML = `<button class=\"${navClass(\"timeline\",\"timeline\")}\" data-select-type=\"timeline\" data-select-id=\"timeline\"><b>Execution Timeline</b><span>global runtime plus target evidence</span></button>`;"
        },
        {
          "line": 318,
          "text": ""
        },
        {
          "line": 319,
          "text": "  const phases = state.canon.phases || [];"
        },
        {
          "line": 320,
          "text": "  if (!phases.length) {"
        },
        {
          "line": 321,
          "text": "    $(\"phaseNav\").innerHTML = `<div class=\"empty\">No phase rows exposed</div>`;"
        },
        {
          "line": 322,
          "text": "    return;"
        },
        {
          "line": 323,
          "text": "  }"
        },
        {
          "line": 324,
          "text": ""
        },
        {
          "line": 325,
          "text": "  $(\"phaseNav\").innerHTML = phases.map(p => {"
        },
        {
          "line": 326,
          "text": "    const phaseId = String(p.phase_id || \"\");"
        },
        {
          "line": 327,
          "text": "    const selectedCategoryId = String(state.selected.id || \"\");"
        },
        {
          "line": 328,
          "text": "    const phaseIsActive = state.selected.type === \"phase\" && state.selected.id === phaseId;"
        }
      ]
    },
    {
      "line": 352,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderTopbar(){",
      "context_start": 344,
      "context_end": 364,
      "context": [
        {
          "line": 344,
          "text": "          }"
        },
        {
          "line": 345,
          "text": "        </div>`"
        },
        {
          "line": 346,
          "text": "      : \"\";"
        },
        {
          "line": 347,
          "text": ""
        },
        {
          "line": 348,
          "text": "    return `<div class=\"phase-nav-group\" data-phase-id=\"${esc(phaseId)}\">${phaseButton}${categoryList}</div>`;"
        },
        {
          "line": 349,
          "text": "  }).join(\"\");"
        },
        {
          "line": 350,
          "text": "}"
        },
        {
          "line": 351,
          "text": ""
        },
        {
          "line": 352,
          "text": "function renderTopbar(){"
        },
        {
          "line": 353,
          "text": "  const rt = state.runtime || {};"
        },
        {
          "line": 354,
          "text": "  const items = ["
        },
        {
          "line": 355,
          "text": "    [\"Global Status\", up(rt.global_status || rt.status || \"MISSING\")],"
        },
        {
          "line": 356,
          "text": "    [\"Completion\", timelineCtx().authorized ? \"100%\" : \"PENDING\"],"
        },
        {
          "line": 357,
          "text": "    [\"Contract Gaps\", `${up(rt.contract_gap_status || \"MISSING\")} / ${Number(rt.contract_gap_open_count || 0)} open`],"
        },
        {
          "line": 358,
          "text": "    [\"Remote Evidence\", up(rt.yeffai_remote_evidence_item_audit_status || rt.remote_evidence_status || \"MISSING\")],"
        },
        {
          "line": 359,
          "text": "    [\"Security\", up(rt.security_status || \"MISSING\")],"
        },
        {
          "line": 360,
          "text": "    [\"Next Action\", rt.next_required_action || rt.next_action || \"MISSING\"]"
        },
        {
          "line": 361,
          "text": "  ];"
        },
        {
          "line": 362,
          "text": "  $(\"topbar\").innerHTML = items.map(([k,v]) => `<div class=\"kpi\"><small>${esc(k)}</small><b>${esc(v)}</b></div>`).join(\"\");"
        },
        {
          "line": 363,
          "text": "}"
        },
        {
          "line": 364,
          "text": ""
        }
      ]
    },
    {
      "line": 377,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderHero(){",
      "context_start": 369,
      "context_end": 389,
      "context": [
        {
          "line": 369,
          "text": "  $(\"contextRing\").style.setProperty(\"--pct\", ctx.authorized ? ctx.percent : 0);"
        },
        {
          "line": 370,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-source\", \"contract-runtime-renderer-v4\");"
        },
        {
          "line": 371,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-scope\", ctx.scope);"
        },
        {
          "line": 372,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);"
        },
        {
          "line": 373,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-authority\", ctx.authority);"
        },
        {
          "line": 374,
          "text": "  $(\"contextRingLabel\").textContent = label(ctx);"
        },
        {
          "line": 375,
          "text": "}"
        },
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 384,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");"
        },
        {
          "line": 385,
          "text": "    return;"
        },
        {
          "line": 386,
          "text": "  }"
        },
        {
          "line": 387,
          "text": "  setHero(cur.ctx, \"Execution Timeline / Global\", \"Project and YEFF AI Runtime Monitor\", \"Global progress is blocked by open contract gaps, missing remote evidence, missing runtime binding or target server proof gaps.\");"
        },
        {
          "line": 388,
          "text": "}"
        },
        {
          "line": 389,
          "text": ""
        }
      ]
    },
    {
      "line": 390,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderCards(){",
      "context_start": 382,
      "context_end": 402,
      "context": [
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 384,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");"
        },
        {
          "line": 385,
          "text": "    return;"
        },
        {
          "line": 386,
          "text": "  }"
        },
        {
          "line": 387,
          "text": "  setHero(cur.ctx, \"Execution Timeline / Global\", \"Project and YEFF AI Runtime Monitor\", \"Global progress is blocked by open contract gaps, missing remote evidence, missing runtime binding or target server proof gaps.\");"
        },
        {
          "line": 388,
          "text": "}"
        },
        {
          "line": 389,
          "text": ""
        },
        {
          "line": 390,
          "text": "function renderCards(){"
        },
        {
          "line": 391,
          "text": "  const cur = current();"
        },
        {
          "line": 392,
          "text": "  let rows;"
        },
        {
          "line": 393,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 394,
          "text": "    rows = ["
        },
        {
          "line": 395,
          "text": "      [\"Scope\", \"PHASE\"],"
        },
        {
          "line": 396,
          "text": "      [\"Progress\", label(cur.ctx)],"
        },
        {
          "line": 397,
          "text": "      [\"Categories\", cur.ctx.total],"
        },
        {
          "line": 398,
          "text": "      [\"Done\", cur.ctx.done]"
        },
        {
          "line": 399,
          "text": "    ];"
        },
        {
          "line": 400,
          "text": "  } else if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 401,
          "text": "    rows = ["
        },
        {
          "line": 402,
          "text": "      [\"Scope\", \"CATEGORY\"],"
        }
      ]
    },
    {
      "line": 435,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderTable(){",
      "context_start": 427,
      "context_end": 447,
      "context": [
        {
          "line": 427,
          "text": "    <td><span class=\"context-name\">${esc(c.title)}</span><span class=\"sub\">${esc(c.phase_id)} / ${esc(c.category_id)}</span></td>"
        },
        {
          "line": 428,
          "text": "    <td>${badge(ctx.status)}</td>"
        },
        {
          "line": 429,
          "text": "    <td>${progressCell(ctx)}</td>"
        },
        {
          "line": 430,
          "text": "    <td>${esc(c.evidence_path)}</td>"
        },
        {
          "line": 431,
          "text": "    <td>${esc(c.next_action)}</td>"
        },
        {
          "line": 432,
          "text": "  </tr>`;"
        },
        {
          "line": 433,
          "text": "}"
        },
        {
          "line": 434,
          "text": ""
        },
        {
          "line": 435,
          "text": "function renderTable(){"
        },
        {
          "line": 436,
          "text": "  let title = \"Execution Categories\";"
        },
        {
          "line": 437,
          "text": "  let rows = state.canon.categories;"
        },
        {
          "line": 438,
          "text": "  const cur = current();"
        },
        {
          "line": 439,
          "text": ""
        },
        {
          "line": 440,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 441,
          "text": "    title = \"Phase Categories\";"
        },
        {
          "line": 442,
          "text": "    rows = phaseRows(cur.row.phase_id);"
        },
        {
          "line": 443,
          "text": "  }"
        },
        {
          "line": 444,
          "text": ""
        },
        {
          "line": 445,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 446,
          "text": "    title = \"Category Evidence\";"
        },
        {
          "line": 447,
          "text": "    rows = [cur.row];"
        }
      ]
    },
    {
      "line": 468,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function renderEvidence(){",
      "context_start": 460,
      "context_end": 480,
      "context": [
        {
          "line": 460,
          "text": "    <tbody>${rows.map(categoryRow).join(\"\")}</tbody>"
        },
        {
          "line": 461,
          "text": "  </table>`;"
        },
        {
          "line": 462,
          "text": "}"
        },
        {
          "line": 463,
          "text": ""
        },
        {
          "line": 464,
          "text": "function kvRows(data){"
        },
        {
          "line": 465,
          "text": "  return Object.keys(data).sort().map(k => `<div class=\"kv\"><b>${esc(k)}</b><span>${esc(data[k])}</span></div>`).join(\"\");"
        },
        {
          "line": 466,
          "text": "}"
        },
        {
          "line": 467,
          "text": ""
        },
        {
          "line": 468,
          "text": "function renderEvidence(){"
        },
        {
          "line": 469,
          "text": "  const mount = $(\"runtimeGovernanceMount\");"
        },
        {
          "line": 470,
          "text": "  if (!mount) return;"
        },
        {
          "line": 471,
          "text": ""
        },
        {
          "line": 472,
          "text": "  const cur = current();"
        },
        {
          "line": 473,
          "text": "  if (cur.type !== \"timeline\") {"
        },
        {
          "line": 474,
          "text": "    mount.innerHTML = \"\";"
        },
        {
          "line": 475,
          "text": "    return;"
        },
        {
          "line": 476,
          "text": "  }"
        },
        {
          "line": 477,
          "text": ""
        },
        {
          "line": 478,
          "text": "  const rt = state.runtime || {};"
        },
        {
          "line": 479,
          "text": ""
        },
        {
          "line": 480,
          "text": "  mount.innerHTML = ["
        }
      ]
    },
    {
      "line": 539,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "function render(){",
      "context_start": 531,
      "context_end": 551,
      "context": [
        {
          "line": 531,
          "text": "    '  <div class=\"table-wrap\" id=\"tableWrap\"></div>',"
        },
        {
          "line": 532,
          "text": "    '</section>',"
        },
        {
          "line": 533,
          "text": "    '<section id=\"runtimeGovernanceMount\"></section>'"
        },
        {
          "line": 534,
          "text": "  ];"
        },
        {
          "line": 535,
          "text": ""
        },
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        }
      ]
    },
    {
      "line": 541,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderTopbar();",
      "context_start": 533,
      "context_end": 553,
      "context": [
        {
          "line": 533,
          "text": "    '<section id=\"runtimeGovernanceMount\"></section>'"
        },
        {
          "line": 534,
          "text": "  ];"
        },
        {
          "line": 535,
          "text": ""
        },
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        }
      ]
    },
    {
      "line": 542,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderNav();",
      "context_start": 534,
      "context_end": 554,
      "context": [
        {
          "line": 534,
          "text": "  ];"
        },
        {
          "line": 535,
          "text": ""
        },
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        }
      ]
    },
    {
      "line": 543,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderHero();",
      "context_start": 535,
      "context_end": 555,
      "context": [
        {
          "line": 535,
          "text": ""
        },
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        },
        {
          "line": 555,
          "text": "  const runtime = await window.DevonRuntimeTruth.refresh();"
        }
      ]
    },
    {
      "line": 544,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderCards();",
      "context_start": 536,
      "context_end": 556,
      "context": [
        {
          "line": 536,
          "text": "  mount.innerHTML = nodes.join(\"\");"
        },
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        },
        {
          "line": 555,
          "text": "  const runtime = await window.DevonRuntimeTruth.refresh();"
        },
        {
          "line": 556,
          "text": "  const canonRes = await fetch(\"index.php?api=canon&v=\" + Date.now(), { cache: \"no-store\" });"
        }
      ]
    },
    {
      "line": 545,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderTable();",
      "context_start": 537,
      "context_end": 557,
      "context": [
        {
          "line": 537,
          "text": "  return true;"
        },
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        },
        {
          "line": 555,
          "text": "  const runtime = await window.DevonRuntimeTruth.refresh();"
        },
        {
          "line": 556,
          "text": "  const canonRes = await fetch(\"index.php?api=canon&v=\" + Date.now(), { cache: \"no-store\" });"
        },
        {
          "line": 557,
          "text": "  if (!canonRes.ok) throw new Error(\"canon_http_\" + canonRes.status);"
        }
      ]
    },
    {
      "line": 546,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  renderEvidence();",
      "context_start": 538,
      "context_end": 558,
      "context": [
        {
          "line": 538,
          "text": "}"
        },
        {
          "line": 539,
          "text": "function render(){"
        },
        {
          "line": 540,
          "text": "  if (!buildRuntimeContentShell()) return;"
        },
        {
          "line": 541,
          "text": "  renderTopbar();"
        },
        {
          "line": 542,
          "text": "  renderNav();"
        },
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        },
        {
          "line": 555,
          "text": "  const runtime = await window.DevonRuntimeTruth.refresh();"
        },
        {
          "line": 556,
          "text": "  const canonRes = await fetch(\"index.php?api=canon&v=\" + Date.now(), { cache: \"no-store\" });"
        },
        {
          "line": 557,
          "text": "  if (!canonRes.ok) throw new Error(\"canon_http_\" + canonRes.status);"
        },
        {
          "line": 558,
          "text": "  const canonRaw = await canonRes.json();"
        }
      ]
    },
    {
      "line": 551,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  render();",
      "context_start": 543,
      "context_end": 563,
      "context": [
        {
          "line": 543,
          "text": "  renderHero();"
        },
        {
          "line": 544,
          "text": "  renderCards();"
        },
        {
          "line": 545,
          "text": "  renderTable();"
        },
        {
          "line": 546,
          "text": "  renderEvidence();"
        },
        {
          "line": 547,
          "text": "}"
        },
        {
          "line": 548,
          "text": ""
        },
        {
          "line": 549,
          "text": "function select(type, id){"
        },
        {
          "line": 550,
          "text": "  state.selected = { type, id };"
        },
        {
          "line": 551,
          "text": "  render();"
        },
        {
          "line": 552,
          "text": "}"
        },
        {
          "line": 553,
          "text": ""
        },
        {
          "line": 554,
          "text": "async function load(){"
        },
        {
          "line": 555,
          "text": "  const runtime = await window.DevonRuntimeTruth.refresh();"
        },
        {
          "line": 556,
          "text": "  const canonRes = await fetch(\"index.php?api=canon&v=\" + Date.now(), { cache: \"no-store\" });"
        },
        {
          "line": 557,
          "text": "  if (!canonRes.ok) throw new Error(\"canon_http_\" + canonRes.status);"
        },
        {
          "line": 558,
          "text": "  const canonRaw = await canonRes.json();"
        },
        {
          "line": 559,
          "text": ""
        },
        {
          "line": 560,
          "text": "  state.runtime = obj(runtime) ? runtime : {};"
        },
        {
          "line": 561,
          "text": "  state.canon = {"
        },
        {
          "line": 562,
          "text": "    phases: canonPhases(canonRaw),"
        },
        {
          "line": 563,
          "text": "    categories: canonCategories(canonRaw)"
        }
      ]
    },
    {
      "line": 568,
      "score": 20,
      "reasons": [
        "status rendering",
        "UI structure area"
      ],
      "text": "    state.canon.phases = ids.map(id => ({ phase_id: id, title: id, status: \"MISSING\" }));",
      "context_start": 560,
      "context_end": 580,
      "context": [
        {
          "line": 560,
          "text": "  state.runtime = obj(runtime) ? runtime : {};"
        },
        {
          "line": 561,
          "text": "  state.canon = {"
        },
        {
          "line": 562,
          "text": "    phases: canonPhases(canonRaw),"
        },
        {
          "line": 563,
          "text": "    categories: canonCategories(canonRaw)"
        },
        {
          "line": 564,
          "text": "  };"
        },
        {
          "line": 565,
          "text": ""
        },
        {
          "line": 566,
          "text": "  if (!state.canon.phases.length && state.canon.categories.length) {"
        },
        {
          "line": 567,
          "text": "    const ids = [...new Set(state.canon.categories.map(c => c.phase_id))].filter(Boolean);"
        },
        {
          "line": 568,
          "text": "    state.canon.phases = ids.map(id => ({ phase_id: id, title: id, status: \"MISSING\" }));"
        },
        {
          "line": 569,
          "text": "  }"
        },
        {
          "line": 570,
          "text": ""
        },
        {
          "line": 571,
          "text": "  render();"
        },
        {
          "line": 572,
          "text": "}"
        },
        {
          "line": 573,
          "text": ""
        },
        {
          "line": 574,
          "text": "document.addEventListener(\"click\", (ev) => {"
        },
        {
          "line": 575,
          "text": "  const target = ev.target.closest(\"[data-select-type]\");"
        },
        {
          "line": 576,
          "text": "  if (target) {"
        },
        {
          "line": 577,
          "text": "    select(target.getAttribute(\"data-select-type\"), target.getAttribute(\"data-select-id\"));"
        },
        {
          "line": 578,
          "text": "    return;"
        },
        {
          "line": 579,
          "text": "  }"
        },
        {
          "line": 580,
          "text": "  const action = ev.target.closest(\"[data-action]\");"
        }
      ]
    },
    {
      "line": 571,
      "score": 20,
      "reasons": [
        "render function/marker"
      ],
      "text": "  render();",
      "context_start": 563,
      "context_end": 583,
      "context": [
        {
          "line": 563,
          "text": "    categories: canonCategories(canonRaw)"
        },
        {
          "line": 564,
          "text": "  };"
        },
        {
          "line": 565,
          "text": ""
        },
        {
          "line": 566,
          "text": "  if (!state.canon.phases.length && state.canon.categories.length) {"
        },
        {
          "line": 567,
          "text": "    const ids = [...new Set(state.canon.categories.map(c => c.phase_id))].filter(Boolean);"
        },
        {
          "line": 568,
          "text": "    state.canon.phases = ids.map(id => ({ phase_id: id, title: id, status: \"MISSING\" }));"
        },
        {
          "line": 569,
          "text": "  }"
        },
        {
          "line": 570,
          "text": ""
        },
        {
          "line": 571,
          "text": "  render();"
        },
        {
          "line": 572,
          "text": "}"
        },
        {
          "line": 573,
          "text": ""
        },
        {
          "line": 574,
          "text": "document.addEventListener(\"click\", (ev) => {"
        },
        {
          "line": 575,
          "text": "  const target = ev.target.closest(\"[data-select-type]\");"
        },
        {
          "line": 576,
          "text": "  if (target) {"
        },
        {
          "line": 577,
          "text": "    select(target.getAttribute(\"data-select-type\"), target.getAttribute(\"data-select-id\"));"
        },
        {
          "line": 578,
          "text": "    return;"
        },
        {
          "line": 579,
          "text": "  }"
        },
        {
          "line": 580,
          "text": "  const action = ev.target.closest(\"[data-action]\");"
        },
        {
          "line": 581,
          "text": "  if (action && action.getAttribute(\"data-action\") === \"reload\") {"
        },
        {
          "line": 582,
          "text": "    load().catch(err => {"
        },
        {
          "line": 583,
          "text": "      $(\"contextTitle\").textContent = \"Runtime load failed\";"
        }
      ]
    },
    {
      "line": 380,
      "score": 18,
      "reasons": [
        "progress/completion area",
        "UI structure area"
      ],
      "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");",
      "context_start": 372,
      "context_end": 392,
      "context": [
        {
          "line": 372,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);"
        },
        {
          "line": 373,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-authority\", ctx.authority);"
        },
        {
          "line": 374,
          "text": "  $(\"contextRingLabel\").textContent = label(ctx);"
        },
        {
          "line": 375,
          "text": "}"
        },
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        },
        {
          "line": 384,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / ${cur.row.category_id}`, cur.row.title, \"Category progress is individual and requires explicit contract status plus remote YEFF AI evidence.\");"
        },
        {
          "line": 385,
          "text": "    return;"
        },
        {
          "line": 386,
          "text": "  }"
        },
        {
          "line": 387,
          "text": "  setHero(cur.ctx, \"Execution Timeline / Global\", \"Project and YEFF AI Runtime Monitor\", \"Global progress is blocked by open contract gaps, missing remote evidence, missing runtime binding or target server proof gaps.\");"
        },
        {
          "line": 388,
          "text": "}"
        },
        {
          "line": 389,
          "text": ""
        },
        {
          "line": 390,
          "text": "function renderCards(){"
        },
        {
          "line": 391,
          "text": "  const cur = current();"
        },
        {
          "line": 392,
          "text": "  let rows;"
        }
      ]
    },
    {
      "line": 72,
      "score": 10,
      "reasons": [
        "progress/completion area"
      ],
      "text": ".progress{width:150px;height:8px;background:#e8eef7;border-radius:999px;overflow:hidden;margin-bottom:5px}",
      "context_start": 64,
      "context_end": 84,
      "context": [
        {
          "line": 64,
          "text": "th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}"
        },
        {
          "line": 65,
          "text": "td{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}"
        },
        {
          "line": 66,
          "text": ".context-name{font-family:Inter,system-ui,sans-serif;font-weight:900;font-size:14px}"
        },
        {
          "line": 67,
          "text": ".sub{display:block;color:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:3px}"
        },
        {
          "line": 68,
          "text": ".badge{display:inline-block;border-radius:999px;padding:5px 9px;font-weight:900;font-size:11px;border:1px solid var(--line)}"
        },
        {
          "line": 69,
          "text": ".badge.pass{color:var(--green);background:#ecfdf5;border-color:#bbf7d0}"
        },
        {
          "line": 70,
          "text": ".badge.fail{color:var(--red);background:#fef2f2;border-color:#fecaca}"
        },
        {
          "line": 71,
          "text": ".badge.missing{color:var(--orange);background:#fff7ed;border-color:#fed7aa}"
        },
        {
          "line": 72,
          "text": ".progress{width:150px;height:8px;background:#e8eef7;border-radius:999px;overflow:hidden;margin-bottom:5px}"
        },
        {
          "line": 73,
          "text": ".progress i{display:block;height:100%;width:calc(var(--pct,0)*1%);background:var(--blue)}"
        },
        {
          "line": 74,
          "text": ".grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}"
        },
        {
          "line": 75,
          "text": ".kv{display:grid;grid-template-columns:220px 1fr;gap:12px;padding:10px 18px;border-bottom:1px solid #edf2f7}"
        },
        {
          "line": 76,
          "text": ".kv b{color:var(--muted)}"
        },
        {
          "line": 77,
          "text": ".empty{padding:28px;color:var(--muted)}"
        },
        {
          "line": 78,
          "text": ".row-btn{cursor:pointer}"
        },
        {
          "line": 79,
          "text": ".row-btn:hover{background:var(--soft)}"
        },
        {
          "line": 80,
          "text": "@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{height:auto}.topbar{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr}.ring{justify-self:start}.cards{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}"
        },
        {
          "line": 81,
          "text": ""
        },
        {
          "line": 82,
          "text": "/* DEVON_UI_SIDEBAR_DH_THEME_CONTROLS_BEGIN */"
        },
        {
          "line": 83,
          "text": ".sidebar-actions {"
        },
        {
          "line": 84,
          "text": "  display: flex;"
        }
      ]
    },
    {
      "line": 73,
      "score": 10,
      "reasons": [
        "progress/completion area"
      ],
      "text": ".progress i{display:block;height:100%;width:calc(var(--pct,0)*1%);background:var(--blue)}",
      "context_start": 65,
      "context_end": 85,
      "context": [
        {
          "line": 65,
          "text": "td{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}"
        },
        {
          "line": 66,
          "text": ".context-name{font-family:Inter,system-ui,sans-serif;font-weight:900;font-size:14px}"
        },
        {
          "line": 67,
          "text": ".sub{display:block;color:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:3px}"
        },
        {
          "line": 68,
          "text": ".badge{display:inline-block;border-radius:999px;padding:5px 9px;font-weight:900;font-size:11px;border:1px solid var(--line)}"
        },
        {
          "line": 69,
          "text": ".badge.pass{color:var(--green);background:#ecfdf5;border-color:#bbf7d0}"
        },
        {
          "line": 70,
          "text": ".badge.fail{color:var(--red);background:#fef2f2;border-color:#fecaca}"
        },
        {
          "line": 71,
          "text": ".badge.missing{color:var(--orange);background:#fff7ed;border-color:#fed7aa}"
        },
        {
          "line": 72,
          "text": ".progress{width:150px;height:8px;background:#e8eef7;border-radius:999px;overflow:hidden;margin-bottom:5px}"
        },
        {
          "line": 73,
          "text": ".progress i{display:block;height:100%;width:calc(var(--pct,0)*1%);background:var(--blue)}"
        },
        {
          "line": 74,
          "text": ".grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}"
        },
        {
          "line": 75,
          "text": ".kv{display:grid;grid-template-columns:220px 1fr;gap:12px;padding:10px 18px;border-bottom:1px solid #edf2f7}"
        },
        {
          "line": 76,
          "text": ".kv b{color:var(--muted)}"
        },
        {
          "line": 77,
          "text": ".empty{padding:28px;color:var(--muted)}"
        },
        {
          "line": 78,
          "text": ".row-btn{cursor:pointer}"
        },
        {
          "line": 79,
          "text": ".row-btn:hover{background:var(--soft)}"
        },
        {
          "line": 80,
          "text": "@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{height:auto}.topbar{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr}.ring{justify-self:start}.cards{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}"
        },
        {
          "line": 81,
          "text": ""
        },
        {
          "line": 82,
          "text": "/* DEVON_UI_SIDEBAR_DH_THEME_CONTROLS_BEGIN */"
        },
        {
          "line": 83,
          "text": ".sidebar-actions {"
        },
        {
          "line": 84,
          "text": "  display: flex;"
        },
        {
          "line": 85,
          "text": "  align-items: center;"
        }
      ]
    },
    {
      "line": 371,
      "score": 10,
      "reasons": [
        "progress/completion area"
      ],
      "text": "  $(\"contextRing\").setAttribute(\"data-progress-scope\", ctx.scope);",
      "context_start": 363,
      "context_end": 383,
      "context": [
        {
          "line": 363,
          "text": "}"
        },
        {
          "line": 364,
          "text": ""
        },
        {
          "line": 365,
          "text": "function setHero(ctx, eyebrow, title, desc){"
        },
        {
          "line": 366,
          "text": "  $(\"contextEyebrow\").textContent = eyebrow;"
        },
        {
          "line": 367,
          "text": "  $(\"contextTitle\").textContent = title;"
        },
        {
          "line": 368,
          "text": "  $(\"contextDescription\").textContent = desc;"
        },
        {
          "line": 369,
          "text": "  $(\"contextRing\").style.setProperty(\"--pct\", ctx.authorized ? ctx.percent : 0);"
        },
        {
          "line": 370,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-source\", \"contract-runtime-renderer-v4\");"
        },
        {
          "line": 371,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-scope\", ctx.scope);"
        },
        {
          "line": 372,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-status\", ctx.status);"
        },
        {
          "line": 373,
          "text": "  $(\"contextRing\").setAttribute(\"data-progress-authority\", ctx.authority);"
        },
        {
          "line": 374,
          "text": "  $(\"contextRingLabel\").textContent = label(ctx);"
        },
        {
          "line": 375,
          "text": "}"
        },
        {
          "line": 376,
          "text": ""
        },
        {
          "line": 377,
          "text": "function renderHero(){"
        },
        {
          "line": 378,
          "text": "  const cur = current();"
        },
        {
          "line": 379,
          "text": "  if (cur.type === \"phase\" && cur.row) {"
        },
        {
          "line": 380,
          "text": "    setHero(cur.ctx, `${cur.row.phase_id} / Phase`, cur.row.title, \"Phase progress is derived only from its own category evidence.\");"
        },
        {
          "line": 381,
          "text": "    return;"
        },
        {
          "line": 382,
          "text": "  }"
        },
        {
          "line": 383,
          "text": "  if (cur.type === \"category\" && cur.row) {"
        }
      ]
    }
  ],
  "ids_preview": [
    {
      "line": 148,
      "id": "themeToggle"
    },
    {
      "line": 151,
      "id": "executionNav"
    },
    {
      "line": 153,
      "id": "phaseNav"
    },
    {
      "line": 157,
      "id": "topbar"
    },
    {
      "line": 158,
      "id": "runtimeMount"
    },
    {
      "line": 317,
      "id": "timeline"
    },
    {
      "line": 333,
      "id": "${esc(phaseId)}"
    },
    {
      "line": 341,
      "id": "${esc(categorySelectId)}"
    },
    {
      "line": 348,
      "id": "${esc(phaseId)}"
    },
    {
      "line": 426,
      "id": "${esc(id)}"
    },
    {
      "line": 483,
      "id": "runtimePanelTitle"
    },
    {
      "line": 483,
      "id": "runtimeBadge"
    },
    {
      "line": 484,
      "id": "runtimePanel"
    },
    {
      "line": 487,
      "id": "gapPanelTitle"
    },
    {
      "line": 487,
      "id": "gapBadge"
    },
    {
      "line": 488,
      "id": "gapPanel"
    },
    {
      "line": 522,
      "id": "contextEyebrow"
    },
    {
      "line": 523,
      "id": "contextTitle"
    },
    {
      "line": 524,
      "id": "contextDescription"
    },
    {
      "line": 526,
      "id": "contextRing"
    },
    {
      "line": 526,
      "id": "contextRingLabel"
    },
    {
      "line": 528,
      "id": "cards"
    },
    {
      "line": 530,
      "id": "tableTitle"
    },
    {
      "line": 530,
      "id": "tableMeta"
    },
    {
      "line": 531,
      "id": "tableWrap"
    },
    {
      "line": 533,
      "id": "runtimeGovernanceMount"
    }
  ],
  "classes_preview": [
    {
      "line": 142,
      "class": "app"
    },
    {
      "line": 143,
      "class": "sidebar"
    },
    {
      "line": 144,
      "class": "brand"
    },
    {
      "line": 144,
      "class": "logo"
    },
    {
      "line": 145,
      "class": "sidebar-actions"
    },
    {
      "line": 146,
      "class": "reload"
    },
    {
      "line": 147,
      "class": "dh-link"
    },
    {
      "line": 148,
      "class": "theme-toggle"
    },
    {
      "line": 150,
      "class": "nav-title"
    },
    {
      "line": 152,
      "class": "nav-title"
    },
    {
      "line": 156,
      "class": "main"
    },
    {
      "line": 157,
      "class": "topbar"
    },
    {
      "line": 158,
      "class": "content"
    },
    {
      "line": 172,
      "class": "badge ${statusClass(v)}"
    },
    {
      "line": 317,
      "class": "${navClass("
    },
    {
      "line": 321,
      "class": "empty"
    },
    {
      "line": 333,
      "class": "${navClass("
    },
    {
      "line": 336,
      "class": "phase-category-child-list"
    },
    {
      "line": 341,
      "class": "${navClass("
    },
    {
      "line": 343,
      "class": "empty"
    },
    {
      "line": 348,
      "class": "phase-nav-group"
    },
    {
      "line": 362,
      "class": "kpi"
    },
    {
      "line": 416,
      "class": "card"
    },
    {
      "line": 420,
      "class": "progress"
    },
    {
      "line": 420,
      "class": "sub"
    },
    {
      "line": 426,
      "class": "row-btn"
    },
    {
      "line": 427,
      "class": "context-name"
    },
    {
      "line": 427,
      "class": "sub"
    },
    {
      "line": 454,
      "class": "empty"
    },
    {
      "line": 465,
      "class": "kv"
    },
    {
      "line": 481,
      "class": "grid2"
    },
    {
      "line": 482,
      "class": "panel"
    },
    {
      "line": 483,
      "class": "panel-head"
    },
    {
      "line": 486,
      "class": "panel"
    },
    {
      "line": 487,
      "class": "panel-head"
    },
    {
      "line": 520,
      "class": "hero"
    },
    {
      "line": 522,
      "class": "eyebrow"
    },
    {
      "line": 526,
      "class": "ring"
    },
    {
      "line": 528,
      "class": "cards"
    },
    {
      "line": 529,
      "class": "panel"
    },
    {
      "line": 530,
      "class": "panel-head"
    },
    {
      "line": 531,
      "class": "table-wrap"
    }
  ],
  "script_tags_preview": [
    {
      "line": 7,
      "tag": "<script src=\"runtime_truth.js?v=clean-contract\">"
    },
    {
      "line": 7,
      "tag": "</script>"
    },
    {
      "line": 162,
      "tag": "<script>"
    },
    {
      "line": 595,
      "tag": "</script>"
    },
    {
      "line": 597,
      "tag": "<script>"
    },
    {
      "line": 642,
      "tag": "</script>"
    }
  ],
  "next_required_action": "PATCH_BY_REPLACE_ONLY_SELECTED_CANONICAL_CONTEXT"
}
