|
<!doctype html> |
|
<html lang="zh-Hant"> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
<title>PLS AI 預測驗證 Weekly Scorecard Dashboard</title> |
|
<style> |
|
:root{--ink:#16212b;--muted:#607080;--line:#d8dee7;--bg:#f6f8fb;--panel:#fff;--blue:#2457d6;--green:#14805a;--amber:#a35f00;--red:#b42318;--soft:#eef2f7} |
|
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5} |
|
header{background:#fff;border-bottom:1px solid var(--line);padding:22px clamp(18px,4vw,48px)}main{padding:22px clamp(18px,4vw,48px) 48px;display:grid;gap:16px} |
|
h1{margin:0;font-size:clamp(24px,3vw,36px);letter-spacing:0}h2{margin:0 0 12px;font-size:18px}h3{margin:0 0 8px;font-size:15px}p{margin:0 0 10px} |
|
.sub{color:var(--muted);max-width:1120px;margin-top:8px}.tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid var(--line);border-radius:999px;background:#fbfcfe;color:var(--muted);font-size:12px;margin-right:6px} |
|
.grid{display:grid;gap:16px}.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols2{grid-template-columns:repeat(2,minmax(0,1fr))} |
|
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px}.metric{min-height:112px;display:flex;flex-direction:column;justify-content:space-between}.label{font-size:13px;color:var(--muted)}.value{font-size:30px;font-weight:760}.ok{color:var(--green)}.warn{color:var(--amber)}.stop{color:var(--red)} |
|
table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}th{background:#fbfcfe;color:var(--muted)}code{background:var(--soft);border-radius:4px;padding:2px 5px;font-size:12px} |
|
.bar{height:10px;background:var(--soft);border-radius:999px;overflow:hidden}.fill{height:100%;background:var(--blue);width:72%}.fill.green{background:var(--green);width:86%}.fill.amber{background:var(--amber);width:20%}.fill.red{background:var(--red);width:14%} |
|
.state{border-left:4px solid var(--blue);padding-left:12px}.state.warn{border-color:var(--amber)}.state.stop{border-color:var(--red)} |
|
ul{padding-left:18px;margin:0}li{margin:6px 0}@media(max-width:980px){.cols4,.cols3,.cols2{grid-template-columns:1fr}} |
|
</style> |
|
</head> |
|
<body> |
|
<header> |
|
<h1>PLS Weekly Scorecard Dashboard</h1> |
|
<p class="sub">把 D30 adoption gate 變成 PLS 後台可實作的週卡:管理層看 gate,reviewers 看待修 backlog,worker 看下一輪派工。LINE 只推短摘要,證據留在後台與 artifact。</p> |
|
<p><span class="tag">Owner: Louis</span><span class="tag">Review: zihrou / iron</span><span class="tag">Due: 2026-06-21</span><span class="tag">Target: backend-ready card</span></p> |
|
</header> |
|
<main> |
|
<section class="grid cols4"> |
|
<div class="panel metric"><span class="label">Adoption Gate</span><span class="value ok">ship</span><span class="label">or repair_first / blocked</span></div> |
|
<div class="panel metric"><span class="label">Unknown Rate</span><span class="value warn">20%</span><span class="label"><div class="bar"><div class="fill amber"></div></div></span></div> |
|
<div class="panel metric"><span class="label">Routed Non-hit</span><span class="value ok">100%</span><span class="label"><div class="bar"><div class="fill green"></div></div></span></div> |
|
<div class="panel metric"><span class="label">Open Repair</span><span class="value stop">4</span><span class="label">source/rubric routes</span></div> |
|
</section> |
|
<section class="grid cols2"> |
|
<div class="panel"> |
|
<h2>Dashboard Card Layout</h2> |
|
<table> |
|
<tr><th>Zone</th><th>Purpose</th><th>User Action</th></tr> |
|
<tr><td>Gate Header</td><td>show ship / repair_first / blocked</td><td>Louis approves final gate</td></tr> |
|
<tr><td>Metric Strip</td><td>unknown, routed, agreement, savings</td><td>spot threshold break</td></tr> |
|
<tr><td>Top Repair Backlog</td><td>rank source/rubric fixes</td><td>zihrou/iron take owner tasks</td></tr> |
|
<tr><td>Evidence Drawer</td><td>run ids, route ids, sample refs</td><td>audit without LINE noise</td></tr> |
|
<tr><td>Next Worker Action</td><td>dispatch repair/dashboard/rerun</td><td>PLS creates next job</td></tr> |
|
</table> |
|
</div> |
|
<div class="panel"> |
|
<h2>Purpose-to-Purpose E2E</h2> |
|
<ul> |
|
<li>原始目的:驗證 AI review prediction 是否命中。</li> |
|
<li>產出物:PLS weekly scorecard card + API spec + worker dispatch rules。</li> |
|
<li>人採用:Louis 看 gate,zihrou/iron 看 backlog,worker 接 next action。</li> |
|
<li>指標改善:降低 unknown、縮短 repair cycle、減少人工 review、提高可採用 prediction pattern。</li> |
|
</ul> |
|
</div> |
|
</section> |
|
<section class="panel"> |
|
<h2>Card States</h2> |
|
<div class="grid cols3"> |
|
<div class="state"><h3>ship_weekly_scorecard</h3><p>所有 threshold 通過。顯示 publish 按鈕、LINE 草稿、下週 re-run 排程。</p></div> |
|
<div class="state warn"><h3>repair_first</h3><p>資料可用但 threshold 未過。顯示 top repair backlog,禁止 publish。</p></div> |
|
<div class="state stop"><h3>blocked</h3><p>run/source/owner decision 缺失。只顯示缺口、owner、due,不允許週報出街。</p></div> |
|
</div> |
|
</section> |
|
<section class="grid cols2"> |
|
<div class="panel"> |
|
<h2>Top Repair Backlog</h2> |
|
<table> |
|
<tr><th>Route</th><th>Owner</th><th>Due</th><th>Acceptance</th></tr> |
|
<tr><td>source_adapter_gap: action item stale</td><td>iron</td><td>2026-06-21</td><td>extractor version + source timestamp present</td></tr> |
|
<tr><td>rubric_fix: ambiguous success criteria</td><td>zihrou</td><td>2026-06-21</td><td>10-case historical recheck passes</td></tr> |
|
<tr><td>model_prompt_fix: weak-signal overprediction</td><td>PLS worker</td><td>2026-06-21</td><td>before/after eval delta positive</td></tr> |
|
</table> |
|
</div> |
|
<div class="panel"> |
|
<h2>Value / Money Path</h2> |
|
<ul> |
|
<li>營收:把可信 prediction pattern 擴到業務、客訴、特殊申請等高價流程。</li> |
|
<li>省成本:dashboard 直接顯示例外 backlog,降低 reviewer 逐案追問。</li> |
|
<li>降風險:blocked state 防止缺證據的 AI 成果進入管理週報。</li> |
|
<li>釋放人力:next worker action 自動派 repair/rerun/dashboard,不靠人腦續接。</li> |
|
</ul> |
|
</div> |
|
</section> |
|
<section class="grid cols3"> |
|
<div class="panel"><h2>Data / API</h2><p>使用 <code>weekly_prediction_scorecard_view</code>、<code>scorecard_repair_backlog_view</code>、<code>scorecard_evidence_drawer</code>、<code>worker_dispatch_recommendation</code>。API: <code>GET /scorecards/:id/card</code>、<code>POST /scorecards/:id/approve</code>、<code>POST /scorecards/:id/dispatch-next</code>。</p></div> |
|
<div class="panel"><h2>Permissions / Audit</h2><p>Louis 才能 approve gate;zihrou/iron 只能更新各自 backlog 狀態;worker 只能 recommend dispatch。所有操作保留 actor、metric snapshot hash、run ids、route ids。</p></div> |
|
<div class="panel"><h2>Human Capability</h2><p>把「看一堆檔案」變成「看 gate + backlog + next action」。人做判斷,AI 做證據整理、派工和節奏延續。</p></div> |
|
</section> |
|
<section class="panel"> |
|
<h2>LINE 草稿</h2> |
|
<p>本週 AI 預測驗證 scorecard 已可進 PLS 後台卡片。Louis 請選 ship/repair/block;若 repair_first,zihrou 看 rubric backlog、iron 看 source adapter backlog;若 ship,PLS 下週自動 re-run 並回報 gate 變化。</p> |
|
</section> |
|
</main> |
|
</body> |
|
</html> |