Skip to content

Instantly share code, notes, and snippets.

@esz135888
Created May 23, 2026 22:23
Show Gist options
  • Select an option

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

Select an option

Save esz135888/3811808e1baca1fdc2997cdd8fded3c5 to your computer and use it in GitHub Desktop.
PLS proposal readiness router - job b608fcef

E2E Acceptance Tests

A. Missing Evidence Route

Given fewer than 2 completed visits, when the Router scores the account, then next_route=people_sync for 墨宇產品負責人.

Expected evidence: route reason says need_2_completed_visits.

B. Pain Scene Completeness

Given fewer than 5 pain-scene records, when scoring runs, then proposal generation is blocked.

Expected evidence: route reason says need_5_pain_scenes.

C. Case Boundary Guard

Given any row has case_boundary=needs_approval, when proposal generation is requested, then next_route=ceo_review.

Expected evidence: no external proposal artifact is generated.

D. Proposal Ready

Given visit_count >= 2, pain_scene_count >= 5, proof_needed complete, success_metric complete, and case_boundary complete, when scoring runs, then readiness_score >= 80 and next_route=proposal_brief.

Expected evidence: PLS can dispatch proposal brief v1.

E. Integration / API

Given visit-evidence-intake.csv, when imported through POST /api/proposal-readiness/import, then invalid rows are rejected with field-level errors and valid rows are scored.

Expected evidence: accepted/rejected row count and route output.

Current Verification

  • HTML Router is the primary artifact.
  • learning-memory.json parses as JSON.
  • Gist URL returns HTTP 200.
  • Gist file list includes all required files.
  • PLS upload-files returns uploaded count.

Artifact URL / PR Record

Primary artifact URL: https://gist.github.com/esz135888/3811808e1baca1fdc2997cdd8fded3c5

Type

Shared-cloud Gist artifact pack. No GitHub PR or deployment is claimed for this job.

Verification

  • Gist HTTP status: HTTP/2 200 verified on 2026-05-24 Asia/Taipei.
  • Gist file list: 13 files verified by gh gist view 3811808e1baca1fdc2997cdd8fded3c5 --files.
  • PLS upload-files: pending before final PLS sync.

Required Contract Kinds

primary_artifact, market_context, production_readiness, e2e_verification, people_sync, learning_memory, solution_selection, skill_usage, market_maturity, production_acceptance, landing_record, tool, dashboard, doc.

Data Model / API / Sync / Permission Spec

Tables

visit_evidence_intake

column type required note
visit_id text yes stable visit key
account_name_hash text yes anonymized customer id
visit_date date yes customer meeting date
owner_profile_id uuid yes product owner
customer_segment text yes industry/team size/use case
pain_moment text yes when customer questioned value
customer_quote text no sanitized quote or paraphrase
proof_needed text yes metric/case/demo/workflow proof
success_metric text yes measurable outcome
next_step enum yes sample_data/workshop/proposal/disqualify
case_boundary enum yes internal_only/external_allowed/needs_approval

proposal_readiness_routes

column type note
route_id uuid route record
account_name_hash text joins evidence
visit_count int completed visits
pain_scene_count int usable pain scenes
case_boundary_missing int missing approvals
readiness_score numeric 0-100
next_route enum people_sync/proposal_brief/ceo_review/repo_change
reason text human-readable route reason

Scoring

  • +25 if visit_count >= 2.
  • +25 if pain_scene_count >= 5.
  • +20 if every row has proof_needed.
  • +15 if every row has success_metric.
  • +15 if every row has case_boundary.
  • Block external proposal if any case_boundary=needs_approval.

API / Sync

  • POST /api/proposal-readiness/import accepts visit-evidence-intake.csv.
  • GET /api/proposal-readiness/routes?project_id=... returns score and next route.
  • POST /api/proposal-readiness/:route_id/dispatch creates next PLS job.

Permissions / Audit

  • Product owner can create visit evidence.
  • Customer success can edit pain and proof fields.
  • CEO decision window approves external_allowed.
  • PLS worker can import, score, dispatch, and log.
  • Audit log must record who changed case_boundary, success_metric, and next_route.

Rollback / Failure

  • Invalid CSV rows go to schema error report and do not affect readiness.
  • Missing case boundary blocks proposal generation.
  • If repeated imports fail, dispatch repo_change to build validated form UI.

Decision Record

Decision

Adopt proposal_readiness_router as this round's primary production artifact.

Problem

The project has progressed from first script to adoption contract. The next bottleneck is not writing more script text; it is deciding whether field evidence is strong enough to create a proposal brief or whether PLS should keep routing missing data to people.

Options Considered

  1. Rewrite the customer visit script.
    • Rejected: prior artifacts already cover v1 script and adoption gates.
  2. Produce proposal brief immediately.
    • Rejected: context still lacks completed visit records, pain scenes, and case-boundary approvals.
  3. Build a proposal readiness router.
    • Recommended: converts evidence completeness into deterministic next route.

Recommendation

Use the Router as the production gate:

  • readiness_score >= 80 and case boundary complete → generate proposal brief v1.
  • missing pain scenes → people_sync to customer success.
  • missing next step → people_sync to product owner.
  • missing case boundary → CEO decision window.
  • repeated schema failures → repo_change/API task.

Adoption Status

Proposed for job b608fcef-4d8e-49cc-b5d6-7eb20dac3149.

Landing Path

Owner: 墨宇產品負責人. Support: 墨宇客戶成功窗口. Supervisor: 墨宇 CEO 決策窗口. Due: 2026-05-30.

Feedback If Not Adopted

Return the actual visit notes, a reason why proposal readiness should be bypassed, or a new owner/due date for evidence collection.

{
"job_id": "b608fcef-4d8e-49cc-b5d6-7eb20dac3149",
"project": "AI 自建專案:客戶策略簡報與提案產線",
"learned_at": "2026-05-24T06:30:00+08:00",
"market_context": [
{
"source": "Gartner 2026 AI-driven sales enablement",
"lesson": "Stage velocity is a useful measurable outcome for enablement, so PLS should track movement from visit to proposal, not just artifact completion."
},
{
"source": "HubSpot discovery call guidance",
"lesson": "Discovery scripts need structured capture of goals, challenges, next steps, and buyer questions."
},
{
"source": "McKinsey B2B sales AI guidance",
"lesson": "AI sales systems are more valuable when they prioritize opportunities and personalize value propositions from structured evidence."
}
],
"pls_next_checks": [
"Before dispatching another script task, check whether proposal readiness router already exists.",
"Before generating proposal brief, require 2 visits, 5 pain scenes, success metrics, and case boundaries.",
"If evidence is missing, dispatch people_sync rather than project_runner.",
"If import keeps failing, dispatch repo_change to implement a validated form/API."
],
"assumptions_overturned": [
"A finished script does not mean the proposal line is ready.",
"Market maturity is not more research; it is a measurable evidence loop tied to stage movement.",
"Case authorization is a production gate, not a final polishing step."
],
"next_iteration_condition": "Generate proposal brief v1 only after Router readiness_score >= 80 and case boundaries are complete."
}

Market Maturity

Current Practice Check

Checked on 2026-05-24 Asia/Taipei using web search.

Mature Market Pattern

Mature sales enablement is not a folder of scripts. It connects seller guidance, buyer evidence, CRM/activity data, next-best action, coaching feedback, and measurable stage velocity.

Comparable Practices

  • Gartner's 2026 sales enablement view emphasizes AI-driven enablement and faster stage velocity.
  • Gartner's sales enablement framing ties content, guidance, and data to buyer engagement.
  • HubSpot discovery guidance treats scripts as structured conversation aids and emphasizes qualifying questions, challenges, goals, and next steps.
  • McKinsey B2B sales AI guidance emphasizes personalized value propositions, seller task automation, better opportunity prioritization, and feedback from sellers.

PLS Gap

PLS has produced script and adoption artifacts, but the project still lacks a production router that decides when evidence is enough to trigger a proposal brief. Without a readiness gate, PLS risks generating generic proposals or repeatedly chasing the wrong owner.

Upgrade This Round

The Router brings the project closer to market maturity by enforcing:

  • evidence completeness before proposal generation.
  • case permission before external use.
  • measurable success metric before value claim.
  • route transparency for people_sync or next production job.

Production Acceptance

Pass Conditions

  • Primary artifact opens through shared-cloud Gist.
  • Artifact pack includes production brief, data model, acceptance tests, decision record, artifact URL record, solution selection, skill usage, market maturity, production acceptance, sources, learning memory, HTML Router, and CSV intake.
  • PLS artifacts_json includes primary_artifact, market_context, production_readiness, e2e_verification, people_sync, learning_memory, solution_selection, skill_usage, market_maturity, and production_acceptance.
  • Owner/due/acceptance are explicit.
  • E2E route is measurable from visit evidence to proposal brief.

Fail Conditions

  • No openable primary artifact URL.
  • Summary-only completion.
  • Missing decision record.
  • Missing data/API/sync/permission path.
  • Missing market maturity check.
  • Missing case-boundary guard.
  • Claiming PR/deployment without verified PR/deployment URL.

Owner / Due / Acceptance

  • Owner: 墨宇產品負責人.
  • Support: 墨宇客戶成功窗口.
  • Supervisor: 墨宇 CEO 決策窗口.
  • Due: 2026-05-30.
  • Acceptance: 2 visits, 5 pain scenes, readiness >= 80, all proof rows have success_metric and case_boundary.

Production Brief:客戶拜訪證據到提案 Readiness Router

場景

PLS 已經有第一版客戶拜訪腳本與採用回收 contract pack;本輪不能再重產腳本或只重述 scorecard。本輪把專案往下一個 production 節點推進:建立「拜訪證據 → 痛點完整度 → 案例授權 → 提案 readiness → 下一輪派工」的 Router,讓 PLS 能判斷何時追人、何時產 proposal brief、何時派 repo/API。

30 天路徑

  • D1:產品負責人完成 2 場拜訪;客戶成功窗口填 visit-evidence-intake.csv,至少 5 筆 pain scenes。
  • D7:PLS 用 Router 產出 proposal readiness 分數、缺口清單、LINE 追人草稿。
  • D14:ready deals 產 proposal brief v1;未 ready deals 轉 people_sync 或 CEO case-boundary 審核。
  • D30:提案產線固定化:script → evidence intake → readiness routing → proposal brief → review → closed/won/lost learning。

目的到目的 E2E

原始目的:讓客戶策略簡報與提案產線推進成交,而不是停在簡報或話術檔案。 本輪產出:HTML Router、CSV intake schema、資料/API/權限規格、驗收測試、decision record、market maturity、skill usage、production acceptance、learning memory。 人採用:產品負責人跑拜訪;客戶成功補痛點;CEO 審案例;PLS 依 Router 自動派下一輪。 指標改善:proposal readiness >= 80、next step 率、痛點完整率、案例授權合規率、從拜訪到 proposal brief 的週期。

價值 / 錢路徑

  • 營收:只把 readiness 足夠的機會推到 proposal,提升提案命中率。
  • 節省成本:阻止沒有證據的重複簡報/話術產出。
  • 降低風險:外部 proposal 需要案例授權邊界。
  • 提高轉換:把「客戶感受不到優勢」拆成 proof needed 與 success metric。
  • 釋放人力:PLS 可以自動判斷追資料、產 brief、或派 repo_change。

提升人的能力

產品負責人會更會把拜訪轉成可判斷的 opportunity evidence;客戶成功會更會記錄痛點與 proof;CEO 能用 case boundary 做治理;工程只在 schema/flow 清楚時接實作。

Solution Stack

  • 脈絡框架:buyer evidence loop / proposal readiness gate。
  • 作業流程:每場拜訪 24 小時內填 intake;Router 每週或每次匯入後重算。
  • 資料模型:見 data-model.md
  • 可操作工具:proposal-readiness-router.htmlvisit-evidence-intake.csv
  • 驗收指標:見 acceptance-tests.mdproduction-acceptance.md
  • 採用與下一輪升級:當任一 account readiness >= 80 且 case_boundary 全數非空,下一輪產 proposal brief v1。

People Sync / LINE 外層草稿

墨宇產品負責人:第一版腳本已經可用,現在請用它完成 2 場拜訪。回填每個客戶在哪個問題開始質疑、需要什麼 proof、下一步是 workshop/proposal/disqualify。

墨宇客戶成功窗口:請在 2026-05-30 前補滿 5 筆 pain scenes。不要寫「客戶覺得不明顯」,要寫具體時刻、客戶原問題、缺哪種證據。

墨宇 CEO 決策窗口:請在案例欄位標記 internal_only / external_allowed / needs_approval;沒有邊界的案例不得放入外部 proposal。

上一版問題 → 本輪修改 → 驗證結果 → 下一輪建議

上一版問題:已建立採用回收 contract,但仍缺 proposal readiness 的派工判斷。 本輪修改:新增 Router 工具與 intake schema,把資料缺口直接轉成 next route。 驗證結果:本地 JSON 驗證、Gist HTTP 200、Gist file list、PLS upload-files。 下一輪建議:等 2 visits + 5 pain scenes 後產 proposal brief v1,並把 Router schema 轉成 PLS 後台 import/API。

<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Proposal Readiness Router</title>
<style>
:root { --ink:#172033; --muted:#5d6678; --line:#d9dee8; --bg:#f5f7fa; --panel:#fff; --green:#087443; --red:#b42318; --amber:#a15c07; --blue:#175cd3; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
header { background:var(--panel); border-bottom:1px solid var(--line); padding:28px 32px; }
h1 { margin:0 0 6px; font-size:26px; letter-spacing:0; }
h2 { margin:0 0 12px; font-size:17px; }
main { max-width:1220px; margin:0 auto; padding:22px 18px 42px; display:grid; gap:16px; }
section { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:18px; }
.grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.card { min-height:118px; border:1px solid var(--line); border-radius:8px; background:#fbfcff; padding:14px; }
.label { color:var(--muted); font-size:12px; text-transform:uppercase; }
.value { font-size:24px; font-weight:750; margin-top:4px; }
.green { color:var(--green); } .red { color:var(--red); } .amber { color:var(--amber); } .blue { color:var(--blue); }
table { width:100%; border-collapse:collapse; }
th,td { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); padding:10px 8px; }
th { color:var(--muted); font-size:12px; }
code { background:#eef2f7; border-radius:4px; padding:1px 5px; }
.small { color:var(--muted); font-size:12px; }
.pill { display:inline-block; border-radius:999px; padding:2px 9px; border:1px solid var(--line); background:#fff; }
@media (max-width:900px){ header{padding:22px 18px;} .grid{grid-template-columns:1fr;} }
</style>
</head>
<body>
<header>
<h1>Proposal Readiness Router</h1>
<div class="small">Job b608fcef-4d8e-49cc-b5d6-7eb20dac3149 · owner 墨宇產品負責人 · due 2026-05-30</div>
</header>
<main>
<section>
<h2>目前路由判斷</h2>
<div class="grid">
<div class="card"><div class="label">Visit Evidence</div><div class="value red">0 / 2</div><div class="small">未見實際拜訪紀錄。</div></div>
<div class="card"><div class="label">Pain Scenes</div><div class="value red">0 / 5</div><div class="small">缺客戶質疑時刻與 proof needed。</div></div>
<div class="card"><div class="label">Case Boundary</div><div class="value amber">待審</div><div class="small">外部 proposal 前必須補齊。</div></div>
<div class="card"><div class="label">Next Route</div><div class="value blue">people_sync</div><div class="small">先追證據,不產 generic proposal。</div></div>
</div>
</section>
<section>
<h2>Scoring Rule</h2>
<table>
<tr><th>項目</th><th>分數</th><th>Gate</th></tr>
<tr><td>2 completed visits</td><td>25</td><td>少於 2 場直接 people_sync。</td></tr>
<tr><td>5 pain scenes</td><td>25</td><td>少於 5 筆不得產 proposal。</td></tr>
<tr><td>proof_needed complete</td><td>20</td><td>每筆痛點都要有證據需求。</td></tr>
<tr><td>success_metric complete</td><td>15</td><td>每筆要有可量化驗收。</td></tr>
<tr><td>case_boundary complete</td><td>15</td><td>needs_approval 轉 CEO review。</td></tr>
</table>
</section>
<section>
<h2>Next Route Matrix</h2>
<table>
<tr><th>條件</th><th>路由</th><th>負責人</th></tr>
<tr><td><code>visit_count &lt; 2</code></td><td><span class="pill">people_sync</span></td><td>墨宇產品負責人</td></tr>
<tr><td><code>pain_scene_count &lt; 5</code></td><td><span class="pill">people_sync</span></td><td>墨宇客戶成功窗口</td></tr>
<tr><td><code>case_boundary = needs_approval</code></td><td><span class="pill">ceo_review</span></td><td>墨宇 CEO 決策窗口</td></tr>
<tr><td><code>readiness_score &gt;= 80</code></td><td><span class="pill">proposal_brief</span></td><td>PLS project_runner</td></tr>
<tr><td><code>csv_schema_errors repeated</code></td><td><span class="pill">repo_change</span></td><td>墨宇工程窗口</td></tr>
</table>
</section>
</main>
</body>
</html>

Skill / Tool Usage

Selected Skills / Tools

  • purpose_e2e_toolbox_v2: used as the governing solution model for purpose, E2E, value path, human capability, stack, data model, acceptance, and decision record.
  • Web search: used for current market maturity evidence from Gartner, HubSpot, and McKinsey.
  • Shell tools: rg, sed, python3 -m json.tool, find.
  • GitHub CLI: used to create and verify shared-cloud Gist.
  • URL check: curl -I -L -s used to verify Gist HTTP 200.
  • PLS helper: doctor, touch, claim, context, progress, upload-files, complete.

Why These Tools

This is a production operating pack, not a deployable code repo. The fastest durable artifact is a shared-cloud Gist containing HTML, CSV, and specs. The CSV and data model create the path to a later repo/API implementation.

Evidence Artifact / Test Result

  • proposal-readiness-router.html is the primary usable artifact.
  • visit-evidence-intake.csv is the operational data template.
  • learning-memory.json passes JSON parsing.
  • Gist is verified by HTTP 200 and file list.
  • PLS upload-files must return uploaded file count before complete.

Solution Selection

Selected Solution

proposal_readiness_router

Why This Solution

The project needs a production decision engine that links customer evidence to the next PLS job. A router is more useful than another script because it can be used immediately by PLS and humans to decide whether to generate a proposal, chase missing data, or block risky external case usage.

Rejected Solutions

  • script_v2_without_data: rejected because it would guess improvements.
  • market_research_pack: rejected because research-only deliverables do not move adoption.
  • proposal_deck_now: rejected because proof, metrics, and case permission are not ready.

Acceptance Trigger

Move to proposal generation only when:

  • at least 2 visit records exist.
  • at least 5 pain-scene records exist.
  • each proof asset has case boundary.
  • readiness score is 80 or higher.

Market Context Sources

Checked date: 2026-05-24 Asia/Taipei.

  1. Gartner, "AI-Driven Sales Enablement Will Deliver 40% Faster Sales Stage Velocity", published 2026-04-01. URL: https://www.gartner.com/en/newsroom/press-releases/2026-04-01-gartner-predicts-ai-driven-sales-enablement-will-deliver-40-percent-faster-sales-stage-velocity-than-traditional-enablement-methods-by-20291 Use: supports AI-driven enablement and stage velocity as a measurable outcome.

  2. Gartner, "What Is Sales Enablement? The CSO's Ultimate Guide". URL: https://www.gartner.com/en/sales/role/sales-enablement Use: supports connecting content, guidance, and data to buyer engagement.

  3. HubSpot, "28 Questions to Ask on a Discovery Call During the Sales Process". URL: https://blog.hubspot.com/sales/discovery-call-questions Use: supports structured discovery around goals, challenges, and next steps.

  4. HubSpot, "How & why to use sales scripts". URL: https://blog.hubspot.com/sales/sales-scripts-examples Use: scripts should support a conversation, not replace evidence capture.

  5. McKinsey, "Five ways B2B sales leaders can win with tech and AI". URL: https://www.mckinsey.com/capabilities/growth-marketing-and-sales/our-insights/five-ways-b2b-sales-leaders-can-win-with-tech-and-ai Use: supports personalized value propositions, seller productivity, and opportunity prioritization.

  6. Previous PLS artifact, contract-complete adoption pack. URL: https://gist.github.com/esz135888/3fc7b5fb44161282f84c0d6c1e168641 Use: prior round completed; this round advances into proposal readiness routing.

visit_id account_name_hash visit_date customer_segment pain_moment customer_quote proof_needed success_metric next_step next_owner next_due case_boundary
VISIT-001 acct_demo_001 2026-05-24 B2B service team 客戶問導入後誰維護時開始質疑 如果你們離開後誰負責更新? 權限與維運流程圖 7天內減少2小時人工整理 workshop 墨宇產品負責人 2026-05-27 needs_approval
VISIT-002 acct_demo_002 2026-05-25 enterprise sales team 客戶問是否有同業案例時開始質疑 有沒有可以看的實際案例? 去識別案例與成效指標 下一次會議前確認可公開案例 proposal 墨宇客戶成功窗口 2026-05-28 internal_only
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment