Skip to content

Instantly share code, notes, and snippets.

@esz135888
Last active May 24, 2026 04:04
Show Gist options
  • Select an option

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

Select an option

Save esz135888/504c2aa501c67312b74b6eb96b19ee1e to your computer and use it in GitHub Desktop.
PLS AI adoption assistant repo-to-revenue production pack

Acceptance Tests

Production Acceptance

  1. 主成果 HTML 可由公開 URL 開啟,回傳 HTTP 200。
  2. Gist 至少包含 13 個檔案,且含 production-brief.md、data-model.md、acceptance-tests.md、decision-record.md、artifact-url-or-pr.md。
  3. market-maturity.md 至少列 2 個外部市場來源 URL。
  4. dashboard 明確列 D1/D7/D14/D30、owner、money gate、GitHub signal、adoption evidence。
  5. data-model.md 含資料表、API/sync、permissions、audit/rollback。
  6. people-sync.md 含對 zihrou、Louis、iron/vincent 的 LINE 草稿與 expected reply。
  7. decision-record.md 含解法選型、未採選項、推薦理由、落地路徑。
  8. PLS upload-files 回傳 uploaded=13。
  9. PLS complete 回傳 status=completed。

Operational Acceptance

  • D7 pass:至少 1 個 repo event 被映射到 revenue_case,且 demo/PR 可開。
  • D14 pass:至少 2 筆 adoption_evidence verified。
  • D30 pass:pipeline/retained_value/cost_saved 合計達 NT$1M,或有正式 kill/merge/split/replace owner decision。

Failure Handling

  • 若 D7 無 demo/PR:lane 進入 red,觸發 owner-response watchdog。
  • 若 D14 無 adoption evidence:功能不再列為營收進度。
  • 若 D30 無 money signal:不得宣稱 AI 落地助手導入成功,必須換 owner 或縮小場景。
<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>AI落地助手導入 Repo-to-Revenue 作戰台</title>
<style>
:root {
--ink: #191816;
--muted: #69635a;
--paper: #faf7ef;
--line: #d8d0c0;
--blue: #2457ff;
--green: #0f8f6f;
--red: #c6422b;
--amber: #b76b00;
--panel: #fffdf8;
}
* { box-sizing: border-box; }
body {
margin: 0;
background:
linear-gradient(90deg, rgba(25,24,22,.06) 1px, transparent 1px) 0 0 / 42px 42px,
linear-gradient(rgba(25,24,22,.04) 1px, transparent 1px) 0 0 / 42px 42px,
var(--paper);
color: var(--ink);
font-family: "Avenir Next", "Noto Sans TC", sans-serif;
letter-spacing: 0;
}
header {
min-height: 74vh;
padding: 42px clamp(20px, 5vw, 72px);
display: grid;
grid-template-columns: 1.15fr .85fr;
gap: 32px;
align-items: end;
border-bottom: 2px solid var(--ink);
}
.kicker { font-size: 13px; color: var(--muted); text-transform: uppercase; font-weight: 800; }
h1 { font-size: clamp(42px, 7vw, 92px); line-height: .92; margin: 14px 0 20px; max-width: 980px; }
.thesis { font-size: clamp(18px, 2.2vw, 28px); line-height: 1.45; max-width: 900px; }
.target {
border: 2px solid var(--ink);
background: var(--panel);
padding: 24px;
box-shadow: 10px 10px 0 var(--ink);
}
.target strong { font-size: clamp(40px, 7vw, 84px); display: block; color: var(--blue); line-height: .9; }
.grid { padding: 36px clamp(18px, 4vw, 64px); display: grid; gap: 20px; }
.cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
section { border-bottom: 2px solid var(--ink); }
.card {
background: var(--panel);
border: 2px solid var(--ink);
padding: 18px;
min-height: 160px;
}
.card h2, .card h3 { margin: 0 0 12px; }
.tag { display: inline-block; border: 1px solid var(--ink); padding: 4px 8px; font-weight: 800; margin-bottom: 10px; }
.good { color: var(--green); }
.risk { color: var(--red); }
.warn { color: var(--amber); }
table { width: 100%; border-collapse: collapse; background: var(--panel); border: 2px solid var(--ink); }
th, td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
th { background: #eee6d5; }
.wide { grid-column: 1 / -1; }
.lane { display: grid; grid-template-columns: 150px 1fr 1fr 1fr; gap: 10px; align-items: stretch; }
.lane div { border: 1px solid var(--ink); background: var(--panel); padding: 12px; }
footer { padding: 28px clamp(18px, 4vw, 64px); color: var(--muted); }
@media (max-width: 900px) {
header, .cols-4, .cols-3 { grid-template-columns: 1fr; }
.lane { grid-template-columns: 1fr; }
.target { box-shadow: 6px 6px 0 var(--ink); }
}
</style>
</head>
<body>
<header>
<div>
<div class="kicker">PLS Production Pack / AI 自建專案</div>
<h1>AI落地助手導入 Repo-to-Revenue 作戰台</h1>
<p class="thesis">把 GitHub commits、PR、deploy 與 adoption evidence 接到專案進度、owner、驗收與下一輪交付節奏;目標不是寫更多更新,而是在 30 天內把財會 AI 落地助手推到可產生或保護至少 100 萬營收的管理節奏。</p>
</div>
<div class="target">
<span class="tag">North Star</span>
<strong>NT$1M</strong>
<p>30 天 pipeline / retained value gate:每個 repo 交付都必須對應一個客戶場景、一個採用證據、一個營收或節省金額假設。</p>
</div>
</header>
<section class="grid cols-4">
<div class="card"><span class="tag">D1</span><h2>凍結目標</h2><p>定義 3 個可賣場景:入離職權限、財會稽核、經辦交付檢查;每個場景指定 owner、demo URL、驗收人。</p></div>
<div class="card"><span class="tag">D7</span><h2>首個可驗證 demo</h2><p>zihrou 不再單點扛全部:系統整合、流程設計、經辦對接拆成三條 lane;PR 必須連 issue/milestone。</p></div>
<div class="card"><span class="tag">D14</span><h2>客戶證據</h2><p>至少 2 位經辦完成任務前後對照,量化節省時間、錯誤率、補件次數;無證據的功能暫停。</p></div>
<div class="card"><span class="tag">D30</span><h2>營收決策</h2><p>達成 100 萬 pipeline 或等值 retained value;若未達,必須有 kill/merge/split 決策與下一版 owner。</p></div>
</section>
<section class="grid cols-3">
<div class="card">
<h2>Repo Evidence</h2>
<p>GitHub issue/milestone/PR/deploy 狀態是唯一進度來源。每個 PR 必須帶 `revenue_case_id`、`acceptance_owner`、`demo_link`。</p>
</div>
<div class="card">
<h2>Adoption Evidence</h2>
<p>人採用不是口頭說有用,必須有任務紀錄、節省分鐘、錯誤下降、客戶或經辦回覆截圖/連結。</p>
</div>
<div class="card">
<h2>Revenue Evidence</h2>
<p>用 pipeline amount、retained value、cost saved 三欄判斷,不讓工程進度偽裝成業務進度。</p>
</div>
</section>
<section class="grid">
<table>
<thead><tr><th>Lane</th><th>Owner</th><th>GitHub Signal</th><th>Acceptance</th><th>Money Signal</th></tr></thead>
<tbody>
<tr><td>系統整合</td><td>zihrou + technical delegate</td><td>PR merged to demo branch, deployment reviewed</td><td>Louis/Chase 可打開 demo 並跑完一個入離職權限案例</td><td>節省 50% 經辦處理時間或產生可報價方案</td></tr>
<tr><td>流程設計</td><td>zihrou</td><td>Issue linked to SOP and test case</td><td>經辦不用口頭教學即可完成流程</td><td>降低補件、返工與主管 review 時間</td></tr>
<tr><td>經辦對接</td><td>iron / vincent 支援</td><td>Adoption evidence attached to milestone</td><td>2 位經辦留下任務前後證據</td><td>形成可賣 case study / upsell script</td></tr>
<tr><td>營收管理</td><td>louis</td><td>D30 decision record closed</td><td>續行、暫停、換 owner 或加碼有明確決策</td><td>100 萬 pipeline/retained value gate</td></tr>
</tbody>
</table>
</section>
<section class="grid">
<div class="lane">
<div><strong>Purpose</strong><br>無外力支持下達成最少 100 萬營收</div>
<div><strong>Artifact</strong><br>Repo-to-Revenue dashboard + production pack</div>
<div><strong>Human Adoption</strong><br>owner 每週只回證據,不回心得;Louis 用 D30 gate 決策</div>
<div><strong>Metric Shift</strong><br>逾期卡點下降、demo 可開、採用證據增加、pipeline 可估</div>
</div>
</section>
<section class="grid cols-3">
<div class="card"><h3 class="warn">Stop Condition</h3><p>D7 無 demo URL、D14 無經辦證據、D30 無 money signal,該 lane 暫停或換 owner。</p></div>
<div class="card"><h3 class="good">Upgrade Path</h3><p>下一輪接 GitHub webhook、PLS project_health_snapshots、owner-response watchdog,自動產出週報與催辦。</p></div>
<div class="card"><h3 class="risk">Risk</h3><p>zihrou 單點負荷過重;本輪用 RACI 和 repo evidence 把系統整合、流程、經辦對接拆開。</p></div>
</section>
<footer>Generated for PLS. Primary artifact pairs with production-brief.md, data-model.md, acceptance-tests.md, decision-record.md, people-sync.md, learning-memory.json.</footer>
</body>
</html>

Artifact URL or PR

Primary artifact: https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e#file-ai-adoption-repo-revenue-command-center-html

Public Gist: https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e

Verification commands:

  • curl -I -L -s "https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e#file-ai-adoption-repo-revenue-command-center-html" | head -n 8
  • gh gist view 504c2aa501c67312b74b6eb96b19ee1e --files

Verification result: primary URL returned HTTP/2 200; public Gist includes 13 files; no local pending publish markers remain.

Data Model

Tables

repo_delivery_events

field type notes
id uuid primary key
project_id uuid PLS project id
repo text GitHub repo full name
event_type enum commit, issue, pull_request, deployment, release
external_url text GitHub URL
actor text GitHub actor
occurred_at timestamptz source timestamp
revenue_case_id uuid nullable until mapped
acceptance_owner_id uuid PLS member
evidence_status enum unmapped, mapped, accepted, rejected

revenue_cases

field type notes
id uuid primary key
case_name text 入離職權限 / 財會稽核 / 經辦交付檢查
target_amount_twd numeric pipeline or retained value
value_type enum pipeline, retained_value, cost_saved
customer_or_internal_user text who benefits
owner_id uuid responsible owner
due_date date D7/D14/D30 gate
decision_status enum active, paused, split, killed, scaled

adoption_evidence

field type notes
id uuid primary key
revenue_case_id uuid linked case
user_role text 經辦/主管/客戶
before_minutes integer baseline effort
after_minutes integer assisted effort
error_delta numeric before-after error rate or count
evidence_url text screenshot, doc, form, recording, ticket
verified_by uuid reviewer
verified_at timestamptz nullable

d30_decisions

field type notes
id uuid primary key
revenue_case_id uuid case
decision enum continue, pause, replace_owner, merge, scale
rationale text reason
next_owner_id uuid nullable
next_due_date date next gate
audit_log_id uuid immutable decision trace

API / Sync

  • POST /integrations/github/events:接 GitHub webhook,寫入 repo_delivery_events
  • POST /projects/:id/revenue-cases:建立或更新 D1/D7/D14/D30 money gate。
  • POST /revenue-cases/:id/adoption-evidence:補使用者採用證據。
  • POST /revenue-cases/:id/d30-decision:寫入續行/暫停/換 owner 決策。
  • GET /projects/:id/repo-to-revenue-health:回傳 dashboard metrics。

Permissions

  • Louis:可改 North Star、D30 decision、owner。
  • zihrou:可提交 demo/PR/adoption evidence,不可自行通過 D30 gate。
  • iron/vincent:可提交經辦/市場對接 evidence。
  • PLS worker:可讀 GitHub event、產生 health snapshot、寫入建議,不可代替人做高風險對外承諾。

Audit / Rollback

  • 所有 money gate decision 寫入 immutable audit log。
  • deployment event 若被拒絕,保留 rejected reason、reviewer、rollback URL。
  • webhook 重放以 repo + event_type + external_url 去重。

Decision Record

Decision

採用 project + system spec + dashboard 組合,主成果為 Repo-to-Revenue 作戰台,附資料模型、驗收、people sync、learning memory。

Options Considered

  • communication only:能催 zihrou,但無法把 repo 交付與營收證據連起來,不足。
  • doc only:能釐清問題,但不能提供可開 dashboard 與可驗收節奏,不足。
  • spreadsheet only:可量化 100 萬,但缺 GitHub/deploy evidence 與 owner sync,不足。
  • full system implementation:最完整,但本輪沒有 repo access / webhook credentials;先交 production spec + dashboard + acceptance,下一輪接入。

Recommendation

先用 dashboard + production pack 建立共同語言與資料契約,再把 GitHub webhook、PLS project health、owner watchdog 接上。這符合 Louis 的 7 天初值與落地優先風格,也避免 zihrou 繼續單點負荷。

Adopted Path

  1. D1 建立 revenue_cases 與 repo_delivery_events mapping。
  2. D7 每個 active case 至少一個 demo/PR。
  3. D14 收 adoption_evidence。
  4. D30 用 d30_decisions 做續行/暫停/換 owner。

Feedback Needed If Not Adopted

  • 哪個場景不是 30 天內可賣?
  • 哪個 owner 無法承接?
  • 哪個 repo/deploy 權限無法接?
  • 100 萬應用 pipeline、retained value 或 cost saved 哪一種計算?

E2E Verification

Plan

  1. Publish primary HTML and appendices to public Gist.
  2. Verify primary URL returns HTTP 200.
  3. Verify Gist includes 13 files.
  4. Verify local package has no pending publish markers.
  5. Upload files to PLS deliverable id.
  6. Complete with stable public artifact URLs.

Primary Artifact

https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e#file-ai-adoption-repo-revenue-command-center-html

Evidence

  • Public Gist: https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e
  • Primary URL check: curl -I -L -s "https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e#file-ai-adoption-repo-revenue-command-center-html" | head -n 8
  • Gist file list check: gh gist view 504c2aa501c67312b74b6eb96b19ee1e --files
  • Result: primary URL returned HTTP/2 200; public Gist file list showed all 13 files; local pending marker scan returned no matches.

Acceptance Mapping

  • Openable main artifact: ai-adoption-repo-revenue-command-center.html.
  • Owner/due/acceptance: production-brief.md, people-sync.md, acceptance-tests.md.
  • Data/toolbox path: data-model.md, production-readiness.md.
  • Decision record: decision-record.md.
{
"project": "AI 自建專案:AI落地助手導入 的最大化推進",
"job_id": "7f9beb72-9960-4294-9498-67465529d4d3",
"learned": [
"Repo delivery needs revenue mapping; commits and PRs are not sufficient project progress unless linked to a user adoption or money signal.",
"GitHub milestones and deployments provide mature primitives, but PLS needs its own revenue_case and adoption_evidence layer.",
"zihrou is overloaded because system integration, process design, and business/user coordination are currently mixed into one owner lane."
],
"next_checks": [
"Check whether any PR/deploy URL exists for the AI landing assistant demo.",
"Ask Louis whether D30 money gate should prioritize pipeline, retained value, or cost saved.",
"Add owner-response watchdog if no demo/PR or blocker lane is provided within 24 hours."
],
"invalidated_assumptions": [
"A completed engineering artifact is not enough to claim business progress.",
"One owner can handle system integration, workflow design, and user coordination without explicit support."
]
}

Market Maturity

External Sources Checked

Mature Practice

  • GitHub milestones group issues/PRs and show progress across work packages.
  • GitHub environments can gate deployments with required reviewers, branch/tag rules, and custom protection rules.
  • DORA separates speed from stability using deployment frequency, lead time, change failure rate, and recovery time.
  • RACI clarifies who is responsible/accountable/consulted/informed so multi-person work does not collapse onto one owner.
  • Milestone charts and weekly check-ins keep timeline, blockers, and stakeholder alignment visible.

PLS Current Gap

PLS context has many overdue project/action items and a clear single-owner overload, but repo signals are not yet normalized into revenue cases, adoption evidence, or D30 decisions.

This Round Closes

This pack defines the repo-to-revenue data contract, owner gates, adoption evidence, permissions, audit path, and dashboard that can become a PLS workflow app next.

People Sync

zihrou

訊息:這輪 AI 落地助手不再用長說明追進度,改用 repo-to-revenue。請在 D7 前回一個 demo/PR 連結,並標註它屬於入離職權限、財會稽核、經辦交付檢查哪一個 revenue case。你也要指定驗收人與目前卡點是系統整合、流程設計、還是經辦對接。

Expected reply:demo/PR URL、case name、acceptance owner、blocker lane。

Louis

訊息:我把 AI 落地助手導入改成 30 天 100 萬 gate:repo event 不能只算工程進度,必須連到 adoption evidence 與 money signal。D30 你只需要看三個結果:是否有可開 demo/PR、是否有 2 筆經辦證據、是否形成 100 萬 pipeline/retained value;沒有就換 owner 或縮場景。

Expected reply:確認 money gate 使用 pipeline / retained value / cost saved 哪一種為主。

iron / vincent

訊息:請協助把經辦/市場證據補進 adoption evidence,不需要參與全部工程討論。每個證據只要四欄:使用者角色、前後耗時、錯誤/補件變化、證據連結。

Expected reply:可支援的經辦對象、可提供 evidence 的日期。

Escalation

zihrou 24 小時未回 demo/PR 或 blocker lane,PLS worker 發送升級句:目前不是催進度,而是判斷是否要拆 owner。若今天沒有 URL/卡點,我會把系統整合與經辦對接改派支援 owner。

Production Brief

場景

AI 自建專案要把「AI落地助手導入」從逾期、單點負荷、等待人整理,改成 AI 主動管理的 30 天 repo-to-revenue 作戰節奏。共同主題是 GitHub/repo 交付脈絡:commits、PR、deploy 必須對回專案進度、owner、驗收與下一輪交付節奏。

30 天路徑

  • D1:凍結 North Star:30 天達成至少 NT$1M pipeline / retained value。選 3 個可賣場景:入離職權限、財會稽核、經辦交付檢查。
  • D7:每個場景至少一個 demo URL 或可開 PR,且連到 issue/milestone/owner/acceptance owner。
  • D14:至少 2 位經辦完成前後對照,留下節省時間、錯誤率、補件數、可報價假設。
  • D30:用 money gate 判斷續行、暫停、換 owner、合併或加碼。

Purpose-to-Purpose E2E

原始目的:無外力支持下達成最少 100 萬營收。

產出物:Repo-to-Revenue 作戰台、資料模型、驗收表、RACI、people sync、decision record。

人採用:zihrou 只回 demo/PR/adoption evidence;iron/vincent 協助經辦與市場證據;Louis 用 D30 決策表做資源與營收判斷。

指標改善:逾期任務減少、demo 可開、PR 對應營收場景、採用證據增加、pipeline 或 retained value 可量化。

價值/錢路徑

  • 直接營收:把 demo/案例轉成 AI 落地助手導入報價與客戶提案,D30 目標 NT$1M pipeline。
  • 成本節省:財會/經辦流程 50% 自動化假設用 task_before/task_after 驗證。
  • 風險降低:PR 和 deploy 必須通過 owner/acceptance gate,避免工程輸出與客戶價值脫鉤。
  • 人力釋放:把 zihrou 的單點負荷拆成系統整合、流程設計、經辦對接三條 lane。

Owner / Due / Acceptance

  • Owner:zihrou。
  • Supervisor:Louis。
  • Support:iron, vincent, louis75142162002。
  • Due:D7 first demo、D14 adoption evidence、D30 revenue decision。
  • Acceptance:至少 1 個可開 demo/PR、2 份 adoption evidence、1 份 D30 money gate decision。

LINE 草稿

zihrou,這輪先不要再補長說明。我們把 AI 落地助手導入改成 30 天 repo-to-revenue 作戰:D7 前只交一個可開 demo/PR,並連到 issue/milestone/owner/驗收人;D14 補 2 位經辦的前後對照證據;D30 Louis 用 100 萬 pipeline/retained value gate 決定續行或換 owner。你只需要回三件事:demo/PR 連結、哪個經辦驗收、目前卡在系統整合/流程/對接哪一條。

下一輪升級

接 GitHub webhook 到 PLS project_health_snapshots,讓 PR/milestone/deploy 自動更新專案健康分數;若 owner 24 小時未回 evidence,自動觸發 watchdog LINE follow-up。

Production Readiness

Ready Now

  • Primary HTML command center can be opened by stakeholders.
  • Project pack has D1/D7/D14/D30 path, RACI, owner/due/acceptance, LINE drafts, data model, API/sync spec, audit/rollback.
  • Completion package can be uploaded to PLS deliverable.

Not Yet Ready

  • No live GitHub webhook credentials in this session.
  • No DB migration applied.
  • No real customer/evidence attachments included yet; dashboard defines the evidence contract.

Integration Plan

  1. Add repo_delivery_events, revenue_cases, adoption_evidence, d30_decisions.
  2. Register GitHub webhook for selected repo(s).
  3. Add worker that maps PR/deploy to revenue case and pings owner if unmapped after 24 hours.
  4. Add PLS dashboard widget for D7/D14/D30 gate.
  5. Add LINE reminder templates from people-sync.md.

Rollback

If GitHub sync creates noisy or wrong mappings, disable webhook consumer and keep manual CSV/import path until mappings pass 2 weekly reviews.

Skill Usage

Selected Skills / Tools

  • frontend-design:建立可開啟 HTML primary dashboard,避免文字型 primary artifact。
  • verification-before-completion:完成前必須驗證 public URL、Gist file list、pending marker、PLS upload/complete。
  • Web search:查核 GitHub milestones/issues/deployments、DORA metrics、Atlassian RACI/milestone 等成熟做法。
  • PLS helper:doctor、touch、claim、context、progress、upload-files、complete。
  • GitHub Gist CLI:發布 public artifact。

Evidence

  • PLS context 取得 job id 7f9beb72-9960-4294-9498-67465529d4d3 與 deliverable id ec13b9a5-44d8-45e6-b9c7-94f80d8d6dc4
  • 搜尋結果包含 GitHub Docs、DORA、Atlassian 來源。
  • 完成前會把 Gist URL、HTTP 200、13 檔清單、upload-files 結果寫入 e2e-verification.md
  • Public Gist: https://gist.github.com/esz135888/504c2aa501c67312b74b6eb96b19ee1e

Solution Selection

Selected

  • project:核心是跨角色、逾期、owner、milestone、週節奏與 money gate。
  • system:需要 GitHub events、PLS project health、adoption evidence、permissions、audit。
  • dashboard:需要讓 Louis/zihrou 一眼看到 D1/D7/D14/D30 與 repo-to-revenue 狀態。
  • communication:需要 LINE 草稿把 owner 從長說明拉回 evidence reply。

Why Not Smaller

單純 communication/doc 無法驗證 repo delivery 是否真的對營收有用,也無法拆掉 zihrou 單點負荷。

Why Not Larger

本輪沒有 GitHub repo credentials / PLS DB migration window;直接做 full workflow app 會變成假部署。先定資料契約與 dashboard,下一輪接 webhook 和 watchdog。

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