Skip to content

Instantly share code, notes, and snippets.

@potiuk
Last active May 19, 2026 10:07
Show Gist options
  • Select an option

  • Save potiuk/d593b7773847e5d2f8638ad59d355842 to your computer and use it in GitHub Desktop.

Select an option

Save potiuk/d593b7773847e5d2f8638ad59d355842 to your computer and use it in GitHub Desktop.
apache/airflow PR backlog dashboard — 2026-05-19
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>apache/airflow — PR backlog dashboard</title>
<style>
body { background:#0d1117; color:#c9d1d9; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
margin:0; padding:24px; max-width:1400px; margin:0 auto; }
h1 { color:#f0f6fc; margin:0 0 8px; }
h2 { color:#f0f6fc; margin:28px 0 12px; border-bottom:1px solid #30363d; padding-bottom:6px; }
.context { color:#8b949e; font-size:13px; margin-bottom:20px; }
.hero-row { display:flex; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
table { border-collapse:collapse; width:100%; font-size:13px; margin-top:8px; }
th, td { padding:6px 10px; text-align:right; border-bottom:1px solid #21262d; }
th { text-align:right; color:#8b949e; font-weight:600; background:#161b22; }
th:first-child, td:first-child { text-align:left; }
.total-row td { background:#21262d; font-weight:600; color:#f0f6fc; }
.area-name { color:#56d4dd; }
.triager-login { color:#58a6ff; font-weight:600; }
.bar-cell { width:200px; }
.legend { background:#161b22; border:1px solid #30363d; border-radius:6px; padding:14px; font-size:12px; color:#8b949e; }
details { background:#161b22; border:1px solid #30363d; border-radius:6px; padding:8px 14px; margin-bottom:12px; }
summary { cursor:pointer; color:#58a6ff; font-weight:600; padding:6px 0; }
.muted { color:#6e7681; }
.fail { color:#f85149; }
.warn { color:#d29922; }
.ok { color:#56d364; }
.ai-tag { color:#a371f7; }
.manual-tag { color:#58a6ff; }
.sparkbar { display:inline-block; width:6px; background:#58a6ff; margin-right:1px; vertical-align:bottom; border-radius:1px; }
.sparkbar.ai { background:#a371f7; }
</style></head>
<body>
<h1>apache/airflow — PR backlog dashboard</h1>
<div class="context">458 open PRs (non-bot) · closed/merged since 2026-04-07 (1084 PRs in window) · viewer @potiuk · 2026-05-19 00:00 UTC</div>
<h2>Backlog state</h2><div class="hero-row">
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Health</div>
<div style="font-size:24px;font-weight:600;color:#d29922;margin-top:4px;">⚠️ Needs attention</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">1 issue point(s)</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Total open</div>
<div style="font-size:24px;font-weight:600;color:#76e3ea;margin-top:4px;">458</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">344 contributors · 114 maintainers</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #56d364;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Ready for review</div>
<div style="font-size:24px;font-weight:600;color:#56d364;margin-top:4px;">154 <span style='font-size:14px;color:#8b949e;'>(<span style='color:#d29922;'>84</span> not engaged)</span></div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">contributor: 69 engaged + 84 not engaged</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Untriaged non-drafts</div>
<div style="font-size:24px;font-weight:600;color:#d29922;margin-top:4px;">20</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">>4w: 0 · 1-4w: 3</div>
</div>
</div>
<h2>Triage coverage — non-draft contributor PRs</h2>
<div class="muted" style="margin-bottom:8px;">AI / QC / Non-AI / Untriaged cards are computed over the <b>non-ready</b> subset only (88 PRs). Ready-labelled PRs are accounted for separately in the Ready card.</div>
<div class="hero-row">
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Total</div>
<div style="font-size:24px;font-weight:600;color:#76e3ea;margin-top:4px;">241</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">actionable scope</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #56d364;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Ready for maintainer review</div>
<div style="font-size:24px;font-weight:600;color:#56d364;margin-top:4px;">153 <span style="font-size:14px;color:#8b949e;">(<span style="color:#d29922;">84</span> not engaged)</span></div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">label-stamped queue · 84 of 153 had no maintainer touch</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #a371f7;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">AI / Quality-Criteria triaged</div>
<div style="font-size:24px;font-weight:600;color:#a371f7;margin-top:4px;"><span style="color:#a371f7;">55</span> <span style="color:#6e7681;">/</span> <span style="color:#58a6ff;">37</span></div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">AI footer / QC marker (non-ready only)</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Non-AI triaged</div>
<div style="font-size:24px;font-weight:600;color:#d29922;margin-top:4px;">13</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">engaged but no AI footer · ready-excluded</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #f85149;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Untriaged</div>
<div style="font-size:24px;font-weight:600;color:#f85149;margin-top:4px;">20</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">no maintainer engagement · ready-excluded</div>
</div>
</div>
<h2>Triage coverage — draft contributor PRs</h2>
<div class="hero-row">
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Total</div>
<div style="font-size:24px;font-weight:600;color:#76e3ea;margin-top:4px;">103</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">author's court; surface only</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #56d364;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Ready for maintainer review</div>
<div style="font-size:24px;font-weight:600;color:#56d364;margin-top:4px;">0 <span style="font-size:14px;color:#8b949e;">(<span style="color:#d29922;">0</span> not engaged)</span></div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">label-stamped queue · 0 of 0 had no maintainer touch</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #a371f7;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">AI / Quality-Criteria triaged</div>
<div style="font-size:24px;font-weight:600;color:#a371f7;margin-top:4px;"><span style="color:#a371f7;">71</span> <span style="color:#6e7681;">/</span> <span style="color:#58a6ff;">42</span></div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">AI footer / QC marker (overlap)</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Non-AI triaged</div>
<div style="font-size:24px;font-weight:600;color:#d29922;margin-top:4px;">7</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">engaged but no AI footer</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #f85149;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Untriaged</div>
<div style="font-size:24px;font-weight:600;color:#f85149;margin-top:4px;">25</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">no maintainer engagement</div>
</div>
</div>
<h2>What needs attention</h2>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #f85149;border-radius:6px;padding:12px 14px;margin-bottom:8px;">
<div style="font-size:14px;font-weight:600;color:#f0f6fc;">📥 154 PRs labeled &quot;ready for maintainer review&quot;</div>
<div style="font-size:13px;color:#8b949e;margin-top:4px;">The `ready for maintainer review` queue is past the triage stage; it needs maintainer review attention, not triage.</div>
<div style="margin-top:8px;"><code style="background:#0d1117;border:1px solid #30363d;padding:4px 8px;border-radius:4px;color:#58a6ff;">/pr-management-code-review ready</code></div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:12px 14px;margin-bottom:8px;">
<div style="font-size:14px;font-weight:600;color:#f0f6fc;">👀 Triage 3 non-draft PRs aged 1-4 weeks</div>
<div style="font-size:13px;color:#8b949e;margin-top:4px;">The 1–4w bucket is the queue&#x27;s leading edge; staying on top of it stops PRs from rolling into &gt;4w.</div>
<div style="margin-top:8px;"><code style="background:#0d1117;border:1px solid #30363d;padding:4px 8px;border-radius:4px;color:#58a6ff;">/pr-management-triage all PR issues</code></div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:6px;padding:12px 14px;margin-bottom:8px;">
<div style="font-size:14px;font-weight:600;color:#f0f6fc;">🔄 51 triaged PRs have author responses awaiting re-triage</div>
<div style="font-size:13px;color:#8b949e;margin-top:4px;">These will surface as request-author-confirmation (first leg of the two-sweep mark-ready gate) inside the regular triage sweep.</div>
<div style="margin-top:8px;"><code style="background:#0d1117;border:1px solid #30363d;padding:4px 8px;border-radius:4px;color:#58a6ff;">/pr-management-triage all PR issues</code></div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #6e7681;border-radius:6px;padding:12px 14px;margin-bottom:8px;">
<div style="font-size:14px;font-weight:600;color:#f0f6fc;">📈 Ready-for-review queue in &quot;providers&quot; grew by 17 this week</div>
<div style="font-size:13px;color:#8b949e;margin-top:4px;">Growth concentrated in one area suggests it&#x27;d benefit from a focused review pass.</div>
<div style="margin-top:8px;"><code style="background:#0d1117;border:1px solid #30363d;padding:4px 8px;border-radius:4px;color:#58a6ff;">/pr-management-code-review label:area:providers</code></div>
</div>
<h2>Contributor PR funnel</h2>
<div class="muted" style="margin-bottom:12px;">Where contributor non-bot PRs sit in the triage funnel. AI vs Non-AI is a clean partition of <i>Engaged</i>; QC-marker is reported separately (it overlaps both — AI templates include the link text, manual maintainers may also paste it).</div>
<div style="max-width:900px;">
<div style="display:flex;align-items:center;margin-left:0px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">Contributor non-bot PRs (open)</span>
</div>
<div style="color:#76e3ea;font-weight:600;font-size:18px;min-width:50px;text-align:right;">344</div>
</div>
<div style="display:flex;align-items:center;margin-left:28px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #6e7681;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">Drafts — author&#x27;s court</span> <span style="color:#6e7681;font-size:11px;">(30%)</span> <span style="color:#8b949e;font-size:11px;">— wait; author hasn't marked ready</span>
</div>
<div style="color:#6e7681;font-weight:600;font-size:18px;min-width:50px;text-align:right;">103</div>
</div>
<div style="display:flex;align-items:center;margin-left:28px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">Non-drafts</span> <span style="color:#6e7681;font-size:11px;">(70%)</span> <span style="color:#8b949e;font-size:11px;">— the actionable triage funnel</span>
</div>
<div style="color:#76e3ea;font-weight:600;font-size:18px;min-width:50px;text-align:right;">241</div>
</div>
<div style="display:flex;align-items:center;margin-left:56px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #56d364;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">✓ Engaged (any maintainer signal — comment, review, OR ready label)</span> <span style="color:#6e7681;font-size:11px;">(92%)</span>
</div>
<div style="color:#56d364;font-weight:600;font-size:18px;min-width:50px;text-align:right;">221</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #a371f7;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">AI-triaged</span> <span style="color:#6e7681;font-size:11px;">(43%)</span> <span style="color:#8b949e;font-size:11px;">— AI footer present in any maintainer comment</span>
</div>
<div style="color:#a371f7;font-weight:600;font-size:18px;min-width:50px;text-align:right;">94</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">Non-AI triaged</span> <span style="color:#6e7681;font-size:11px;">(19%)</span> <span style="color:#8b949e;font-size:11px;">— engaged via comment but no AI footer</span>
</div>
<div style="color:#d29922;font-weight:600;font-size:18px;min-width:50px;text-align:right;">43</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #58a6ff;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">Ready-only (label-add only)</span> <span style="color:#6e7681;font-size:11px;">(38%)</span> <span style="color:#8b949e;font-size:11px;">— label = engagement, but no comment trail</span>
</div>
<div style="color:#58a6ff;font-weight:600;font-size:18px;min-width:50px;text-align:right;">84</div>
</div>
<div style="display:flex;align-items:center;margin-left:56px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #f85149;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">✗ Untriaged (no engagement, no ready label)</span> <span style="color:#6e7681;font-size:11px;">(8%)</span>
</div>
<div style="color:#f85149;font-weight:600;font-size:18px;min-width:50px;text-align:right;">20</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #6e7681;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">&lt; 1 day</span> <span style="color:#6e7681;font-size:11px;">(35%)</span> <span style="color:#8b949e;font-size:11px;">— fresh; give triage time</span>
</div>
<div style="color:#6e7681;font-weight:600;font-size:18px;min-width:50px;text-align:right;">7</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">1-7 days</span> <span style="color:#6e7681;font-size:11px;">(50%)</span> <span style="color:#8b949e;font-size:11px;">— current week</span>
</div>
<div style="color:#d29922;font-weight:600;font-size:18px;min-width:50px;text-align:right;">10</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #d29922;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">1-4 weeks</span> <span style="color:#6e7681;font-size:11px;">(15%)</span> <span style="color:#8b949e;font-size:11px;">— leading edge</span>
</div>
<div style="color:#d29922;font-weight:600;font-size:18px;min-width:50px;text-align:right;">3</div>
</div>
<div style="display:flex;align-items:center;margin-left:84px;padding:6px 10px;background:#161b22;border:1px solid #30363d;border-left:4px solid #6e7681;border-radius:4px;margin-bottom:4px;">
<div style="flex:1;">
<span style="color:#f0f6fc;font-weight:600;">&gt; 4 weeks</span> <span style="color:#8b949e;font-size:11px;">— stale; high-priority triage target</span>
</div>
<div style="color:#6e7681;font-weight:600;font-size:18px;min-width:50px;text-align:right;">0</div>
</div>
</div>
<h2>Trends over time</h2>
<div class="muted" style="margin-bottom:12px;">Per-week snapshots over the last 6 weeks. Older weeks may slightly under-count PRs that closed before the cutoff (we don't have data for those).</div>
<h3 style="color:#f0f6fc;margin-top:20px;">Open backlog over time</h3>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">475</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">356</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">238</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">119</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,34.58947368421053 152.0,24.92631578947369 254.0,24.736842105263165 356.0,20.0 458.0,30.23157894736842 560.0,23.978947368421046" fill="none" stroke="#58a6ff" stroke-width="2.5"/><circle cx="50.0" cy="34.58947368421053" r="3" fill="#58a6ff"/><text x="50.0" y="26.58947368421053" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">398</text><circle cx="152.0" cy="24.92631578947369" r="3" fill="#58a6ff"/><text x="152.0" y="16.92631578947369" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">449</text><circle cx="254.0" cy="24.736842105263165" r="3" fill="#58a6ff"/><text x="254.0" y="16.736842105263165" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">450</text><circle cx="356.0" cy="20.0" r="3" fill="#58a6ff"/><text x="356.0" y="12.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">475</text><circle cx="458.0" cy="30.23157894736842" r="3" fill="#58a6ff"/><text x="458.0" y="22.23157894736842" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">421</text><circle cx="560.0" cy="23.978947368421046" r="3" fill="#58a6ff"/><text x="560.0" y="15.978947368421046" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">454</text><line x1="568" y1="30" x2="584" y2="30" stroke="#58a6ff" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#58a6ff"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Open PRs</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">open count</text></svg>
<table><tr><th>Week ending</th><th>Open count</th><th class="bar-cell">Bar</th></tr>
<tr><td>04-14</td><td>398</td><td><div style="background:#58a6ff;width:84%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>04-21</td><td>449 <span class="muted" style="font-size:11px;">(+51)</span></td><td><div style="background:#58a6ff;width:95%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>04-28</td><td>450 <span class="muted" style="font-size:11px;">(+1)</span></td><td><div style="background:#58a6ff;width:95%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-05</td><td>475 <span class="muted" style="font-size:11px;">(+25)</span></td><td><div style="background:#58a6ff;width:100%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-12</td><td>421 <span class="muted" style="font-size:11px;">(-54)</span></td><td><div style="background:#58a6ff;width:89%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-19</td><td>454 <span class="muted" style="font-size:11px;">(+33)</span></td><td><div style="background:#58a6ff;width:96%;height:12px;border-radius:2px;"></div></td></tr>
</table>
<div class="muted" style="margin-top:6px;">6-week trend: <span class="fail">+56</span> open PRs (start: 398, end: 454)</div>
<h3 style="color:#f0f6fc;margin-top:24px;">PRs opened by author class</h3>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">256</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">192</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">128</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">64</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,108.59375 152.0,108.59375 254.0,106.1328125 356.0,104.375 458.0,106.484375 560.0,99.453125" fill="none" stroke="#d29922" stroke-width="2.5"/><circle cx="50.0" cy="108.59375" r="3" fill="#d29922"/><text x="50.0" y="100.59375" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="152.0" cy="108.59375" r="3" fill="#d29922"/><text x="152.0" y="100.59375" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="254.0" cy="106.1328125" r="3" fill="#d29922"/><text x="254.0" y="98.1328125" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">11</text><circle cx="356.0" cy="104.375" r="3" fill="#d29922"/><text x="356.0" y="96.375" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">16</text><circle cx="458.0" cy="106.484375" r="3" fill="#d29922"/><text x="458.0" y="98.484375" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">10</text><circle cx="560.0" cy="99.453125" r="3" fill="#d29922"/><text x="560.0" y="91.453125" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">30</text><polyline points="50.0,93.828125 152.0,87.1484375 254.0,26.6796875 356.0,20.0 458.0,32.65625 560.0,37.2265625" fill="none" stroke="#76e3ea" stroke-width="2.5"/><circle cx="50.0" cy="93.828125" r="3" fill="#76e3ea"/><text x="50.0" y="85.828125" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">46</text><circle cx="152.0" cy="87.1484375" r="3" fill="#76e3ea"/><text x="152.0" y="79.1484375" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">65</text><circle cx="254.0" cy="26.6796875" r="3" fill="#76e3ea"/><text x="254.0" y="18.6796875" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">237</text><circle cx="356.0" cy="20.0" r="3" fill="#76e3ea"/><text x="356.0" y="12.0" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">256</text><circle cx="458.0" cy="32.65625" r="3" fill="#76e3ea"/><text x="458.0" y="24.65625" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">220</text><circle cx="560.0" cy="37.2265625" r="3" fill="#76e3ea"/><text x="560.0" y="29.2265625" fill="#76e3ea" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">207</text><polyline points="50.0,107.890625 152.0,107.890625 254.0,106.1328125 356.0,108.9453125 458.0,103.671875 560.0,101.9140625" fill="none" stroke="#6e7681" stroke-width="2.5"/><circle cx="50.0" cy="107.890625" r="3" fill="#6e7681"/><text x="50.0" y="99.890625" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="152.0" cy="107.890625" r="3" fill="#6e7681"/><text x="152.0" y="99.890625" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="254.0" cy="106.1328125" r="3" fill="#6e7681"/><text x="254.0" y="98.1328125" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">11</text><circle cx="356.0" cy="108.9453125" r="3" fill="#6e7681"/><text x="356.0" y="100.9453125" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">3</text><circle cx="458.0" cy="103.671875" r="3" fill="#6e7681"/><text x="458.0" y="95.671875" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">18</text><circle cx="560.0" cy="101.9140625" r="3" fill="#6e7681"/><text x="560.0" y="93.9140625" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">23</text><line x1="568" y1="30" x2="584" y2="30" stroke="#d29922" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#d29922"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">First-time</text><line x1="568" y1="46" x2="584" y2="46" stroke="#76e3ea" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#76e3ea"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Contributor</text><line x1="568" y1="62" x2="584" y2="62" stroke="#6e7681" stroke-width="2.5"/><circle cx="576" cy="62" r="3" fill="#6e7681"/><text x="588" y="66" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Maintainer</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">PRs opened</text></svg>
<table><tr><th>Week ending</th><th>FIRST_TIME</th><th>CONTRIBUTOR</th><th>Maintainer</th><th>Total</th><th class="bar-cell">Stacked</th></tr>
<tr>
<td>04-14</td>
<td class="warn">4</td>
<td style="color:#76e3ea;">46</td>
<td class="muted">6</td>
<td><b>56</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:1%;"></div>
<div style="background:#76e3ea;width:17%;"></div>
<div style="background:#6e7681;width:2%;"></div>
</div></td>
</tr>
<tr>
<td>04-21</td>
<td class="warn">4</td>
<td style="color:#76e3ea;">65</td>
<td class="muted">6</td>
<td><b>75</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:1%;"></div>
<div style="background:#76e3ea;width:24%;"></div>
<div style="background:#6e7681;width:2%;"></div>
</div></td>
</tr>
<tr>
<td>04-28</td>
<td class="warn">11</td>
<td style="color:#76e3ea;">237</td>
<td class="muted">11</td>
<td><b>259</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:4%;"></div>
<div style="background:#76e3ea;width:86%;"></div>
<div style="background:#6e7681;width:4%;"></div>
</div></td>
</tr>
<tr>
<td>05-05</td>
<td class="warn">16</td>
<td style="color:#76e3ea;">256</td>
<td class="muted">3</td>
<td><b>275</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:6%;"></div>
<div style="background:#76e3ea;width:93%;"></div>
<div style="background:#6e7681;width:1%;"></div>
</div></td>
</tr>
<tr>
<td>05-12</td>
<td class="warn">10</td>
<td style="color:#76e3ea;">220</td>
<td class="muted">18</td>
<td><b>248</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:4%;"></div>
<div style="background:#76e3ea;width:80%;"></div>
<div style="background:#6e7681;width:7%;"></div>
</div></td>
</tr>
<tr>
<td>05-19</td>
<td class="warn">30</td>
<td style="color:#76e3ea;">207</td>
<td class="muted">23</td>
<td><b>260</b></td>
<td><div style="display:flex;width:100%;height:14px;background:#0d1117;border-radius:2px;">
<div style="background:#d29922;width:11%;"></div>
<div style="background:#76e3ea;width:75%;"></div>
<div style="background:#6e7681;width:8%;"></div>
</div></td>
</tr>
</table>
<div class="muted" style="margin-top:6px;">6-week totals: <span class="warn">75</span> first-time · <span style="color:#76e3ea;">1031</span> contributor · <span class="muted">67</span> maintainer · <b>1173</b> total (6% first-time, 88% contributor, 6% maintainer)</div>
<h3 style="color:#f0f6fc;margin-top:24px;">Ready-for-review queue size over time</h3>
<div class="muted" style="margin-bottom:8px;">Cumulative count of currently-`ready for maintainer review` PRs that had been labelled by end-of-week.</div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">143</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">107</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">72</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">36</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,91.74825174825175 152.0,91.74825174825175 254.0,72.86713286713287 356.0,72.23776223776224 458.0,51.468531468531474 560.0,20.0" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="91.74825174825175" r="3" fill="#56d364"/><text x="50.0" y="83.74825174825175" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">29</text><circle cx="152.0" cy="91.74825174825175" r="3" fill="#56d364"/><text x="152.0" y="83.74825174825175" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">29</text><circle cx="254.0" cy="72.86713286713287" r="3" fill="#56d364"/><text x="254.0" y="64.86713286713287" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">59</text><circle cx="356.0" cy="72.23776223776224" r="3" fill="#56d364"/><text x="356.0" y="64.23776223776224" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">60</text><circle cx="458.0" cy="51.468531468531474" r="3" fill="#56d364"/><text x="458.0" y="43.468531468531474" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">93</text><circle cx="560.0" cy="20.0" r="3" fill="#56d364"/><text x="560.0" y="12.0" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">143</text><line x1="568" y1="30" x2="584" y2="30" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#56d364"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Ready PRs (cumulative)</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">ready count</text></svg>
<table><tr><th>Week ending</th><th>Ready count</th><th>Weekly +Δ</th><th class="bar-cell">Bar</th></tr>
<tr><td>04-14</td><td class="ok">29</td><td class="muted">—</td><td><div style="background:#56d364;width:20%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>04-21</td><td class="ok">29</td><td class="muted">+0</td><td><div style="background:#56d364;width:20%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>04-28</td><td class="ok">59</td><td class="warn">+30</td><td><div style="background:#56d364;width:41%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-05</td><td class="ok">60</td><td class="warn">+1</td><td><div style="background:#56d364;width:42%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-12</td><td class="ok">93</td><td class="warn">+33</td><td><div style="background:#56d364;width:65%;height:12px;border-radius:2px;"></div></td></tr>
<tr><td>05-19</td><td class="ok">143</td><td class="warn">+50</td><td><div style="background:#56d364;width:100%;height:12px;border-radius:2px;"></div></td></tr>
</table>
<div class="muted" style="margin-top:6px;">6-week trend: <span class="warn">+114</span> labelled-ready (start: 29, end: 143). Reflects net growth — PRs that lost the label are not in this dataset (currently-ready only).</div>
<h3 style="color:#f0f6fc;margin-top:24px;">Triage velocity (caveat: under-counts older weeks)</h3>
<div class="muted" style="margin-bottom:8px;">Count of PRs whose first <code>Pull Request quality criteria</code> marker comment fell in each week. ⚠ The closed-PR fetch caps comments at <code>last:25</code> — long-lived PRs whose triage marker is further back are systematically missed in early weeks.</div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">72</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">54</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">36</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">18</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,110.0 152.0,110.0 254.0,20.0 356.0,110.0 458.0,85.0 560.0,71.25" fill="none" stroke="#a371f7" stroke-width="2.5"/><circle cx="50.0" cy="110.0" r="3" fill="#a371f7"/><text x="50.0" y="102.0" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="152.0" cy="110.0" r="3" fill="#a371f7"/><text x="152.0" y="102.0" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="254.0" cy="20.0" r="3" fill="#a371f7"/><text x="254.0" y="12.0" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">72</text><circle cx="356.0" cy="110.0" r="3" fill="#a371f7"/><text x="356.0" y="102.0" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="458.0" cy="85.0" r="3" fill="#a371f7"/><text x="458.0" y="77.0" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">20</text><circle cx="560.0" cy="71.25" r="3" fill="#a371f7"/><text x="560.0" y="63.25" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">31</text><polyline points="50.0,110.0 152.0,110.0 254.0,106.25 356.0,110.0 458.0,110.0 560.0,110.0" fill="none" stroke="#58a6ff" stroke-width="2.5"/><circle cx="50.0" cy="110.0" r="3" fill="#58a6ff"/><text x="50.0" y="102.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="152.0" cy="110.0" r="3" fill="#58a6ff"/><text x="152.0" y="102.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="254.0" cy="106.25" r="3" fill="#58a6ff"/><text x="254.0" y="98.25" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">3</text><circle cx="356.0" cy="110.0" r="3" fill="#58a6ff"/><text x="356.0" y="102.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="458.0" cy="110.0" r="3" fill="#58a6ff"/><text x="458.0" y="102.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="560.0" cy="110.0" r="3" fill="#58a6ff"/><text x="560.0" y="102.0" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><line x1="568" y1="30" x2="584" y2="30" stroke="#a371f7" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#a371f7"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">AI-drafted</text><line x1="568" y1="46" x2="584" y2="46" stroke="#58a6ff" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#58a6ff"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Manual QC</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">markers / wk</text></svg>
<table><tr><th>Week ending</th><th>AI-drafted</th><th>Manual QC</th><th>Total</th><th class="bar-cell">Stacked</th></tr>
<tr>
<td>04-14</td>
<td class="ai-tag">0</td>
<td>0</td>
<td><b>0</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:0%;"></div>
<div style="background:#58a6ff;width:0%;"></div>
</div></td>
</tr>
<tr>
<td>04-21</td>
<td class="ai-tag">0</td>
<td>0</td>
<td><b>0</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:0%;"></div>
<div style="background:#58a6ff;width:0%;"></div>
</div></td>
</tr>
<tr>
<td>04-28</td>
<td class="ai-tag">72</td>
<td>3</td>
<td><b>75</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:96%;"></div>
<div style="background:#58a6ff;width:4%;"></div>
</div></td>
</tr>
<tr>
<td>05-05</td>
<td class="ai-tag">0</td>
<td>0</td>
<td><b>0</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:0%;"></div>
<div style="background:#58a6ff;width:0%;"></div>
</div></td>
</tr>
<tr>
<td>05-12</td>
<td class="ai-tag">20</td>
<td>0</td>
<td><b>20</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:27%;"></div>
<div style="background:#58a6ff;width:0%;"></div>
</div></td>
</tr>
<tr>
<td>05-19</td>
<td class="ai-tag">31</td>
<td>0</td>
<td><b>31</b></td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#a371f7;width:41%;"></div>
<div style="background:#58a6ff;width:0%;"></div>
</div></td>
</tr>
</table>
<h3 style="color:#f0f6fc;margin-top:24px;">Triage coverage rate by week opened</h3>
<div class="muted" style="margin-bottom:8px;">For PRs opened in each week, % that ever received maintainer engagement (comment, review, label, or QC marker). ⚠ Subject to the same comment-cap caveat as the triage-velocity panel for older weeks.</div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">100</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">75</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">50</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">25</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,36.2 152.0,53.3 254.0,71.3 356.0,77.6 458.0,73.1 560.0,81.2" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="36.2" r="3" fill="#56d364"/><text x="50.0" y="28.200000000000003" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">82</text><circle cx="152.0" cy="53.3" r="3" fill="#56d364"/><text x="152.0" y="45.3" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">63</text><circle cx="254.0" cy="71.3" r="3" fill="#56d364"/><text x="254.0" y="63.3" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">43</text><circle cx="356.0" cy="77.6" r="3" fill="#56d364"/><text x="356.0" y="69.6" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">36</text><circle cx="458.0" cy="73.1" r="3" fill="#56d364"/><text x="458.0" y="65.1" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">41</text><circle cx="560.0" cy="81.2" r="3" fill="#56d364"/><text x="560.0" y="73.2" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">32</text><line x1="568" y1="30" x2="584" y2="30" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#56d364"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Coverage %</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">% engaged</text></svg>
<table><tr><th>Week opened</th><th>Opened</th><th>Engaged</th><th>%</th><th class="bar-cell">Coverage</th></tr>
<tr>
<td>04-14</td>
<td>56</td>
<td class="ok">46</td>
<td style="color:#56d364; font-weight:600;">82%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:82%;"></div>
</div></td>
</tr>
<tr>
<td>04-21</td>
<td>75</td>
<td class="ok">47</td>
<td style="color:#56d364; font-weight:600;">63%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:63%;"></div>
</div></td>
</tr>
<tr>
<td>04-28</td>
<td>259</td>
<td class="ok">111</td>
<td style="color:#d29922; font-weight:600;">43%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:43%;"></div>
</div></td>
</tr>
<tr>
<td>05-05</td>
<td>275</td>
<td class="ok">100</td>
<td style="color:#d29922; font-weight:600;">36%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:36%;"></div>
</div></td>
</tr>
<tr>
<td>05-12</td>
<td>248</td>
<td class="ok">101</td>
<td style="color:#d29922; font-weight:600;">41%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:41%;"></div>
</div></td>
</tr>
<tr>
<td>05-19</td>
<td>260</td>
<td class="ok">82</td>
<td style="color:#d29922; font-weight:600;">32%</td>
<td><div style="display:flex;width:100%;height:12px;background:#0d1117;border-radius:2px;">
<div style="background:#56d364;width:32%;"></div>
</div></td>
</tr>
</table>
<h2>Closure velocity (last 6 weeks)</h2>
<div class="muted" style="margin-bottom:8px;">6-week total: <b>1077</b> · avg/wk: <b>180</b> · peak: <b>302</b></div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">212</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">159</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">106</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">53</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,106.17924528301887 152.0,103.20754716981132 254.0,34.009433962264154 356.0,20.0 458.0,20.424528301886795 560.0,27.641509433962256" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="106.17924528301887" r="3" fill="#56d364"/><text x="50.0" y="98.17924528301887" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="152.0" cy="103.20754716981132" r="3" fill="#56d364"/><text x="152.0" y="95.20754716981132" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">16</text><circle cx="254.0" cy="34.009433962264154" r="3" fill="#56d364"/><text x="254.0" y="26.009433962264154" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">179</text><circle cx="356.0" cy="20.0" r="3" fill="#56d364"/><text x="356.0" y="12.0" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">212</text><circle cx="458.0" cy="20.424528301886795" r="3" fill="#56d364"/><text x="458.0" y="12.424528301886795" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">211</text><circle cx="560.0" cy="27.641509433962256" r="3" fill="#56d364"/><text x="560.0" y="19.641509433962256" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">194</text><polyline points="50.0,107.02830188679245 152.0,106.60377358490567 254.0,76.4622641509434 356.0,93.86792452830188 458.0,71.36792452830188 560.0,95.99056603773585" fill="none" stroke="#6e7681" stroke-width="2.5"/><circle cx="50.0" cy="107.02830188679245" r="3" fill="#6e7681"/><text x="50.0" y="99.02830188679245" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">7</text><circle cx="152.0" cy="106.60377358490567" r="3" fill="#6e7681"/><text x="152.0" y="98.60377358490567" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">8</text><circle cx="254.0" cy="76.4622641509434" r="3" fill="#6e7681"/><text x="254.0" y="68.4622641509434" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">79</text><circle cx="356.0" cy="93.86792452830188" r="3" fill="#6e7681"/><text x="356.0" y="85.86792452830188" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">38</text><circle cx="458.0" cy="71.36792452830188" r="3" fill="#6e7681"/><text x="458.0" y="63.367924528301884" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">91</text><circle cx="560.0" cy="95.99056603773585" r="3" fill="#6e7681"/><text x="560.0" y="87.99056603773585" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">33</text><line x1="568" y1="30" x2="584" y2="30" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#56d364"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Merged</text><line x1="568" y1="46" x2="584" y2="46" stroke="#6e7681" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#6e7681"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Closed (not merged)</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">PRs / wk</text></svg>
<table><tr><th>Week ending</th><th>Merged</th><th>Closed</th><th class="bar-cell">Bar (stacked)</th></tr>
<tr><td>04-14</td><td class="ok">9</td><td class="muted">7</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:3%;"></div><div style="background:#6e7681;width:2%;"></div></div></td></tr>
<tr><td>04-21</td><td class="ok">16</td><td class="muted">8</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:5%;"></div><div style="background:#6e7681;width:3%;"></div></div></td></tr>
<tr><td>04-28</td><td class="ok">179</td><td class="muted">79</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:59%;"></div><div style="background:#6e7681;width:26%;"></div></div></td></tr>
<tr><td>05-05</td><td class="ok">212</td><td class="muted">38</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:70%;"></div><div style="background:#6e7681;width:13%;"></div></div></td></tr>
<tr><td>05-12</td><td class="ok">211</td><td class="muted">91</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:70%;"></div><div style="background:#6e7681;width:30%;"></div></div></td></tr>
<tr><td>05-19</td><td class="ok">194</td><td class="muted">33</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:64%;"></div><div style="background:#6e7681;width:11%;"></div></div></td></tr>
</table>
<h2>Opened vs closed momentum (last 6 weeks)</h2>
<div class="muted" style="margin-bottom:8px;">6-week: <b>1173</b> opened − <b>1077</b> closed = <b>+96</b> (growing)</div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">302</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">226</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">151</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">76</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,93.31125827814569 152.0,87.64900662251655 254.0,32.81456953642383 356.0,28.04635761589404 458.0,36.09271523178808 560.0,32.51655629139073" fill="none" stroke="#58a6ff" stroke-width="2.5"/><circle cx="50.0" cy="93.31125827814569" r="3" fill="#58a6ff"/><text x="50.0" y="85.31125827814569" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">56</text><circle cx="152.0" cy="87.64900662251655" r="3" fill="#58a6ff"/><text x="152.0" y="79.64900662251655" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">75</text><circle cx="254.0" cy="32.81456953642383" r="3" fill="#58a6ff"/><text x="254.0" y="24.814569536423832" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">259</text><circle cx="356.0" cy="28.04635761589404" r="3" fill="#58a6ff"/><text x="356.0" y="20.04635761589404" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">275</text><circle cx="458.0" cy="36.09271523178808" r="3" fill="#58a6ff"/><text x="458.0" y="28.092715231788077" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">248</text><circle cx="560.0" cy="32.51655629139073" r="3" fill="#58a6ff"/><text x="560.0" y="24.516556291390728" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">260</text><polyline points="50.0,105.23178807947019 152.0,102.8476821192053 254.0,33.11258278145695 356.0,35.496688741721854 458.0,20.0 560.0,42.35099337748345" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="105.23178807947019" r="3" fill="#56d364"/><text x="50.0" y="97.23178807947019" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">16</text><circle cx="152.0" cy="102.8476821192053" r="3" fill="#56d364"/><text x="152.0" y="94.8476821192053" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">24</text><circle cx="254.0" cy="33.11258278145695" r="3" fill="#56d364"/><text x="254.0" y="25.11258278145695" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">258</text><circle cx="356.0" cy="35.496688741721854" r="3" fill="#56d364"/><text x="356.0" y="27.496688741721854" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">250</text><circle cx="458.0" cy="20.0" r="3" fill="#56d364"/><text x="458.0" y="12.0" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">302</text><circle cx="560.0" cy="42.35099337748345" r="3" fill="#56d364"/><text x="560.0" y="34.35099337748345" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">227</text><line x1="568" y1="30" x2="584" y2="30" stroke="#58a6ff" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#58a6ff"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Opened</text><line x1="568" y1="46" x2="584" y2="46" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#56d364"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Closed</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">PRs / wk</text></svg>
<table><tr><th>Week ending</th><th>Opened</th><th>Closed</th><th>Net Δ</th><th class="bar-cell">Bars</th></tr>
<tr>
<td>04-14</td>
<td style="color:#58a6ff;">56</td>
<td class="ok">16</td>
<td class="fail">+40</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:19%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:5%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
<tr>
<td>04-21</td>
<td style="color:#58a6ff;">75</td>
<td class="ok">24</td>
<td class="fail">+51</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:25%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:8%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
<tr>
<td>04-28</td>
<td style="color:#58a6ff;">259</td>
<td class="ok">258</td>
<td class="fail">+1</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:86%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:85%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
<tr>
<td>05-05</td>
<td style="color:#58a6ff;">275</td>
<td class="ok">250</td>
<td class="fail">+25</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:91%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:83%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
<tr>
<td>05-12</td>
<td style="color:#58a6ff;">248</td>
<td class="ok">302</td>
<td class="ok">-54</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:82%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:100%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
<tr>
<td>05-19</td>
<td style="color:#58a6ff;">260</td>
<td class="ok">227</td>
<td class="fail">+33</td>
<td>
<div style="display:flex;align-items:center;gap:4px;">
<span style="font-size:10px;color:#58a6ff;width:32px;">open</span>
<div style="background:#58a6ff;width:86%;height:8px;border-radius:1px;"></div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:2px;">
<span style="font-size:10px;color:#56d364;width:32px;">closed</span>
<div style="background:#56d364;width:75%;height:8px;border-radius:1px;"></div>
</div>
</td>
</tr>
</table>
<h2>Closed by triage reason (per week)</h2>
<div class="muted" style="margin-bottom:8px;">6-week breakdown: <span class="ok">821 merged</span> · <span class="warn">20 engaged-then-closed</span> · <span class="fail">113 sweep-closed</span> · <span class="muted">123 no-triage</span></div>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">212</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">159</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">106</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">53</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,106.17924528301887 152.0,103.20754716981132 254.0,34.009433962264154 356.0,20.0 458.0,20.424528301886795 560.0,27.641509433962256" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="106.17924528301887" r="3" fill="#56d364"/><text x="50.0" y="98.17924528301887" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="152.0" cy="103.20754716981132" r="3" fill="#56d364"/><text x="152.0" y="95.20754716981132" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">16</text><circle cx="254.0" cy="34.009433962264154" r="3" fill="#56d364"/><text x="254.0" y="26.009433962264154" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">179</text><circle cx="356.0" cy="20.0" r="3" fill="#56d364"/><text x="356.0" y="12.0" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">212</text><circle cx="458.0" cy="20.424528301886795" r="3" fill="#56d364"/><text x="458.0" y="12.424528301886795" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">211</text><circle cx="560.0" cy="27.641509433962256" r="3" fill="#56d364"/><text x="560.0" y="19.641509433962256" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">194</text><polyline points="50.0,108.72641509433963 152.0,109.15094339622641 254.0,108.30188679245283 356.0,109.15094339622641 458.0,107.02830188679245 560.0,109.15094339622641" fill="none" stroke="#d29922" stroke-width="2.5"/><circle cx="50.0" cy="108.72641509433963" r="3" fill="#d29922"/><text x="50.0" y="100.72641509433963" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">3</text><circle cx="152.0" cy="109.15094339622641" r="3" fill="#d29922"/><text x="152.0" y="101.15094339622641" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">2</text><circle cx="254.0" cy="108.30188679245283" r="3" fill="#d29922"/><text x="254.0" y="100.30188679245283" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="356.0" cy="109.15094339622641" r="3" fill="#d29922"/><text x="356.0" y="101.15094339622641" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">2</text><circle cx="458.0" cy="107.02830188679245" r="3" fill="#d29922"/><text x="458.0" y="99.02830188679245" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">7</text><circle cx="560.0" cy="109.15094339622641" r="3" fill="#d29922"/><text x="560.0" y="101.15094339622641" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">2</text><polyline points="50.0,108.30188679245283 152.0,107.45283018867924 254.0,93.86792452830188 356.0,106.17924528301887 458.0,89.19811320754717 560.0,107.02830188679245" fill="none" stroke="#f85149" stroke-width="2.5"/><circle cx="50.0" cy="108.30188679245283" r="3" fill="#f85149"/><text x="50.0" y="100.30188679245283" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="152.0" cy="107.45283018867924" r="3" fill="#f85149"/><text x="152.0" y="99.45283018867924" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="254.0" cy="93.86792452830188" r="3" fill="#f85149"/><text x="254.0" y="85.86792452830188" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">38</text><circle cx="356.0" cy="106.17924528301887" r="3" fill="#f85149"/><text x="356.0" y="98.17924528301887" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="458.0" cy="89.19811320754717" r="3" fill="#f85149"/><text x="458.0" y="81.19811320754717" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">49</text><circle cx="560.0" cy="107.02830188679245" r="3" fill="#f85149"/><text x="560.0" y="99.02830188679245" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">7</text><polyline points="50.0,110.0 152.0,110.0 254.0,94.29245283018868 356.0,98.5377358490566 458.0,95.14150943396227 560.0,99.81132075471697" fill="none" stroke="#6e7681" stroke-width="2.5"/><circle cx="50.0" cy="110.0" r="3" fill="#6e7681"/><text x="50.0" y="102.0" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="152.0" cy="110.0" r="3" fill="#6e7681"/><text x="152.0" y="102.0" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">0</text><circle cx="254.0" cy="94.29245283018868" r="3" fill="#6e7681"/><text x="254.0" y="86.29245283018868" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">37</text><circle cx="356.0" cy="98.5377358490566" r="3" fill="#6e7681"/><text x="356.0" y="90.5377358490566" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">27</text><circle cx="458.0" cy="95.14150943396227" r="3" fill="#6e7681"/><text x="458.0" y="87.14150943396227" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">35</text><circle cx="560.0" cy="99.81132075471697" r="3" fill="#6e7681"/><text x="560.0" y="91.81132075471697" fill="#6e7681" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">24</text><line x1="568" y1="30" x2="584" y2="30" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#56d364"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Merged</text><line x1="568" y1="46" x2="584" y2="46" stroke="#d29922" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#d29922"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">After resp.</text><line x1="568" y1="62" x2="584" y2="62" stroke="#f85149" stroke-width="2.5"/><circle cx="576" cy="62" r="3" fill="#f85149"/><text x="588" y="66" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">Sweep-closed</text><line x1="568" y1="78" x2="584" y2="78" stroke="#6e7681" stroke-width="2.5"/><circle cx="576" cy="78" r="3" fill="#6e7681"/><text x="588" y="82" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">No triage</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">closed / wk</text></svg>
<table><tr><th>Week ending</th><th>Merged</th><th>After resp.</th><th>After triage (no resp.)</th><th>No triage</th><th class="bar-cell">Stacked</th></tr>
<tr><td>04-14</td><td class="ok">9</td><td class="warn">3</td><td class="fail">4</td><td class="muted">0</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:3%;"></div><div style="background:#d29922;width:1%;"></div><div style="background:#f85149;width:1%;"></div><div style="background:#6e7681;width:0%;"></div></div></td></tr>
<tr><td>04-21</td><td class="ok">16</td><td class="warn">2</td><td class="fail">6</td><td class="muted">0</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:5%;"></div><div style="background:#d29922;width:1%;"></div><div style="background:#f85149;width:2%;"></div><div style="background:#6e7681;width:0%;"></div></div></td></tr>
<tr><td>04-28</td><td class="ok">179</td><td class="warn">4</td><td class="fail">38</td><td class="muted">37</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:59%;"></div><div style="background:#d29922;width:1%;"></div><div style="background:#f85149;width:13%;"></div><div style="background:#6e7681;width:12%;"></div></div></td></tr>
<tr><td>05-05</td><td class="ok">212</td><td class="warn">2</td><td class="fail">9</td><td class="muted">27</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:70%;"></div><div style="background:#d29922;width:1%;"></div><div style="background:#f85149;width:3%;"></div><div style="background:#6e7681;width:9%;"></div></div></td></tr>
<tr><td>05-12</td><td class="ok">211</td><td class="warn">7</td><td class="fail">49</td><td class="muted">35</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:70%;"></div><div style="background:#d29922;width:2%;"></div><div style="background:#f85149;width:16%;"></div><div style="background:#6e7681;width:12%;"></div></div></td></tr>
<tr><td>05-19</td><td class="ok">194</td><td class="warn">2</td><td class="fail">7</td><td class="muted">24</td><td><div style="display:flex;width:100%;height:18px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:64%;"></div><div style="background:#d29922;width:1%;"></div><div style="background:#f85149;width:2%;"></div><div style="background:#6e7681;width:8%;"></div></div></td></tr>
</table>
<h2>Ready-for-review trend (top areas by ready count)</h2>
<svg viewBox="0 0 640 140" style="width:100%;max-width:640px;background:#0d1117;border:1px solid #30363d;border-radius:4px;margin-top:8px;"><line x1="50" y1="20.0" x2="560" y2="20.0" stroke="#21262d" stroke-width="1"/><text x="42" y="24.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">38</text><line x1="50" y1="42.5" x2="560" y2="42.5" stroke="#21262d" stroke-width="1"/><text x="42" y="46.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">28</text><line x1="50" y1="65.0" x2="560" y2="65.0" stroke="#21262d" stroke-width="1"/><text x="42" y="69.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">19</text><line x1="50" y1="87.5" x2="560" y2="87.5" stroke="#21262d" stroke-width="1"/><text x="42" y="91.5" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">10</text><line x1="50" y1="110.0" x2="560" y2="110.0" stroke="#21262d" stroke-width="1"/><text x="42" y="114.0" fill="#6e7681" font-size="10" text-anchor="end" font-family="monospace">0</text><text x="50.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-14</text><text x="152.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-21</text><text x="254.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">04-28</text><text x="356.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-05</text><text x="458.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-12</text><text x="560.0" y="126" fill="#8b949e" font-size="10" text-anchor="middle" font-family="monospace">05-19</text><polyline points="50.0,98.15789473684211 152.0,98.15789473684211 254.0,76.84210526315789 356.0,76.84210526315789 458.0,53.15789473684211 560.0,20.0" fill="none" stroke="#f85149" stroke-width="2.5"/><circle cx="50.0" cy="98.15789473684211" r="3" fill="#f85149"/><text x="50.0" y="90.15789473684211" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">5</text><circle cx="152.0" cy="98.15789473684211" r="3" fill="#f85149"/><text x="152.0" y="90.15789473684211" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">5</text><circle cx="254.0" cy="76.84210526315789" r="3" fill="#f85149"/><text x="254.0" y="68.84210526315789" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">14</text><circle cx="356.0" cy="76.84210526315789" r="3" fill="#f85149"/><text x="356.0" y="68.84210526315789" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">14</text><circle cx="458.0" cy="53.15789473684211" r="3" fill="#f85149"/><text x="458.0" y="45.15789473684211" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">24</text><circle cx="560.0" cy="20.0" r="3" fill="#f85149"/><text x="560.0" y="12.0" fill="#f85149" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">38</text><polyline points="50.0,88.6842105263158 152.0,88.6842105263158 254.0,67.36842105263159 356.0,65.0 458.0,48.421052631578945 560.0,22.368421052631575" fill="none" stroke="#d29922" stroke-width="2.5"/><circle cx="50.0" cy="88.6842105263158" r="3" fill="#d29922"/><text x="50.0" y="80.6842105263158" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="152.0" cy="88.6842105263158" r="3" fill="#d29922"/><text x="152.0" y="80.6842105263158" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="254.0" cy="67.36842105263159" r="3" fill="#d29922"/><text x="254.0" y="59.36842105263159" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">18</text><circle cx="356.0" cy="65.0" r="3" fill="#d29922"/><text x="356.0" y="57.0" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">19</text><circle cx="458.0" cy="48.421052631578945" r="3" fill="#d29922"/><text x="458.0" y="40.421052631578945" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">26</text><circle cx="560.0" cy="22.368421052631575" r="3" fill="#d29922"/><text x="560.0" y="14.368421052631575" fill="#d29922" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">37</text><polyline points="50.0,95.78947368421052 152.0,95.78947368421052 254.0,86.31578947368422 356.0,86.31578947368422 458.0,76.84210526315789 560.0,57.89473684210526" fill="none" stroke="#58a6ff" stroke-width="2.5"/><circle cx="50.0" cy="95.78947368421052" r="3" fill="#58a6ff"/><text x="50.0" y="87.78947368421052" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="152.0" cy="95.78947368421052" r="3" fill="#58a6ff"/><text x="152.0" y="87.78947368421052" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="254.0" cy="86.31578947368422" r="3" fill="#58a6ff"/><text x="254.0" y="78.31578947368422" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">10</text><circle cx="356.0" cy="86.31578947368422" r="3" fill="#58a6ff"/><text x="356.0" y="78.31578947368422" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">10</text><circle cx="458.0" cy="76.84210526315789" r="3" fill="#58a6ff"/><text x="458.0" y="68.84210526315789" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">14</text><circle cx="560.0" cy="57.89473684210526" r="3" fill="#58a6ff"/><text x="560.0" y="49.89473684210526" fill="#58a6ff" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">22</text><polyline points="50.0,105.26315789473685 152.0,105.26315789473685 254.0,98.15789473684211 356.0,98.15789473684211 458.0,86.31578947368422 560.0,67.36842105263159" fill="none" stroke="#a371f7" stroke-width="2.5"/><circle cx="50.0" cy="105.26315789473685" r="3" fill="#a371f7"/><text x="50.0" y="97.26315789473685" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">2</text><circle cx="152.0" cy="105.26315789473685" r="3" fill="#a371f7"/><text x="152.0" y="97.26315789473685" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">2</text><circle cx="254.0" cy="98.15789473684211" r="3" fill="#a371f7"/><text x="254.0" y="90.15789473684211" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">5</text><circle cx="356.0" cy="98.15789473684211" r="3" fill="#a371f7"/><text x="356.0" y="90.15789473684211" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">5</text><circle cx="458.0" cy="86.31578947368422" r="3" fill="#a371f7"/><text x="458.0" y="78.31578947368422" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">10</text><circle cx="560.0" cy="67.36842105263159" r="3" fill="#a371f7"/><text x="560.0" y="59.36842105263159" fill="#a371f7" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">18</text><polyline points="50.0,100.52631578947368 152.0,100.52631578947368 254.0,95.78947368421052 356.0,95.78947368421052 458.0,88.6842105263158 560.0,79.21052631578948" fill="none" stroke="#56d364" stroke-width="2.5"/><circle cx="50.0" cy="100.52631578947368" r="3" fill="#56d364"/><text x="50.0" y="92.52631578947368" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="152.0" cy="100.52631578947368" r="3" fill="#56d364"/><text x="152.0" y="92.52631578947368" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">4</text><circle cx="254.0" cy="95.78947368421052" r="3" fill="#56d364"/><text x="254.0" y="87.78947368421052" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="356.0" cy="95.78947368421052" r="3" fill="#56d364"/><text x="356.0" y="87.78947368421052" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">6</text><circle cx="458.0" cy="88.6842105263158" r="3" fill="#56d364"/><text x="458.0" y="80.6842105263158" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">9</text><circle cx="560.0" cy="79.21052631578948" r="3" fill="#56d364"/><text x="560.0" y="71.21052631578948" fill="#56d364" font-size="10" text-anchor="middle" font-weight="600" font-family="monospace">13</text><line x1="568" y1="30" x2="584" y2="30" stroke="#f85149" stroke-width="2.5"/><circle cx="576" cy="30" r="3" fill="#f85149"/><text x="588" y="34" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">providers</text><line x1="568" y1="46" x2="584" y2="46" stroke="#d29922" stroke-width="2.5"/><circle cx="576" cy="46" r="3" fill="#d29922"/><text x="588" y="50" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">task-sdk</text><line x1="568" y1="62" x2="584" y2="62" stroke="#58a6ff" stroke-width="2.5"/><circle cx="576" cy="62" r="3" fill="#58a6ff"/><text x="588" y="66" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">(no area)</text><line x1="568" y1="78" x2="584" y2="78" stroke="#a371f7" stroke-width="2.5"/><circle cx="576" cy="78" r="3" fill="#a371f7"/><text x="588" y="82" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">API</text><line x1="568" y1="94" x2="584" y2="94" stroke="#56d364" stroke-width="2.5"/><circle cx="576" cy="94" r="3" fill="#56d364"/><text x="588" y="98" fill="#c9d1d9" font-size="11" font-family="-apple-system,sans-serif">DAG-processing</text><text x="12" y="65.0" fill="#6e7681" font-size="10" text-anchor="middle" transform="rotate(-90 12 65.0)">cumulative ready</text></svg>
<table><tr><th>Area</th>
<th>04-14</th>
<th>04-21</th>
<th>04-28</th>
<th>05-05</th>
<th>05-12</th>
<th>05-19</th>
<th>+last 7d</th></tr>
<tr><td class="area-name">providers</td>
<td>5</td>
<td>5</td>
<td>14</td>
<td>14</td>
<td>24</td>
<td>38</td>
<td class="warn" style="font-weight:600;">+17</td></tr>
<tr><td class="area-name">task-sdk</td>
<td>9</td>
<td>9</td>
<td>18</td>
<td>19</td>
<td>26</td>
<td>37</td>
<td class="warn" style="font-weight:600;">+14</td></tr>
<tr><td class="area-name">(no area)</td>
<td>6</td>
<td>6</td>
<td>10</td>
<td>10</td>
<td>14</td>
<td>22</td>
<td class="warn" style="font-weight:600;">+9</td></tr>
<tr><td class="area-name">API</td>
<td>2</td>
<td>2</td>
<td>5</td>
<td>5</td>
<td>10</td>
<td>18</td>
<td class="warn" style="font-weight:600;">+8</td></tr>
<tr><td class="area-name">DAG-processing</td>
<td>4</td>
<td>4</td>
<td>6</td>
<td>6</td>
<td>9</td>
<td>13</td>
<td class="warn" style="font-weight:600;">+5</td></tr>
</table>
<h2>Ready-for-review queue by CODEOWNER</h2>
<div class="muted" style="margin-bottom:8px;">For each owner in <code>.github/CODEOWNERS</code>, count of currently-ready PRs that touch at least one file they own. A PR with multiple owners counts once per owner (rows can sum to more than 154). The <b style="color:#f85149;">Waiting for author response</b> column counts the subset where THAT owner has personally left a comment that the PR author hasn't replied or pushed past — i.e. the codeowner is currently expecting a response. Caveat: comment fetch capped at <code>last:10</code> per PR; older outstanding comments on chatty PRs may be missed.</div>
<table><tr><th>CODEOWNER</th><th>Ready PRs</th><th>Waiting for author response</th><th class="bar-cell">Bar (Ready / Waiting overlay)</th></tr>
<tr><td class="triager-login">@ashb</td><td><span style="color:#f85149;font-weight:600;">79</span> <span class="muted" style="font-size:11px;">(51% of queue)</span></td><td><span class="fail" style="font-weight:600;">1</span> <span class="muted" style="font-size:11px;">(1% of theirs)</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#f85149;width:100%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:1%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@amoghrajesh</td><td><span style="color:#f85149;font-weight:600;">61</span> <span class="muted" style="font-size:11px;">(40% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#f85149;width:77%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@kaxil</td><td><span style="color:#d29922;font-weight:600;">46</span> <span class="muted" style="font-size:11px;">(30% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:58%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@potiuk</td><td><span style="color:#d29922;font-weight:600;">32</span> <span class="muted" style="font-size:11px;">(21% of queue)</span></td><td><span class="fail" style="font-weight:600;">1</span> <span class="muted" style="font-size:11px;">(3% of theirs)</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:41%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:1%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@bugraoz93</td><td><span style="color:#d29922;font-weight:600;">30</span> <span class="muted" style="font-size:11px;">(19% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:38%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@XD-DENG</td><td><span style="color:#d29922;font-weight:600;">29</span> <span class="muted" style="font-size:11px;">(19% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:37%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@ephraimbuddy</td><td><span style="color:#d29922;font-weight:600;">24</span> <span class="muted" style="font-size:11px;">(16% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:30%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@choo121600</td><td><span style="color:#d29922;font-weight:600;">22</span> <span class="muted" style="font-size:11px;">(14% of queue)</span></td><td><span class="fail" style="font-weight:600;">1</span> <span class="muted" style="font-size:11px;">(5% of theirs)</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:28%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:1%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@jason810496</td><td><span style="color:#d29922;font-weight:600;">21</span> <span class="muted" style="font-size:11px;">(14% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#d29922;width:27%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@dheerajturaga</td><td><span style="color:#56d364;font-weight:600;">18</span> <span class="muted" style="font-size:11px;">(12% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:23%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@vatsrahul1001</td><td><span style="color:#56d364;font-weight:600;">17</span> <span class="muted" style="font-size:11px;">(11% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:22%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@pierrejeambrun</td><td><span style="color:#56d364;font-weight:600;">15</span> <span class="muted" style="font-size:11px;">(10% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:19%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@shubhamraj-git</td><td><span style="color:#56d364;font-weight:600;">14</span> <span class="muted" style="font-size:11px;">(9% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:18%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@jscheffl</td><td><span style="color:#56d364;font-weight:600;">13</span> <span class="muted" style="font-size:11px;">(8% of queue)</span></td><td><span class="fail" style="font-weight:600;">1</span> <span class="muted" style="font-size:11px;">(8% of theirs)</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:16%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:1%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@hussein-awala</td><td><span style="color:#56d364;font-weight:600;">12</span> <span class="muted" style="font-size:11px;">(8% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:15%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@gopidesupavan</td><td><span style="color:#56d364;font-weight:600;">12</span> <span class="muted" style="font-size:11px;">(8% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:15%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@rawwar</td><td><span style="color:#56d364;font-weight:600;">10</span> <span class="muted" style="font-size:11px;">(6% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:13%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@o-nikolas</td><td><span style="color:#56d364;font-weight:600;">10</span> <span class="muted" style="font-size:11px;">(6% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#56d364;width:13%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@bbovenzi</td><td><span style="color:#6e7681;font-weight:600;">9</span> <span class="muted" style="font-size:11px;">(6% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:11%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@ryanahamilton</td><td><span style="color:#6e7681;font-weight:600;">9</span> <span class="muted" style="font-size:11px;">(6% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:11%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@guan404ming</td><td><span style="color:#6e7681;font-weight:600;">9</span> <span class="muted" style="font-size:11px;">(6% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:11%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@jedcunningham</td><td><span style="color:#6e7681;font-weight:600;">8</span> <span class="muted" style="font-size:11px;">(5% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:10%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@bolkedebruin</td><td><span style="color:#6e7681;font-weight:600;">7</span> <span class="muted" style="font-size:11px;">(5% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:9%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@dstandish</td><td><span style="color:#6e7681;font-weight:600;">7</span> <span class="muted" style="font-size:11px;">(5% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:9%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@shahar1</td><td><span style="color:#6e7681;font-weight:600;">7</span> <span class="muted" style="font-size:11px;">(5% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:9%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@uranusjr</td><td><span style="color:#6e7681;font-weight:600;">4</span> <span class="muted" style="font-size:11px;">(3% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:5%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@Lee-W</td><td><span style="color:#6e7681;font-weight:600;">4</span> <span class="muted" style="font-size:11px;">(3% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:5%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@vincbeck</td><td><span style="color:#6e7681;font-weight:600;">3</span> <span class="muted" style="font-size:11px;">(2% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:4%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@mobuchowski</td><td><span style="color:#6e7681;font-weight:600;">2</span> <span class="muted" style="font-size:11px;">(1% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:3%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr><td class="triager-login">@RNHTTR</td><td><span style="color:#6e7681;font-weight:600;">1</span> <span class="muted" style="font-size:11px;">(1% of queue)</span></td><td><span class="muted">0</span></td><td><div style="position:relative;width:100%;height:14px;background:#0d1117;border-radius:2px;"><div style="background:#6e7681;width:1%;height:14px;border-radius:2px;position:absolute;left:0;top:0;"></div><div style="background:#f85149;width:0%;height:14px;border-radius:2px;position:absolute;left:0;top:0;opacity:0.85;"></div></div></td></tr>
<tr class="total-row">
<td><span class="fail">⚠ (no CODEOWNERS match)</span></td>
<td><span style="color:#f85149;font-weight:600;">36</span> <span class="muted" style="font-size:11px;">(23% of queue)</span></td>
<td class="muted">—</td>
<td><div style="background:#f85149;width:46%;height:14px;border-radius:2px;"></div></td>
</tr>
</table>
<details style="margin-top:8px;"><summary class="fail">36 ready PRs with no CODEOWNERS match — paths not covered by any pattern (click to expand)</summary><div class="muted" style="margin-top:6px;font-size:12px;"><a href="https://github.com/apache/airflow/pull/60507" style="color:#58a6ff;">#60507</a> <a href="https://github.com/apache/airflow/pull/61036" style="color:#58a6ff;">#61036</a> <a href="https://github.com/apache/airflow/pull/61866" style="color:#58a6ff;">#61866</a> <a href="https://github.com/apache/airflow/pull/62034" style="color:#58a6ff;">#62034</a> <a href="https://github.com/apache/airflow/pull/63471" style="color:#58a6ff;">#63471</a> <a href="https://github.com/apache/airflow/pull/63663" style="color:#58a6ff;">#63663</a> <a href="https://github.com/apache/airflow/pull/63737" style="color:#58a6ff;">#63737</a> <a href="https://github.com/apache/airflow/pull/64051" style="color:#58a6ff;">#64051</a> <a href="https://github.com/apache/airflow/pull/64665" style="color:#58a6ff;">#64665</a> <a href="https://github.com/apache/airflow/pull/64724" style="color:#58a6ff;">#64724</a> <a href="https://github.com/apache/airflow/pull/64815" style="color:#58a6ff;">#64815</a> <a href="https://github.com/apache/airflow/pull/65323" style="color:#58a6ff;">#65323</a> <a href="https://github.com/apache/airflow/pull/65442" style="color:#58a6ff;">#65442</a> <a href="https://github.com/apache/airflow/pull/65449" style="color:#58a6ff;">#65449</a> <a href="https://github.com/apache/airflow/pull/65613" style="color:#58a6ff;">#65613</a> <a href="https://github.com/apache/airflow/pull/65845" style="color:#58a6ff;">#65845</a> <a href="https://github.com/apache/airflow/pull/65878" style="color:#58a6ff;">#65878</a> <a href="https://github.com/apache/airflow/pull/65879" style="color:#58a6ff;">#65879</a> <a href="https://github.com/apache/airflow/pull/65991" style="color:#58a6ff;">#65991</a> <a href="https://github.com/apache/airflow/pull/66065" style="color:#58a6ff;">#66065</a> (+16 more)</div></details>
<details style="margin-top:8px;"><summary>9 CODEOWNERS with 0 ready PRs in the queue</summary><div class="muted" style="margin-top:6px;font-family:monospace;font-size:11px;">@BasPH, @Dev-iL, @Fokko, @dabla, @eladkal, @josh-fell, @romsharon98, @sekikn, @sjyangkevin</div></details>
<h2>Pressure by area (top 8)</h2>
<table><tr><th>Area</th><th>Pressure</th><th>Total</th><th>Contrib.</th><th>Untriaged &gt;4w</th><th>Untriaged 1-4w</th><th>Ready</th><th>Triaged waiting</th></tr>
<tr><td class="area-name">providers</td><td style="color:#f85149;font-weight:600;">94</td><td>136</td><td>98</td><td class="fail">0</td><td class="warn">1</td><td class="ok">41</td><td class="warn">6</td></tr>
<tr><td class="area-name">task-sdk</td><td style="color:#f85149;font-weight:600;">71</td><td>114</td><td>82</td><td class="fail">0</td><td class="warn">1</td><td class="ok">39</td><td class="warn">3</td></tr>
<tr><td class="area-name">(no area)</td><td style="color:#f85149;font-weight:600;">36</td><td>56</td><td>48</td><td class="fail">0</td><td class="warn">1</td><td class="ok">23</td><td class="warn">3</td></tr>
<tr><td class="area-name">API</td><td style="color:#f85149;font-weight:600;">30</td><td>57</td><td>42</td><td class="fail">0</td><td class="warn">0</td><td class="ok">18</td><td class="warn">3</td></tr>
<tr><td class="area-name">airflow-ctl</td><td style="color:#d29922;font-weight:600;">23</td><td>26</td><td>22</td><td class="fail">0</td><td class="warn">0</td><td class="ok">10</td><td class="warn">6</td></tr>
<tr><td class="area-name">DAG-processing</td><td style="color:#d29922;font-weight:600;">21</td><td>43</td><td>27</td><td class="fail">0</td><td class="warn">0</td><td class="ok">14</td><td class="warn">1</td></tr>
<tr><td class="area-name">Scheduler</td><td style="color:#d29922;font-weight:600;">20</td><td>34</td><td>24</td><td class="fail">0</td><td class="warn">1</td><td class="ok">9</td><td class="warn">3</td></tr>
<tr><td class="area-name">UI</td><td style="color:#d29922;font-weight:600;">15</td><td>27</td><td>18</td><td class="fail">0</td><td class="warn">0</td><td class="ok">8</td><td class="warn">2</td></tr>
</table>
<h2>Triage funnel (contributor non-drafts)</h2>
<div class="hero-row">
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #56d364;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Ready for review</div>
<div style="font-size:24px;font-weight:600;color:#56d364;margin-top:4px;">153</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">63% of non-draft contributors</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #76e3ea;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Responded (post-QC)</div>
<div style="font-size:24px;font-weight:600;color:#76e3ea;margin-top:4px;">52</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">22% · post-marker author activity</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #a371f7;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Waiting: AI-triage comment only</div>
<div style="font-size:24px;font-weight:600;color:#a371f7;margin-top:4px;">34</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">14% · only an AI-drafted comment pending</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #f85149;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Waiting: author response to maintainer</div>
<div style="font-size:24px;font-weight:600;color:#f85149;margin-top:4px;">21</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">9% · manual maintainer comment unresponded</div>
</div>
<div style="background:#161b22;border:1px solid #30363d;border-left:4px solid #58a6ff;border-radius:6px;padding:14px;flex:1;min-width:160px;">
<div style="font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.05em;">Not yet triaged</div>
<div style="font-size:24px;font-weight:600;color:#58a6ff;margin-top:4px;">20</div>
<div style="font-size:11px;color:#8b949e;margin-top:4px;">8%</div>
</div>
</div>
<div class="muted" style="margin-top:6px;font-size:12px;">The two waiting cards are mutually exclusive — a PR with both an unresponded AI-drafted and an unresponded manual maintainer comment counts only in the "author response to maintainer" bucket (higher priority).</div>
<h2>Triager activity (top 15 by PRs engaged, last 6 weeks)</h2>
<div class="muted" style="margin-bottom:8px;"><span class="ai-tag">●</span> AI-drafted (footer present) · <span class="manual-tag">●</span> Manually typed</div>
<table><tr><th>Triager</th>
<th>04-14</th>
<th>04-21</th>
<th>04-28</th>
<th>05-05</th>
<th>05-12</th>
<th>05-19</th>
<th>Total</th><th>AI / Manual</th><th class="bar-cell">Last 6w</th></tr>
<tr><td class="triager-login">@potiuk</td>
<td>8 <span class="muted" style="font-size:10px;">(<span class="manual-tag">8</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td>203 <span class="muted" style="font-size:10px;">(<span class="ai-tag">148</span>/<span class="manual-tag">55</span>)</span></td>
<td>26 <span class="muted" style="font-size:10px;">(<span class="ai-tag">6</span>/<span class="manual-tag">20</span>)</span></td>
<td>154 <span class="muted" style="font-size:10px;">(<span class="ai-tag">117</span>/<span class="manual-tag">37</span>)</span></td>
<td>143 <span class="muted" style="font-size:10px;">(<span class="ai-tag">113</span>/<span class="manual-tag">30</span>)</span></td>
<td><b>540</b></td>
<td><span class="ai-tag">384</span> / <span class="manual-tag">156</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:5px;display:block;"></span><span class="sparkbar ai" style="background:#a371f7;width:6px;height:15px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span><span class="sparkbar ai" style="background:#a371f7;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:4px;display:block;"></span><span class="sparkbar ai" style="background:#a371f7;width:6px;height:12px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:3px;display:block;"></span><span class="sparkbar ai" style="background:#a371f7;width:6px;height:11px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@jscheffl</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>20 <span class="muted" style="font-size:10px;">(<span class="manual-tag">20</span>)</span></td>
<td>25 <span class="muted" style="font-size:10px;">(<span class="manual-tag">25</span>)</span></td>
<td>21 <span class="muted" style="font-size:10px;">(<span class="manual-tag">21</span>)</span></td>
<td>23 <span class="muted" style="font-size:10px;">(<span class="manual-tag">23</span>)</span></td>
<td><b>95</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">95</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@eladkal</td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>13 <span class="muted" style="font-size:10px;">(<span class="manual-tag">13</span>)</span></td>
<td>14 <span class="muted" style="font-size:10px;">(<span class="manual-tag">14</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td><b>49</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">49</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@vatsrahul1001</td>
<td class="muted">·</td>
<td class="muted">·</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td class="muted">·</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>45 <span class="muted" style="font-size:10px;">(<span class="manual-tag">45</span>)</span></td>
<td><b>47</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">47</span></td>
<td><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:4px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@shahar1</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td>14 <span class="muted" style="font-size:10px;">(<span class="manual-tag">14</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td><b>37</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">37</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@bugraoz93</td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>10 <span class="muted" style="font-size:10px;">(<span class="manual-tag">10</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td><b>37</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">37</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@bbovenzi</td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>4 <span class="muted" style="font-size:10px;">(<span class="manual-tag">4</span>)</span></td>
<td>11 <span class="muted" style="font-size:10px;">(<span class="manual-tag">11</span>)</span></td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>15 <span class="muted" style="font-size:10px;">(<span class="manual-tag">15</span>)</span></td>
<td><b>37</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">37</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@vincbeck</td>
<td class="muted">·</td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>13 <span class="muted" style="font-size:10px;">(<span class="manual-tag">13</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>4 <span class="muted" style="font-size:10px;">(<span class="manual-tag">4</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td><b>31</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">31</span></td>
<td><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@pierrejeambrun</td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td class="muted">·</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td><b>28</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">28</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@choo121600</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td>4 <span class="muted" style="font-size:10px;">(<span class="manual-tag">4</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>10 <span class="muted" style="font-size:10px;">(<span class="ai-tag">5</span>/<span class="manual-tag">5</span>)</span></td>
<td><b>28</b></td>
<td><span class="ai-tag">5</span> / <span class="manual-tag">23</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span><span class="sparkbar ai" style="background:#a371f7;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@ashb</td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td class="muted">·</td>
<td>8 <span class="muted" style="font-size:10px;">(<span class="manual-tag">8</span>)</span></td>
<td>4 <span class="muted" style="font-size:10px;">(<span class="manual-tag">4</span>)</span></td>
<td>8 <span class="muted" style="font-size:10px;">(<span class="manual-tag">8</span>)</span></td>
<td>4 <span class="muted" style="font-size:10px;">(<span class="manual-tag">4</span>)</span></td>
<td><b>27</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">27</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@amoghrajesh</td>
<td class="muted">·</td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>8 <span class="muted" style="font-size:10px;">(<span class="manual-tag">8</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>6 <span class="muted" style="font-size:10px;">(<span class="manual-tag">6</span>)</span></td>
<td><b>23</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">23</span></td>
<td><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@jroachgolf84</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>5 <span class="muted" style="font-size:10px;">(<span class="manual-tag">5</span>)</span></td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td><b>19</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">19</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@Lee-W</td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>7 <span class="muted" style="font-size:10px;">(<span class="manual-tag">7</span>)</span></td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td>3 <span class="muted" style="font-size:10px;">(<span class="manual-tag">3</span>)</span></td>
<td><b>18</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">18</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
<tr><td class="triager-login">@ferruzzi</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td>2 <span class="muted" style="font-size:10px;">(<span class="manual-tag">2</span>)</span></td>
<td class="muted">·</td>
<td>1 <span class="muted" style="font-size:10px;">(<span class="manual-tag">1</span>)</span></td>
<td>8 <span class="muted" style="font-size:10px;">(<span class="manual-tag">8</span>)</span></td>
<td><b>14</b></td>
<td><span class="ai-tag">0</span> / <span class="manual-tag">14</span></td>
<td><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;"></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span><span style="display:inline-block;width:8px;vertical-align:bottom;"><span class="sparkbar manual-tag" style="background:#58a6ff;width:6px;height:2px;display:block;"></span></span></td>
</tr>
</table>
<details><summary>Detailed table 1: Triaged PRs — final state since 2026-04-07</summary>
<table><tr><th>Area</th><th>Triaged total</th><th>Merged</th><th>Closed</th><th>Responded</th><th>%Merged</th><th>%Closed</th><th>%Resp</th></tr>
<tr><td class="area-name">providers</td><td>62</td><td class="ok">22</td><td class="fail">40</td><td class="warn">21</td><td>35%</td><td>65%</td><td>34%</td></tr>
<tr><td class="area-name">(no area)</td><td>27</td><td class="ok">7</td><td class="fail">20</td><td class="warn">6</td><td>26%</td><td>74%</td><td>22%</td></tr>
<tr><td class="area-name">UI</td><td>22</td><td class="ok">5</td><td class="fail">17</td><td class="warn">8</td><td>23%</td><td>77%</td><td>36%</td></tr>
<tr><td class="area-name">task-sdk</td><td>20</td><td class="ok">4</td><td class="fail">16</td><td class="warn">2</td><td>20%</td><td>80%</td><td>10%</td></tr>
<tr><td class="area-name">API</td><td>17</td><td class="ok">4</td><td class="fail">13</td><td class="warn">8</td><td>24%</td><td>76%</td><td>47%</td></tr>
<tr><td class="area-name">dev-tools</td><td>13</td><td class="ok">1</td><td class="fail">12</td><td class="warn">3</td><td>8%</td><td>92%</td><td>23%</td></tr>
<tr><td class="area-name">helm-chart</td><td>10</td><td class="ok">1</td><td class="fail">9</td><td class="warn">0</td><td>10%</td><td>90%</td><td>0%</td></tr>
<tr><td class="area-name">airflow-ctl</td><td>8</td><td class="ok">2</td><td class="fail">6</td><td class="warn">4</td><td>25%</td><td>75%</td><td>50%</td></tr>
<tr><td class="area-name">DAG-processing</td><td>6</td><td class="ok">1</td><td class="fail">5</td><td class="warn">2</td><td>17%</td><td>83%</td><td>33%</td></tr>
<tr><td class="area-name">translations</td><td>6</td><td class="ok">3</td><td class="fail">3</td><td class="warn">2</td><td>50%</td><td>50%</td><td>33%</td></tr>
<tr><td class="area-name">CLI</td><td>6</td><td class="ok">3</td><td class="fail">3</td><td class="warn">5</td><td>50%</td><td>50%</td><td>83%</td></tr>
<tr><td class="area-name">ConfigTemplates</td><td>5</td><td class="ok">1</td><td class="fail">4</td><td class="warn">2</td><td>20%</td><td>80%</td><td>40%</td></tr>
<tr><td class="area-name">Scheduler</td><td>5</td><td class="ok">1</td><td class="fail">4</td><td class="warn">2</td><td>20%</td><td>80%</td><td>40%</td></tr>
<tr><td class="area-name">db-migrations</td><td>5</td><td class="ok">0</td><td class="fail">5</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr><td class="area-name">logging</td><td>3</td><td class="ok">1</td><td class="fail">2</td><td class="warn">1</td><td>33%</td><td>67%</td><td>33%</td></tr>
<tr><td class="area-name">secrets</td><td>1</td><td class="ok">1</td><td class="fail">0</td><td class="warn">1</td><td>100%</td><td>0%</td><td>100%</td></tr>
<tr><td class="area-name">deadline-alerts</td><td>1</td><td class="ok">0</td><td class="fail">1</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr><td class="area-name">Triggerer</td><td>1</td><td class="ok">0</td><td class="fail">1</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr><td class="area-name">plugins</td><td>1</td><td class="ok">0</td><td class="fail">1</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr><td class="area-name">Executors-core</td><td>1</td><td class="ok">0</td><td class="fail">1</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr><td class="area-name">serialization</td><td>1</td><td class="ok">0</td><td class="fail">1</td><td class="warn">0</td><td>0%</td><td>100%</td><td>0%</td></tr>
<tr class="total-row"><td>TOTAL (each PR once)</td><td>182</td><td class="ok">42</td><td class="fail">140</td><td class="warn">49</td><td>23%</td><td>77%</td><td>27%</td></tr>
</table></details>
<details><summary>Detailed table 2: Triaged PRs — still open</summary>
<table><tr><th>Area</th><th>Total</th><th>Contrib.</th><th>Drafts</th><th>Triaged waiting</th><th>Responded</th><th>Ready</th><th>Untriaged &gt;4w</th><th>Untriaged 1-4w</th><th>Pressure</th></tr>
<tr><td class="area-name">providers</td><td>136</td><td>98</td><td class="muted">23</td><td class="warn">6</td><td>28</td><td class="ok">41</td><td class="fail">0</td><td class="warn">1</td><td>94</td></tr>
<tr><td class="area-name">task-sdk</td><td>114</td><td>82</td><td class="muted">25</td><td class="warn">3</td><td>15</td><td class="ok">39</td><td class="fail">0</td><td class="warn">1</td><td>71</td></tr>
<tr><td class="area-name">API</td><td>57</td><td>42</td><td class="muted">14</td><td class="warn">3</td><td>11</td><td class="ok">18</td><td class="fail">0</td><td class="warn">0</td><td>30</td></tr>
<tr><td class="area-name">DAG-processing</td><td>43</td><td>27</td><td class="muted">8</td><td class="warn">1</td><td>7</td><td class="ok">14</td><td class="fail">0</td><td class="warn">0</td><td>21</td></tr>
<tr><td class="area-name">dev-tools</td><td>37</td><td>17</td><td class="muted">7</td><td class="warn">1</td><td>4</td><td class="ok">5</td><td class="fail">0</td><td class="warn">0</td><td>12</td></tr>
<tr><td class="area-name">Scheduler</td><td>34</td><td>24</td><td class="muted">7</td><td class="warn">3</td><td>4</td><td class="ok">9</td><td class="fail">0</td><td class="warn">1</td><td>20</td></tr>
<tr><td class="area-name">UI</td><td>27</td><td>18</td><td class="muted">3</td><td class="warn">2</td><td>4</td><td class="ok">8</td><td class="fail">0</td><td class="warn">0</td><td>15</td></tr>
<tr><td class="area-name">airflow-ctl</td><td>26</td><td>22</td><td class="muted">4</td><td class="warn">6</td><td>4</td><td class="ok">10</td><td class="fail">0</td><td class="warn">0</td><td>23</td></tr>
<tr><td class="area-name">ConfigTemplates</td><td>25</td><td>15</td><td class="muted">7</td><td class="warn">3</td><td>1</td><td class="ok">5</td><td class="fail">0</td><td class="warn">0</td><td>10</td></tr>
<tr><td class="area-name">Triggerer</td><td>22</td><td>16</td><td class="muted">7</td><td class="warn">3</td><td>1</td><td class="ok">8</td><td class="fail">0</td><td class="warn">1</td><td>11</td></tr>
<tr><td class="area-name">logging</td><td>17</td><td>13</td><td class="muted">2</td><td class="warn">1</td><td>1</td><td class="ok">6</td><td class="fail">0</td><td class="warn">0</td><td>15</td></tr>
<tr><td class="area-name">CLI</td><td>15</td><td>10</td><td class="muted">0</td><td class="warn">0</td><td>1</td><td class="ok">8</td><td class="fail">0</td><td class="warn">0</td><td>10</td></tr>
<tr><td class="area-name">Executors-core</td><td>12</td><td>4</td><td class="muted">1</td><td class="warn">0</td><td>1</td><td class="ok">2</td><td class="fail">0</td><td class="warn">0</td><td>3</td></tr>
<tr><td class="area-name">db-migrations</td><td>10</td><td>7</td><td class="muted">1</td><td class="warn">0</td><td>4</td><td class="ok">4</td><td class="fail">0</td><td class="warn">0</td><td>6</td></tr>
<tr><td class="area-name">translations</td><td>8</td><td>8</td><td class="muted">5</td><td class="warn">2</td><td>1</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>3</td></tr>
<tr><td class="area-name">go-sdk</td><td>8</td><td>2</td><td class="muted">1</td><td class="warn">0</td><td>0</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>1</td></tr>
<tr><td class="area-name">deadline-alerts</td><td>7</td><td>6</td><td class="muted">0</td><td class="warn">0</td><td>2</td><td class="ok">6</td><td class="fail">0</td><td class="warn">0</td><td>6</td></tr>
<tr><td class="area-name">helm-chart</td><td>7</td><td>6</td><td class="muted">2</td><td class="warn">1</td><td>2</td><td class="ok">0</td><td class="fail">0</td><td class="warn">0</td><td>10</td></tr>
<tr><td class="area-name">secrets</td><td>3</td><td>2</td><td class="muted">1</td><td class="warn">0</td><td>1</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>1</td></tr>
<tr><td class="area-name">core</td><td>3</td><td>3</td><td class="muted">1</td><td class="warn">0</td><td>0</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>2</td></tr>
<tr><td class="area-name">plugins</td><td>3</td><td>3</td><td class="muted">1</td><td class="warn">0</td><td>0</td><td class="ok">2</td><td class="fail">0</td><td class="warn">0</td><td>2</td></tr>
<tr><td class="area-name">serialization</td><td>2</td><td>1</td><td class="muted">0</td><td class="warn">0</td><td>0</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>1</td></tr>
<tr><td class="area-name">production-image</td><td>2</td><td>2</td><td class="muted">0</td><td class="warn">0</td><td>0</td><td class="ok">1</td><td class="fail">0</td><td class="warn">0</td><td>2</td></tr>
<tr><td class="area-name">registry</td><td>2</td><td>1</td><td class="muted">1</td><td class="warn">0</td><td>0</td><td class="ok">0</td><td class="fail">0</td><td class="warn">0</td><td>0</td></tr>
<tr><td class="area-name">dynamic-task-mapping</td><td>1</td><td>1</td><td class="muted">0</td><td class="warn">0</td><td>0</td><td class="ok">0</td><td class="fail">0</td><td class="warn">0</td><td>1</td></tr>
<tr><td class="area-name">kubernetes-tests</td><td>1</td><td>0</td><td class="muted">0</td><td class="warn">0</td><td>0</td><td class="ok">0</td><td class="fail">0</td><td class="warn">0</td><td>0</td></tr>
<tr><td class="area-name muted">(no area)</td><td>56</td><td>48</td><td class="muted">19</td><td class="warn">3</td><td>13</td><td class="ok">23</td><td class="fail">0</td><td class="warn">1</td><td>36</td></tr>
<tr class="total-row"><td>TOTAL (each PR once)</td><td>458</td><td>344</td><td class="muted">103</td><td class="warn">28</td><td>79</td><td class="ok">153</td><td class="fail">0</td><td class="warn">3</td><td>293</td></tr>
</table></details>
<h2>Legend</h2>
<div class="legend">
<p><b>Contributor</b> = PR author whose <code>authorAssociation</code> is NOT one of OWNER/MEMBER/COLLABORATOR (and not a bot).
<b>Maintainer</b> = OWNER/MEMBER/COLLABORATOR.
<b>Triaged</b> = a maintainer comment contains the literal substring <code>Pull Request quality criteria</code> (the link text in <code>pr-management-triage</code>'s violations comments).
<b>Non-AI triaged</b> = engaged but no AI-attribution footer in any maintainer comment (i.e. maintainer engaged through a non-AI path: hand-typed reviews, label-add without comment, etc.).
<b>AI-triaged</b> = a maintainer comment contains the <code>AI-assisted triage tool</code> attribution footer.
<b>Untriaged</b> = contributor non-bot PR with NO maintainer engagement AND NOT carrying the <code>ready for maintainer review</code> label.
<b>Responded</b> = author commented or pushed a commit after the triage marker.
<b>Pressure score</b> = weighted urgency per area; weights from <code>aggregate.md#pressure-score</code>: untriaged-old=5, untriaged-1-4w=3, untriaged-&lt;1w=1, triaged-waiting-stale=2, ready=1.</p>
<p><b>Opened vs closed momentum</b>: per week, count of PRs created in the window vs count of PRs closed/merged in the window. Net Δ &gt; 0 = backlog growing.</p>
<p><b>Triager activity</b>: distinct PRs each maintainer engaged with (commented on, reviewed, or labeled-ready). De-duped per maintainer per week per kind — so a maintainer posting 5 comments on the same PR in the same week counts as 1. <span class="ai-tag">●</span> AI = comment contained the `AI-assisted triage tool` footer; <span class="manual-tag">●</span> Manual = no footer (hand-typed).</p>
<p><b>Health rating</b> = points: untriaged&gt;4w (2pts) + untriaged 1-4w &gt; 30 (1pt) + ready &gt; 100 (1pt) + stale-triaged drafts &gt; 20 (1pt). 0 = ✅ Healthy, 1-2 = ⚠️ Needs attention, ≥3 = 🔥 Action needed.</p>
</div>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment