Skip to content

Instantly share code, notes, and snippets.

@esz135888
Last active May 23, 2026 19:53
Show Gist options
  • Select an option

  • Save esz135888/fa874a4744d472c44e73b3e6c36e5279 to your computer and use it in GitHub Desktop.

Select an option

Save esz135888/fa874a4744d472c44e73b3e6c36e5279 to your computer and use it in GitHub Desktop.
PLS job 38c0f113 AI prediction reviewer decision inbox

Acceptance Tests

Artifact kind: e2e_verification.

Reviewer Inbox 驗收

測試 方法 Pass
Inbox created 建立 inbox 連到 seed_queue_id,due_at <= 48h
Louis decision parse reply ACCEPT 或 REPLACE 被存成 reviewer_decision
zihrou decision parse reply TAXONOMY_OK 或 TAXONOMY_CHANGE 被存成 reviewer_decision
iron source readiness parse reply 至少 6 種 source 有 ready/gap
Go gate status calculation 三方決策齊備且 gap 有 owner/due 時 ready_for_d7
Silence rule time simulation 超過 48h 缺決策 -> blocked_by_silence + unblock_request
Audit DB check command_text 與 parsed_payload 都存在且 append-only
Duplicate prevention dispatch simulation blocked 時不派 generic dashboard build

E2E Verification

  1. Seed queue status=ready_for_review。
  2. 建 reviewer inbox。
  3. 發 LINE 草稿。
  4. 收 Louis/zihrou/iron 回覆。
  5. parse 成 reviewer_decision/source_readiness。
  6. 若 ready,export D7 runner input。
  7. 若 blocked,建立 unblock/source gap。

本輪驗證

  • HTML artifact 包含 D1/D7/D14/D30、目的到目的 E2E、價值/錢路徑、human capability、solution stack、LINE 草稿。
  • learning-memory.json 必須通過 JSON parser。
  • Durable Gist 必須 HTTP 200。
  • PLS upload-files 必須回 uploaded=8。

Owner / Due / Acceptance

  • Owner:Louis。
  • Reviewers:zihrou、iron。
  • Due:2026-05-31。
  • Acceptance:三方 reviewer decisions 齊備、source readiness/gap 完整、48h silence rule、decision-record 存檔。

Artifact URL Or PR

Durable primary artifact:

https://gist.github.com/esz135888/fa874a4744d472c44e73b3e6c36e5279

Verification:

  • Local JSON validation passed for learning-memory.json.
  • Required artifact anchors exist: market_context, production_readiness, e2e_verification, people_sync, learning_memory.
  • Gist must return HTTP 200 after redirect before PLS completion.

Data Model / API / 權限稽核

Artifact kind: production_readiness.

Tables

reviewer_decision_inbox

欄位 型別 必填 說明
id uuid yes inbox id
seed_queue_id uuid yes 連到 50 筆 seed queue
status enum yes waiting, partial, ready_for_d7, blocked_by_silence, blocked_by_source_gap
due_at timestamptz yes 預設 48 小時
line_thread_ref text no LINE 推送參照

reviewer_decision

欄位 型別 必填 說明
id uuid yes decision id
inbox_id uuid yes inbox
reviewer_person_id text yes Louis/zihrou/iron
reviewer_role enum yes seed_owner, taxonomy_reviewer, source_owner
decision_type enum yes accept, replace, taxonomy_ok, taxonomy_change, source_ready, source_gap
command_text text yes 原始可解析回覆
parsed_payload jsonb yes prediction ids/source type/due/owner
created_at timestamptz yes 回覆時間

source_readiness

欄位 型別 必填 說明
id uuid yes readiness id
inbox_id uuid yes inbox
source_type enum yes signals, action_items, github, worker_completion, deployment, human_review_note
readiness enum yes ready, gap
owner_person_id text no gap owner
due_at date no gap due
acceptance text no gap 完成條件

unblock_request

欄位 型別 必填 說明
id uuid yes unblock id
inbox_id uuid yes inbox
blocker_type enum yes silence, source_gap, taxonomy_change, seed_replace
owner_person_id text yes unblock owner
due_at timestamptz yes unblock deadline
message text yes 要推送的短訊息

API

POST /api/ai-prediction/reviewer-inboxes
POST /api/ai-prediction/reviewer-inboxes/:id/line-sync
POST /api/ai-prediction/reviewer-inboxes/:id/parse-reply
POST /api/ai-prediction/reviewer-inboxes/:id/source-readiness
POST /api/ai-prediction/reviewer-inboxes/:id/unblock-requests
GET  /api/ai-prediction/reviewer-inboxes/:id/status

權限

  • Louis:可 accept/replace seed queue。
  • zihrou:可 taxonomy_ok/taxonomy_change。
  • iron:可 source_ready/source_gap。
  • PLS worker:可 parse reply、建立 unblock request,不可替人做 accept。

稽核

  • reviewer_decision append-only。
  • 原始 command_text 必須保存。
  • source gap 必須有 owner/due/acceptance。
  • 超過 48 小時未回覆時,系統只能開 unblock request,不可假裝採納。

Decision Record

決策

本輪採用 Reviewer Decision Inbox,而不是再做 seed queue、runner 或 dashboard。

背景

AI 預測驗證已完成多個前置 artifact:calibration gate、Evidence Trial Runner、50 筆 Seed Queue Builder。下一個真阻塞點是人類採納訊號尚未結構化;如果沒有 Louis/zihrou/iron 的 decision record,PLS 不能安全進 D7。

選項

A. 再做 dashboard

缺點:沒有 reviewer decisions,dashboard 只會展示假進度。

B. 再做 seed queue

缺點:前輪已定義 seed queue;現在需要 adoption signal。

C. 做 Reviewer Decision Inbox

優點:把 Louis accept/replace、zihrou taxonomy、iron source readiness 全部變成可解析、可稽核、可觸發下一步的資料。

推薦

採用 C。

採用狀態

建議採用。未取得三方 reviewer decision 前,不應再派新的 dashboard/module build。

落地路徑

  1. 對 accepted seed queue 建 reviewer inbox。
  2. 發 LINE 草稿。
  3. parse 回覆成 reviewer_decision。
  4. 三方齊備 -> D7 runner。
  5. 沉默/source gap -> unblock/source adapter 工單。

不採用時需回饋

  • 是否已有 reviewer decision record?
  • 是否要改回覆格式?
  • 是否不需要 48h silence rule?
  • 哪個 reviewer 應改為 delegate?
{
"job_id": "38c0f113-02ff-4d6d-8a4b-cf2e376c7385",
"memory_type": "learning_memory",
"project": "AI 自建專案:公司AI化 的最大化推進",
"topic": "AI prediction verification reviewer decision inbox",
"market_context": [
"Production evaluation systems need human review decisions and audit trails, not only automated labels.",
"Observability tools validate traces/evals, but PLS must also capture management adoption signals from LINE and project owners.",
"The missing operational object after seed queue is reviewer decision, source readiness, and silence escalation."
],
"next_worker_instruction": "Before creating any new AI prediction verification build, check reviewer_decision_inbox. If Louis/zihrou/iron decisions are missing, route to reviewer_inbox or unblock_request. If source gaps exist, route to source_adapter_gap. Only when inbox status=ready_for_d7 should the D7 Evidence Trial Runner execute.",
"owners": {
"primary": "Louis",
"reviewers": ["zihrou", "iron"]
},
"acceptance": [
"Louis ACCEPT/REPLACE stored",
"zihrou TAXONOMY_OK/TAXONOMY_CHANGE stored",
"iron SOURCE_READY/SOURCE_GAP stored",
"source gaps include owner/due/acceptance",
"48h silence creates unblock_request",
"decision-record.md attached"
]
}

AI 預測驗證 Reviewer Decision Inbox - Production Brief

Artifact kind: primary_artifact, people_sync.

場景

前序成果已建立 calibration gate、D7 Evidence Trial Runner、50 筆 Seed Queue Builder。現在真正阻塞點是:Louis、zihrou、iron 的採納訊號還沒有被結構化,PLS 可能把沉默誤判成「需要再做一個 dashboard」。本輪產出 Reviewer Decision Inbox,讓人回覆能直接進 DB、觸發 D7 或開 unblock/source gap。

D1 / D7 / D14 / D30

時程 成果 Owner 驗收
D1 三人 reviewer inbox 合約 Louis 回覆格式與必填欄位定義完成
D7 決策齊備後進 trial Louis + zihrou + iron accept / taxonomy / source readiness 都有 append-only record
D14 沉默與缺口自動升級 PLS 48 小時未回覆會開 unblock request
D30 採納率進週會 Louis response SLA、source readiness、replace rate 每週更新

目的到目的 E2E

  1. Seed Queue Builder 產生 50 筆 selected prediction。
  2. Reviewer Decision Inbox 發送 Louis、zihrou、iron 的決策任務。
  3. 回覆被 parse 成 reviewer_decisionsource_readinessunblock_request
  4. 決策齊備則 export 給 D7 Evidence Trial Runner。
  5. 若 replace/taxonomy/source gap,PLS 產生對應修復任務。
  6. 若沉默超過 48 小時,不再重派 build,而是升級 unblock。

價值 / 錢路徑

  • 營收:高價值 prediction 可以更快進 trial,而不是停在等待拍板。
  • 成本:避免反覆產出 dashboard / module spec,降低 AI 工時浪費。
  • 風險:所有採納、替換、否決都有稽核記錄。
  • 轉換:LINE 訊息要求可機器解析的採納訊號。
  • 人力:zihrou/iron 不需要讀長文,只需回固定格式。

提升人的能力

  • Louis:把「拍板」變成具體 accept/replace,不再卡在抽象判斷。
  • zihrou:把管理判斷落到 taxonomy version。
  • iron:把技術可行性落到 source ready / source gap。
  • PLS:學會分辨人類沉默、source gap、seed 問題與真正的工程需求。

Solution Stack

本輪成果
脈絡框架 AI 預測驗證的下一步取決於 reviewer decisions,不是更多說明。
作業流程 seed queue -> reviewer inbox -> parse decision -> go/hold/stop -> D7 runner/unblock/source gap。
資料 / DB reviewer_decision_inboxreviewer_decisionsource_readinessunblock_request
工具 reviewer-decision-inbox.html 可直接當採納與 source readiness 作業頁。
驗收 三種 reviewer decision 齊備、48h silence rule、append-only audit。
採用升級 LINE 草稿用固定指令格式,回覆可進 PLS。

People Sync

LINE 草稿:

「AI 預測驗證現在缺的不是新工具,是三個決策:Louis 請回 ACCEPT 或 REPLACE;zihrou 請回 TAXONOMY_OK 或 TAXONOMY_CHANGE;iron 請回 SOURCE_READY 或 SOURCE_GAP。48 小時內沒有這三個訊號,PLS 不再重派 dashboard build,會改開 unblock request。」

下一輪升級

把真實 LINE 回覆 parse 成 reviewer decisions;若三者齊備,跑 D7 trial;若沉默,開 unblock request;若 source gap,開 adapter 工單。

<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AI 預測驗證 Reviewer Decision Inbox</title>
<style>
:root{--bg:#f5f1e8;--panel:#fffdf7;--ink:#20231f;--muted:#65685f;--line:#d6cdbc;--blue:#245d8f;--green:#15705f;--gold:#ad7415;--red:#a84b40}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font-family:"PingFang TC","Noto Sans TC",ui-sans-serif,system-ui,sans-serif;line-height:1.55}
header{padding:42px 6vw 30px;background:#fff8e7;border-bottom:1px solid var(--line)}
.eyebrow{color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
h1{max-width:1080px;margin:10px 0;font-size:clamp(34px,5vw,70px);line-height:1.04;letter-spacing:0}
.lede{max-width:940px;color:var(--muted);font-size:19px}
main{padding:28px 6vw 58px;display:grid;gap:18px}
section{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:0 12px 30px rgba(40,34,24,.08)}
h2{margin:0 0 14px;font-size:24px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.card{border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:15px}.tag{display:inline-flex;border:1px solid var(--line);border-radius:99px;padding:2px 9px;margin-bottom:9px;color:var(--muted);font-size:12px;font-weight:800}
table{width:100%;border-collapse:collapse;font-size:14px} th,td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:top} th{color:var(--blue);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
ul,ol{margin:0;padding-left:20px} li{margin:6px 0} code{background:#eee7dc;border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ok{color:var(--green);font-weight:800}.watch{color:var(--gold);font-weight:800}.stop{color:var(--red);font-weight:800}
@media(max-width:920px){header,main{padding-left:18px;padding-right:18px}.grid,.two{grid-template-columns:1fr}}
</style>
</head>
<body>
<header>
<div class="eyebrow">primary_artifact / people_sync / production_readiness</div>
<h1>AI 預測驗證 Reviewer Decision Inbox</h1>
<p class="lede">前序成果已定義 calibration gate、D7 runner、50 筆 seed queue。本輪建立「人要怎麼回覆才算採納」的 inbox:Louis 拍板 seed、zihrou 審 taxonomy、iron 回 source readiness,全部變成可入 DB、可稽核、可觸發下一步的 adoption signals。</p>
</header>
<main>
<section>
<h2>D1 / D7 / D14 / D30 路徑</h2>
<div class="grid">
<div class="card"><span class="tag">D1</span><strong>三人決策 inbox</strong><br>建立 Louis、zihrou、iron 三種回覆格式與必填欄位。</div>
<div class="card"><span class="tag">D7</span><strong>決策齊備才開跑</strong><br>50 筆 seed queue 需有 accept / replace / source_gap 三類決策記錄。</div>
<div class="card"><span class="tag">D14</span><strong>沉默升級</strong><br>超過 48 小時未回覆,自動產生 unblock request 而不是重派 build。</div>
<div class="card"><span class="tag">D30</span><strong>採納率週報</strong><br>把 reviewer response SLA、source readiness、替換率納入 AI 化週會。</div>
</div>
</section>
<section>
<h2>目的到目的 E2E</h2>
<div class="two">
<div class="card">
<ol>
<li>Seed Queue Builder 產生候選與 50 筆 selected queue。</li>
<li>Decision Inbox 發送三種角色任務。</li>
<li>人用固定格式回覆,PLS parse 成 reviewer decision。</li>
<li>全部必填決策齊備後,export 給 D7 Evidence Trial Runner。</li>
<li>缺口變成 unblock request、source adapter gap 或 seed replacement。</li>
</ol>
</div>
<div class="card">
<ul>
<li>專案改善:不再把「沒有人拍板」誤判成「需要再做一個工具」。</li>
<li>錢路徑:加速高價值 prediction 進 trial,避免重複 AI 工時。</li>
<li>風險改善:每個採納/否決都有 append-only decision record。</li>
<li>能力提升:Louis/zihrou/iron 的判斷被結構化,後續可學習。</li>
</ul>
</div>
</div>
</section>
<section>
<h2>Reviewer Inbox Contract</h2>
<table>
<thead><tr><th>Reviewer</th><th>要決定什麼</th><th>回覆格式</th><th>下一步</th></tr></thead>
<tbody>
<tr><td>Louis</td><td>50 筆 seed 是否代表本週最重要 AI 判斷</td><td><code>ACCEPT seed_queue_id</code> 或 <code>REPLACE prediction_id reason</code></td><td>accepted 後鎖 queue;replace 則補候選</td></tr>
<tr><td>zihrou</td><td>miss taxonomy 是否足以區分方向/資源/授權/執行</td><td><code>TAXONOMY_OK</code> 或 <code>TAXONOMY_CHANGE from -> to</code></td><td>更新 taxonomy version</td></tr>
<tr><td>iron</td><td>6 種 evidence source 是否可同步</td><td><code>SOURCE_READY type</code> 或 <code>SOURCE_GAP type owner due</code></td><td>ready 進 D7;gap 開 adapter 工單</td></tr>
</tbody>
</table>
</section>
<section>
<h2>Go / Hold / Stop</h2>
<div class="two">
<div class="card">
<ul>
<li><span class="ok">Go:</span> Louis accept、zihrou taxonomy ok、iron 至少 4/6 source ready,且 gap 有 owner/due。</li>
<li><span class="watch">Hold:</span> 有 replace 或 taxonomy change,需 24 小時內更新 queue。</li>
<li><span class="stop">Stop:</span> 超過 48 小時無 reviewer decision,不准再派 dashboard build。</li>
</ul>
</div>
<div class="card">
<p><strong>PLS 後台狀態:</strong><code>waiting_louis</code>、<code>waiting_zihrou</code>、<code>waiting_iron</code>、<code>ready_for_d7</code>、<code>blocked_by_source_gap</code>、<code>blocked_by_silence</code>。</p>
</div>
</div>
</section>
<section>
<h2>LINE 採納草稿</h2>
<div class="card">
<p>「AI 預測驗證現在缺的不是新工具,是三個決策:Louis 請回 ACCEPT 或 REPLACE;zihrou 請回 TAXONOMY_OK 或 TAXONOMY_CHANGE;iron 請回 SOURCE_READY 或 SOURCE_GAP。48 小時內沒有這三個訊號,PLS 不再重派 dashboard build,會改開 unblock request。」</p>
</div>
</section>
</main>
</body>
</html>

Market Context

Artifact kind: market_context.

Checked on 2026-05-24 Asia/Taipei.

Sources

Applied Learning

Current AI observability and evaluation practice emphasizes traces, eval datasets, labels, and review workflows. PLS has an extra management layer: a prediction is not adopted until responsible humans provide structured decisions. Therefore, reviewer decision capture is a production requirement, not a communication detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment