Skip to content

Instantly share code, notes, and snippets.

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

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

Select an option

Save esz135888/cb96832987ae8eca88f9c80fdb356b5b to your computer and use it in GitHub Desktop.
PLS customer strategy proposal pipeline production pack

Acceptance Tests

Primary Artifact

  • PASS:customer-strategy-proposal-pipeline-console.html 可用公開 URL 開啟。
  • PASS:主成果含 D1/D7/D14/D30、提案產線、頁序、資料模型入口、people sync。
  • FAIL:主成果只是簡報大綱,沒有流程與驗收。

Customer Brief

  • PASS:客戶 brief 至少有客戶名、產業、會議日期、痛點、決策人、預算、方案、希望承諾。
  • PASS:缺欄位時不得進 client_ready
  • FAIL:沒有客戶情境也能產出對外提案。

Proposal

  • PASS:第一版提案含問題、現況、成本/風險、三選項、推薦方案、90 天路線、商務模型、CTA。
  • PASS:CEO 決策窗口 approve 後才能標為 client_ready
  • FAIL:沒有決策頁或 CTA。

People Sync

  • PASS:有給墨宇產品負責人與 CEO 決策窗口的 LINE 草稿。
  • PASS:有 48 小時未回覆升級句。
  • FAIL:沒有 owner/due/ask。

D30 Decision

  • PASS:D30 依可開成果、3+ action items、1 次真實使用/回填證據判斷。
  • FAIL:只用產出頁數或模板數量判斷。

Artifact URL or PR

Primary artifact: https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b#file-customer-strategy-proposal-pipeline-console-html

Public Gist: https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b

Verification commands:

  • curl -I -L -s "https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b#file-customer-strategy-proposal-pipeline-console-html" | head -n 8
  • gh gist view cb96832987ae8eca88f9c80fdb356b5b --files

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

<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>客戶策略簡報與提案產線控制台</title>
<style>
:root{--ink:#121417;--paper:#f3f0e8;--panel:#fffaf0;--line:#20242a;--blue:#1f5d86;--red:#b63a2d;--green:#1f7454;--gold:#b77715;--muted:#65696f}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(90deg,rgba(31,93,134,.08) 1px,transparent 1px) 0 0/36px 36px,linear-gradient(rgba(18,20,23,.05) 1px,transparent 1px) 0 0/36px 36px,var(--paper);color:var(--ink);font-family:ui-serif,Georgia,"Times New Roman",serif}
header{min-height:86vh;display:grid;grid-template-columns:1.08fr .92fr;gap:34px;align-items:end;padding:56px clamp(20px,5vw,82px) 42px;border-bottom:3px solid var(--line)}
h1{font-size:clamp(46px,8vw,112px);line-height:.88;margin:18px 0 22px;letter-spacing:0}.tag{display:inline-block;background:var(--ink);color:var(--paper);padding:8px 12px;border:2px solid var(--line);font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.lead{font-size:clamp(18px,2vw,27px);line-height:1.38;max-width:820px;color:#303238}
.board{border:3px solid var(--line);background:var(--panel);box-shadow:12px 12px 0 var(--line);padding:20px;display:grid;gap:14px}.stat{border:2px solid var(--line);background:#fff;padding:15px}.stat b{display:block;font:900 48px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.stat span{font:800 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);text-transform:uppercase}
main{padding:32px clamp(18px,4vw,64px) 78px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}section{background:rgba(255,250,240,.94);border:2px solid var(--line);padding:20px}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}
h2{margin:0 0 14px;font-size:29px;line-height:1}p,li{line-height:1.55}.small{font-size:14px;color:var(--muted)}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.step,.action{border:2px solid var(--line);background:#fff;padding:14px;min-height:142px}.step b{display:block;font:900 18px ui-monospace,SFMono-Regular,Menlo,monospace;margin-bottom:8px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{border:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}th{background:#e4edf3;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.badge{display:inline-block;border:2px solid var(--line);padding:5px 9px;background:#fff;font:800 12px ui-monospace,SFMono-Regular,Menlo,monospace}.green{background:var(--green);color:#fff}.gold{background:var(--gold);color:#fff}.blue{background:var(--blue);color:#fff}.red{background:var(--red);color:#fff}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){header,.flow,.actions{grid-template-columns:1fr}.span-4,.span-6,.span-8,.span-12{grid-column:span 12}h1{font-size:52px}}
</style>
</head>
<body>
<header>
<div>
<span class="tag">Customer Strategy Proposal Pipeline</span>
<h1>不是做一份簡報,是做一條能成交的提案產線。</h1>
<p class="lead">本控制台把「第一版能用於客戶會議的策略提案」拆成 production workflow:客戶情境輸入、策略假設、提案/簡報生成、會議使用、採用證據回填、下一版任務。目標是在 30 天內讓墨宇產品負責人能拿去見客戶,並讓 CEO 決策窗口能判斷續行或升級系統。</p>
</div>
<aside class="board">
<div class="stat"><span>D30 Answer</span><b>1+3+1</b><p>1 個可開成果、3+ action items、1 次真實客戶會議/回填證據。</p></div>
<div class="stat"><span>D7 Output</span><b>3 件</b><p>提案模板、資料模型、驗收清單。</p></div>
<div class="stat"><span>Money Path</span><b>會議→提案→成交</b><p>縮短準備時間,提高客戶策略對齊與下一步承諾率。</p></div>
</aside>
</header>
<main>
<div class="grid">
<section class="span-12">
<h2>D1 / D7 / D14 / D30</h2>
<div class="flow">
<div class="step"><b>D1</b>定義會議提案 North Star、客戶資料輸入欄位、提案必備頁、owner 與 due。</div>
<div class="step"><b>D7</b>完成第一版客戶會議提案包:策略頁、問題診斷、方案選項、商務 CTA。</div>
<div class="step"><b>D14</b>至少用於 1 次內部 rehearsal 或真實客戶會議,回填 objections 與下一步。</div>
<div class="step"><b>D30</b>依採用證據決定續行/暫停/換 owner/升級成 proposal workflow app。</div>
<div class="step"><b>Loop</b>每次會議回饋自動產生 vNext action items 與 deck revision brief。</div>
</div>
</section>
<section class="span-8">
<h2>提案產線</h2>
<table>
<tr><th>Stage</th><th>Input</th><th>Output</th><th>Acceptance</th></tr>
<tr><td>Intake</td><td>客戶產業、痛點、決策人、預算、會議目的</td><td>customer_brief</td><td>8 欄完整,不足即標紅</td></tr>
<tr><td>Strategy</td><td>客戶目標、卡點、可行方案</td><td>3 個策略選項與推薦</td><td>每個選項有成本/效益/風險</td></tr>
<tr><td>Deck</td><td>brief + strategy</td><td>10 頁會議簡報骨架</td><td>含 CTA 與決策頁</td></tr>
<tr><td>Meeting</td><td>簡報與話術</td><td>客戶回覆、反對意見、下一步</td><td>至少 1 個 explicit next step</td></tr>
<tr><td>Loop</td><td>採用證據</td><td>vNext action_items</td><td>48 小時內回填</td></tr>
</table>
</section>
<section class="span-4">
<h2>解法選型</h2>
<p><span class="badge blue">presentation</span> 第一版要能進客戶會議。</p>
<p><span class="badge green">system</span> 需要資料欄位、同步、權限。</p>
<p><span class="badge gold">project</span> 需要 30 天 cadence 和 evidence gate。</p>
<p><span class="badge red">communication</span> 需要 owner 48 小時內補客戶資料。</p>
</section>
<section class="span-6">
<h2>第一版簡報頁序</h2>
<table>
<tr><th>#</th><th>頁面</th><th>目的</th></tr>
<tr><td>1</td><td>客戶決策問題</td><td>用一句話鎖定會議焦點</td></tr>
<tr><td>2</td><td>現況與卡點</td><td>證明你懂對方現場</td></tr>
<tr><td>3</td><td>成本/風險</td><td>量化不處理的代價</td></tr>
<tr><td>4</td><td>三個策略選項</td><td>讓客戶能比較</td></tr>
<tr><td>5</td><td>推薦方案</td><td>結論先行</td></tr>
<tr><td>6</td><td>90 天路線</td><td>把方案變執行</td></tr>
<tr><td>7</td><td>資源與責任</td><td>降低落地模糊</td></tr>
<tr><td>8</td><td>商務模型</td><td>接到錢與 ROI</td></tr>
<tr><td>9</td><td>風險與治理</td><td>預先處理疑慮</td></tr>
<tr><td>10</td><td>決策與下一步</td><td>拿到承諾</td></tr>
</table>
</section>
<section class="span-6">
<h2>Production Path</h2>
<table>
<tr><th>層</th><th>內容</th></tr>
<tr><td>Data</td><td>customer_briefs、proposal_versions、meeting_feedback、approval_events</td></tr>
<tr><td>API</td><td>POST brief、POST proposal、PATCH feedback、POST vNext action</td></tr>
<tr><td>Permission</td><td>Owner 建 brief;Supervisor approve;Worker 生成草稿不可對外承諾</td></tr>
<tr><td>Audit</td><td>所有對外版本、價格、承諾、客戶回饋都留紀錄</td></tr>
</table>
</section>
<section class="span-12">
<h2>People Sync</h2>
<div class="actions">
<div class="action"><b>給墨宇產品負責人</b><p>請在 2026-05-25 18:00 前補第一個客戶 brief:客戶名、產業、會議日期、痛點、決策人、預算區間、要推的方案、希望客戶承諾的下一步。</p></div>
<div class="action"><b>給墨宇 CEO 決策窗口</b><p>請 D7 確認第一版會議提案是否可拿去 rehearsal;D30 只看是否有真實會議/回饋/下一步承諾,不看產出頁數。</p></div>
<div class="action"><b>不回覆升級句</b><p>若 48 小時沒有 customer brief,建議暫停產線擴張,先由 AI 用現有資料產生 mock brief,並標記缺口給 owner 補齊。</p></div>
</div>
</section>
</div>
</main>
</body>
</html>

Data Model

Tables

customer_briefs

field type note
id uuid brief id
customer_name text 客戶名
industry text 產業
meeting_date date 會議日期
pain_points text[] 痛點
decision_makers jsonb 決策人與角色
budget_range text 預算區間
desired_commitment text 希望客戶承諾的下一步
owner_member_id uuid 墨宇產品負責人
completeness_score integer 0-100

proposal_versions

field type note
id uuid proposal id
brief_id uuid customer_briefs.id
version integer 版本
proposal_url text deck/html/doc url
status enum draft, rehearsal, client_ready, used, retired
approved_by uuid supervisor
approved_at timestamptz approve time

meeting_feedback

field type note
id uuid feedback id
proposal_id uuid proposal_versions.id
meeting_type enum internal_rehearsal, client_meeting
objections text[] 反對意見
next_step text 下一步
next_step_due date due
evidence_url text LINE/Drive/meeting notes

approval_events

field type note
id uuid audit event
entity_type enum brief, proposal, pricing, commitment
entity_id uuid target
actor_member_id uuid actor
action enum created, edited, approved, rejected, used
before_json jsonb before
after_json jsonb after
created_at timestamptz created

API / Sync

  • POST /api/proposal-pipeline/customer-briefs
  • POST /api/proposal-pipeline/proposals
  • PATCH /api/proposal-pipeline/proposals/:id/status
  • POST /api/proposal-pipeline/meeting-feedback
  • POST /api/projects/:id/action-items/from-feedback

Permissions

  • Worker:可生成草稿、指出缺口,不可對外承諾價格/交付。
  • Owner:可建立 brief、修 proposal、回填會議 feedback。
  • Supervisor:可 approve client_ready、價格、承諾。
  • System:可在 brief 缺欄位時阻擋出客戶版。

Audit / Rollback

所有客戶版提案、價格與交付承諾都需 approval event。若 meeting feedback 顯示錯誤承諾,proposal status 改為 retired,並產生 vNext action item。

Decision Record

Decision

採用 presentation + system + project + communication + research,主成果為「客戶策略簡報與提案產線控制台」。

Options Considered

  1. 只產出一份策略簡報:可立即用,但不可重複,無法回填會議證據。
  2. 做簡報模板庫:可複用,但無法管理客戶 brief、approval、feedback。
  3. 做提案產線控制台:把客戶資料、提案生成、會議使用、feedback、vNext 任務串成系統。

Recommendation

採用 option 3。因為 North Star 是 30 天內能用於客戶會議,產線必須保證每次提案都有客戶情境、決策頁、CEO approval 與會後回填。

Adoption Status

ready for owner review。

Landing Path

  • D1:墨宇產品負責人補第一個 customer brief。
  • D7:CEO 決策窗口 approve rehearsal version。
  • D14:用於 rehearsal/client meeting 並回填 evidence。
  • D30:依 evidence 決定升級 workflow app 或暫停。

If Rejected

請回饋:brief 欄位太重、頁序不適合現場、approval 流程太慢,或目前缺第一個客戶案例。

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. Upload files to PLS deliverable id.
  5. Complete with stable public artifact URLs.

Primary Artifact

https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b#file-customer-strategy-proposal-pipeline-console-html

Evidence

  • Published public Gist: https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b
  • Verification command: curl -I -L -s "https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b#file-customer-strategy-proposal-pipeline-console-html" | head -n 8
  • File list command: gh gist view cb96832987ae8eca88f9c80fdb356b5b --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: customer-strategy-proposal-pipeline-console.html.
  • Owner/due/acceptance: production-brief.md, people-sync.md, acceptance-tests.md.
  • Data/toolbox path: data-model.md, production-readiness.md.
  • E2E proof: this file after URL verification.
  • Decision record: decision-record.md.
{
"project_id": "61604c78-9e81-469a-ba09-a04c7a1c28ab",
"job_id": "d63c921f-1f86-401b-b577-07002e1b2253",
"learned": [
"A useful customer proposal pipeline is not a deck template; it needs customer brief, approval, meeting feedback, and next action generation.",
"B2B AI sales enablement maturity is moving toward stage velocity, personalization, RFP/proposal support, and CRM feedback loops.",
"Proposal success should be measured by meeting use, customer next-step commitment, and pipeline movement, not slide count."
],
"next_worker_should_check": [
"Whether the product owner supplied the first customer brief.",
"Whether CEO decision window approved rehearsal/client-ready status.",
"Whether a real meeting or internal rehearsal evidence has been captured."
],
"assumptions_to_test": [
"墨宇產品負責人 can supply an 8-field customer brief within 48 hours.",
"A 10-page strategy proposal skeleton is sufficient for first rehearsal.",
"PLS can map meeting feedback to vNext action_items."
],
"upgrade_trigger": "If D14 has one rehearsal or client meeting evidence record, build PLS workflow app for brief intake, proposal versioning, approval, and feedback-to-action sync."
}

Market Maturity

Sources Checked

Comparable Practice

市場成熟做法正在從「內容自動生成」走向 AI-driven sales enablement:資料驅動的 buyer personalization、seller preparation、RFP/proposal response、CRM/feedback loop、stage velocity。單純做漂亮簡報不夠,必須把會議使用與回饋回寫。

PLS Gap

目前 PLS 有專案與 action items,但缺客戶 brief schema、proposal versioning、approval/audit 與 meeting feedback 回填。

This Round Upgrade

本輪補成 production pack:primary 控制台、資料模型、API/權限/稽核、第一版頁序、people sync、learning memory。

People Sync

LINE Draft: 墨宇產品負責人

我已把「客戶策略簡報與提案產線」做成 30 天 production pack。請在 2026-05-25 18:00 前補第一個 customer brief:客戶名、產業、會議日期、痛點、決策人、預算區間、要推的方案、希望客戶承諾的下一步。缺這 8 欄就先不出客戶版,只做內部 rehearsal。

LINE Draft: 墨宇 CEO 決策窗口

請 D7 看第一版提案產線是否可用於 rehearsal:頁序包含問題、現況、成本/風險、三選項、推薦方案、90 天路線、商務模型、決策與下一步。D30 只看是否有真實會議/回饋/下一步承諾,不用產出頁數當成功指標。

48 小時未回升級句

若 48 小時內沒有 customer brief,我會建議先暫停產線擴張,由 AI 用現有資料產生 mock brief 並標示缺口,避免做出無客戶情境的漂亮簡報。

Expected Evidence

  • 產品負責人回覆 customer brief。
  • CEO approve 或修改意見。
  • 內部 rehearsal / 客戶會議回饋連結。

Production Brief

場景

「客戶策略簡報與提案產線」的 30 天目標,是產出第一版能用於客戶會議的策略提案。上一版問題是只有方向,缺資料輸入、產線流程、權限、驗收與採用回填。

D1 / D7 / D14 / D30

  • D1:定義客戶 brief 欄位、提案頁序、owner/due、D30 對答案。
  • D7:完成第一版提案產線作戰台、資料模型、驗收條件、people sync。
  • D14:至少用於 1 次內部 rehearsal 或真實客戶會議,回填 objections 與 next step。
  • D30:依可開成果、3+ action items、1 次真實使用/回填證據,決定續行/暫停/換 owner/升級系統。

Owner / Due / Acceptance

  • Owner:墨宇產品負責人。
  • Supervisor:墨宇 CEO 決策窗口。
  • D7 due:2026-05-31。
  • D30 due:2026-06-22。
  • Acceptance:主成果可開;資料模型含 brief/proposal/feedback/audit;people sync 可直接送;至少 1 次會議 rehearsal 或客戶回饋。

價值/錢路徑

提案產線讓業務/產品不用每次從零做簡報,降低準備時間,提升客戶會議品質與下一步承諾率。可衡量路徑是:客戶 brief 完整率、提案生成時間、會議採用證據、下一步承諾數、商務 pipeline 金額。

Purpose-to-Purpose E2E

原始目的:第一版能用於客戶會議的策略提案。 產出物:提案產線控制台、資料模型、驗收、people sync。 人採用:產品負責人補 brief,CEO 決策窗口 approve,會議後回填 feedback。 指標改善:可驗收成果數、採用證據、逾期待辦清除率、D30 決策完成率。

Production Readiness

Ready Now

  • Primary HTML 可作為提案產線入口。
  • D1/D7/D14/D30 可直接派工。
  • Data model 可轉成 PLS DB/schema。
  • People sync 可直接給產品負責人與 CEO 決策窗口。

Not Yet Ready

  • 尚未有第一個真實 customer brief。
  • 尚未有 CEO approve 的 rehearsal deck。
  • 尚未有客戶會議 evidence 或 next step。

Rollback / Fail-Safe

  • 客戶 brief completeness 低於 80:不得輸出 client_ready。
  • 未經 CEO approve:不得對外承諾價格、時程、交付範圍。
  • 會議回饋顯示錯誤承諾:retire 該版本,產生 vNext action。

Upgrade Path

D14 若有真實使用證據,下一輪升級為 PLS workflow app:brief form、proposal generator、approval gate、meeting feedback sync、vNext action generator。

Skill Usage

Selected Skills / Tools

  • frontend-design:建立可開啟 primary HTML 控制台。
  • verification-before-completion:完成前驗證 Gist HTTP、13 檔清單、PLS upload-files、complete。
  • Web search:查核 B2B sales enablement、AI proposal/RFP、personalization 現行成熟做法。
  • PLS helper:doctortouchclaimcontextprogressupload-filescomplete
  • GitHub Gist CLI:發布 public artifact 與附錄。

Evidence

  • PLS context 取得 deliverable id c8958420-605d-4d22-a5b0-367b1a493e54
  • 市場來源包含 Gartner AI-driven sales enablement、McKinsey gen AI in B2B sales、Forrester B2B personalization / sales predictions。
  • Public Gist: https://gist.github.com/esz135888/cb96832987ae8eca88f9c80fdb356b5b
  • 完成前將以 curl -I -Lgh gist view --files 驗證。

Solution Selection

Selected

  • presentation:本案第一個可用成果必須能進客戶會議。
  • system:需要 customer brief、proposal versions、meeting feedback、approval events。
  • project:需 D1/D7/D14/D30 週節奏與 action_items。
  • communication:需要 owner 補客戶 brief、CEO approve。
  • research:需要 B2B sales enablement / AI proposal comparable practice。

Why Not Smaller

單一簡報或文件無法形成「產線」,也無法在會議後回填 evidence 與產生下一版 action items。

Why Not Larger

目前還缺第一個真實 customer brief 與會議回饋,不應直接做完整部署或 agent;先用 production pack 驗證流程。

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