{# QA-033 — Executive Overview compact ASI breakdown. 10-row at-a-glance table ported from the Agents-tab _asi_rows.html, with: - tighter padding (4 px row vs 12 px) - shorter score bar (6 px vs 32 px) - no subtitle line ("Direct · indirect · multi-turn") — headline only - read-only (no
drawer) — the radar above is the deep view Same view-model contract — reads asi_rows[*] (.code, .name, .score_pct, .score_label, .is_pending, .is_attention, .weight_label, .weight_high, .findings.{critical,high,medium,low}, .status_label, .status_class). Live updates: each -like row carries data-live="asi-compact-{code}-*" keys so the SSE patcher can rewrite the score / AIVSS / status without a full reload. The scope prefix `asi-compact-` keeps these distinct from the Agents-tab `asi-{code}-score` keys so both surfaces can coexist in the DOM today (QA-030 deletes the Agents copy in a later ship). #}
    {# QA-046 (2026-06-02) — column header row. Uses the existing monospace eyebrow styling (.exec-asi-compact__head*) so it reads as a quiet all-caps strip above the body rows; spans line up 1:1 with the same grid template as .exec-asi-compact__row. role="row"/scope="col" gives the assistive-tech tree the same column semantics a real would. QA-064 + QA-065 (2026-06-03) — dropped the PROGRESS bar, WEIGHT chip, and STATUS pill columns. SCORE + C/H/M/L pills already carry the per- category signal; every row is COMPLETE post-scan so STATUS was dead pixels; and the weight multiplier belongs in the AIVSS receipt, not a per-row chip. Final column order: ASI · CATEGORY · SCORE · C/H/M/L. #}
  1. ASI Category Score C / H / M / L
  2. {% for row in asi_rows %} {% set _f = row.findings %} {% set _row_findings = (_f.critical | default(0)) + (_f.high | default(0)) + (_f.medium | default(0)) + (_f.low | default(0)) %} {% set _score_pct = row.score_pct | default(0) %} {% set _row_critical = (not row.is_pending) and (_score_pct | float < 40.0) %}
  3. {{ row.code }} {{ row.name }} {% if row.is_pending %}—{% else %}{{ row.score_label }}{% endif %} {{ _f.critical | default(0) }} {{ _f.high | default(0) }} {{ _f.medium | default(0) }} {{ _f.low | default(0) }}
  4. {% endfor %}