Skip to content

Instantly share code, notes, and snippets.

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

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

Select an option

Save esz135888/32cfb7b763b1995ed029cf303c5bad67 to your computer and use it in GitHub Desktop.
PLS job feba5ad0 customer visit script loop breaker production pack

Acceptance Tests

Gate 0:Artifact

  • script-loop-breaker-console.html 可打開。
  • 必交檔案齊全:production-brief.mddata-model.mdacceptance-tests.mddecision-record.mdartifact-url-or-pr.md
  • learning-memory.json 可 parse。
  • artifacts_json 包含 primary_artifact、market_context、production_readiness、e2e_verification、people_sync、learning_memory。

Gate 1:D1 Registry

通過條件:

  • registry 至少記錄 script、closure_gate、adoption_ledger、loop_breaker。
  • 同一 action item 再出現時,preflight 能讀到 registry。
  • 若 registry 有 usable artifact,不得直接生成新腳本。

Gate 2:D7 Gate Evaluation

測試輸入:

{
  "adoption_status": "accept",
  "visit_event_count": 2,
  "case_scope_status": "safe"
}

預期:gate_result=close_readynext_dispatch_type=close_actionproposal_module

反例:

  • visit_event_count=1evidence_gap
  • adoption_status=reviserevise
  • case_scope_status=blockedcase_blocked
  • adoption_status=no_response + due passed → no_response

Gate 3:D14 Close / Dispatch

通過條件:

  • close_ready 時,PLS 可關閉 overdue 或標 close_ready。
  • evidence_gap 時,派墨宇客戶成功窗口補 2 筆 evidence。
  • revise 時,派墨宇產品負責人修指定段落。
  • case_blocked 時,派案例授權任務並阻擋外部提案。

Gate 4:D30 Scorecard

通過條件:

  • duplicate_job_rate 每週追蹤。
  • duplicate_job_rate > 0 時,下一輪 worker 必須先執行 loop breaker。
  • proposal_module_spawned 可追。

e2e_verification

本輪可驗證:

  • 本地檔案已建立。
  • learning memory JSON 可 parse。
  • required keywords 可搜尋:market_context、production_readiness、e2e_verification、people_sync、learning_memory。
  • Gist URL 建立後以 curl -I -Lgh gist view --files 驗證。

Data Model / API / Sync / Permission Spec

Tables

script_delivery_registry

欄位 型別 說明
id uuid registry id
project_id uuid project id
action_item_id uuid 產出第一版客戶拜訪腳本
artifact_kind enum script, closure_gate, adoption_ledger, loop_breaker, proposal_module
artifact_url text durable URL
artifact_status enum draft, usable, superseded, blocked
decision_record_url text decision record
created_by_job_id uuid PLS job
created_at timestamptz 建立時間

script_gate_evaluations

欄位 型別 說明
id uuid evaluation id
action_item_id uuid action
evaluated_at timestamptz 評估時間
adoption_status enum accept, revise, evidence_gap, no_response
visit_event_count int 有效拜訪證據數
case_scope_status enum safe, blocked, unknown
gate_result enum close_ready, revise, evidence_gap, case_blocked, no_response
next_dispatch_type enum close_action, revise_script_section, collect_visit_evidence, case_authorization, ceo_escalation, proposal_module
rationale text 判斷理由

script_reopen_events

欄位 型別 說明
id uuid reopen id
action_item_id uuid action
reopen_reason enum revise_feedback, missing_evidence, case_blocked, no_response, metric_regression
source_ref text 來源
owner_member_id uuid owner
due_date date 到期
status enum open, resolved, waived

script_adoption_scorecards

欄位 型別 說明
id uuid scorecard id
project_id uuid project id
period_start date 週期
period_end date 週期
duplicate_job_rate numeric 重複派工率
gate_evaluation_latency_hours numeric gate 評估時間
close_ready_count int 可關閉數
gap_dispatch_count int 缺口派工數
proposal_module_spawned int 生成提案模組數

API / Sync

Loop breaker preflight

POST /api/pls/projects/{project_id}/script-loop-breaker/evaluate

{
  "action_item_id": "76890f66-704c-4bc5-a9e6-e22b0c98da97",
  "signal": "action_overdue",
  "artifact_registry_lookup": true
}

Rules:

  • 若 registry 已有 usable script/closure/adoption ledger,禁止直接生成新腳本。
  • accept + visit_event_count >= 2 + case_scope_status=safeclose_ready
  • revise → 只開 section revision,不重寫整包。
  • evidence_gap 或 visit_event_count < 2 → 派客成 evidence task。
  • case_scope_status=blocked → 派 case authorization,外部 proposal blocked。
  • no_response 且 due passed → CEO escalation。

權限與稽核

角色 可讀 可寫 不可做
墨宇產品負責人 registry、gate evaluation adoption status、revise feedback 刪除原始 visit evidence
墨宇客戶成功窗口 script、evidence task visit evidence 關閉 action
墨宇 CEO 決策窗口 scorecard、no_response escalations escalation decision 覆蓋原始 artifact
PLS worker registry、gate、source_ref evaluation、dispatch proposal 跳過 gate 直接重複生成

所有 gate evaluation 需有 evaluated_atrationalesource_ref,避免未來 worker 無法追溯為什麼關閉或重開。

失敗回滾

  • 若 close_ready 後發現 evidence 造假或 case 越權,建立 script_reopen_events(metric_regression/case_blocked)
  • 若 proposal module 使用 blocked case,module status 退回 blocked。
  • 若 duplicate_job_rate > 0,下一輪 PLS worker 必須先執行 loop breaker preflight。

Decision Record:客戶拜訪腳本 Loop Breaker

背景

PLS 已多次將同一 overdue action「產出第一版客戶拜訪腳本」派成 production job。前輪成果已包含腳本、closure gate、adoption evidence ledger。若繼續生成新腳本,會造成 AI 文件堆疊,而 action item 仍不關閉。

選項

選項 說明 優點 風險
A. 再做新版腳本 產出更完整腳本。 快速。 重複,無法解決 action 不關閉。
B. 再做採用提醒 再推 LINE 草稿。 成本低。 無法阻止下一輪重複派工。
C. 建 loop breaker 建 registry、close/reopen gate、preflight。 可停止重複、精準轉派缺口、形成治理。 需要 PLS 下一輪遵守 preflight。

推薦

採用 C。

理由:

  • 成熟 playbook/CRM adoption 做法重點是 usage evidence、follow-up task、next-best action,而不是一直更新文件。
  • PLS 目前的 failure mode 是沒有把上一輪 artifact 作為 gate 輸入。
  • loop breaker 讓下一輪只做缺口派工,避免再浪費 worker。

採用狀態

建議狀態:pending_pls_preflight_adoption

owner:PLS worker

business owner:墨宇產品負責人

due:2026-05-25 18:00 前取得 accept/revise/evidence_gap。

落地路徑

  1. 將既有 artifacts 寫入 script_delivery_registry
  2. 每次 action_overdue 先跑 loop breaker evaluation。
  3. close_ready 則關閉 overdue 並派 proposal module。
  4. 缺 evidence/revise/case/no_response 則轉派精準缺口。
  5. 每週追 duplicate_job_rate 與 proposal_module_spawned。

退修回饋格式

若不採納,需回覆:

  • 哪個 close gate 條件不合理。
  • 哪個 artifact 不應納入 registry。
  • 哪種情況仍應重寫腳本。
  • 誰能拍板關閉 overdue。

沒有上述回饋,不應再重複生成腳本。

{
"job_id": "feba5ad0-2fff-4cce-8d67-0e913868e523",
"project_id": "b3138a2e-6641-4cc1-859d-8b1d0abf2d3b",
"ai_native_project_id": "de53d513-ec69-423b-9de2-7969241d2895",
"learned_at": "2026-05-24T03:07:00+08:00",
"signal": {
"type": "action_overdue",
"summary": "產出第一版客戶拜訪腳本再次被派成 production job",
"root_cause_hypothesis": "PLS 缺少 artifact registry 與 close/reopen preflight,導致同一 overdue signal 重複生成 production packs。"
},
"recommended_next_check": [
"script_delivery_registry 是否已有 usable script/closure/adoption artifacts",
"script_gate_evaluations 是否已判 close_ready/revise/evidence_gap/case_blocked/no_response",
"duplicate_job_rate 是否大於 0",
"若 close_ready 是否已派 proposal module",
"若 no_response 是否已升級 CEO 決策窗口"
],
"do_not_repeat": [
"不要再直接生成新的客戶拜訪腳本",
"不要在未查 registry 前處理同一 overdue",
"不要把 evidence_gap 當成 script_gap",
"不要在 close_ready 條件滿足後繼續派 production pack"
],
"next_worker_rules": {
"if_registry_has_usable_artifacts": "run_loop_breaker_preflight_before_any_build",
"if_close_ready": "close_overdue_and_dispatch_proposal_module",
"if_revise": "dispatch_section_revision_only",
"if_evidence_gap": "dispatch_two_visit_evidence_events",
"if_case_blocked": "dispatch_case_authorization_and_block_external_proposal",
"if_no_response": "escalate_to_ceo_decision_window"
},
"market_context": {
"checked_date": "2026-05-24",
"pattern": "Sales playbook systems should focus on CRM-embedded usage evidence, follow-up tasks, next-best actions, and adoption metrics rather than repeated static documents."
},
"production_readiness": {
"primary_artifact": "script-loop-breaker-console.html",
"e2e_verification": "Validate JSON, required keywords, uploaded files, durable Gist URL.",
"required_artifacts": [
"production-brief.md",
"data-model.md",
"acceptance-tests.md",
"decision-record.md",
"artifact-url-or-pr.md"
]
}
}

客戶拜訪腳本 Loop Breaker Production Brief

場景

PLS 多輪把「產出第一版客戶拜訪腳本」派成 production job,代表真正問題不是缺成果,而是缺 close/reopen gate。前輪已產出腳本、closure gate、adoption evidence ledger;如果本輪再做一份腳本或證據表,會繼續堆疊文件。這一輪把任務升級成 loop breaker:讓 PLS 下一次遇到同一 overdue signal 時,先判斷「關閉、轉派、升級、重開」。

30 天路徑

節點 成果 驗收
D1 建立 script_delivery_registry,索引所有既有腳本、closure、adoption artifacts。 同一 action 不再直接生成新腳本。
D7 PLS 按 close/reopen gate 自動轉派缺口。 重複 production job 下降為 0,缺口任務都有 owner/due。
D14 通過 close gate 後,自動關閉 overdue 並派 proposal module。 action status 轉 close_ready/completed,D14 任務已產生。
D30 建立 script adoption scorecard。 採用、提案、案例風險用週指標迭代,不再重複文件。

Purpose-to-Purpose E2E

原始目的:讓客戶拜訪腳本被採用,讓客戶感受到墨宇優勢,最終改善提案轉換。

產出物:loop breaker console、registry schema、close/reopen API、acceptance tests、decision record、learning memory。

人採用:墨宇產品負責人只需回覆 accept/revise/evidence_gap;客成只需補 evidence;CEO 只在 no_response 或重大 case risk 時介入。

指標改善:

  • 節省成本:避免 AI 重複產出相同腳本包。
  • 提高轉換:通過 gate 後直接派 D14 proposal module。
  • 降低風險:case blocked 不進外部提案。
  • 提升治理:每次重開都有理由與 owner,不再靠泛泛 overdue。

market_context

2026-05-24 快速檢查成熟做法:

  • HubSpot playbook/CRM practice 強調 playbook 要在 CRM record 使用並保存問答/任務,否則只是靜態文件。
  • Gartner sales enablement practice 強調 end-to-end buying journey data、content/tool adoption 與 next-best action。
  • CRM adoption 實務顯示,重複提醒或文件更新不會解決使用問題;需要 task、follow-up、role-based adoption metrics。

本輪採用:把 PLS 的重複派工從「再生成」改為「gate 判斷與缺口轉派」。

Solution Stack

  • 脈絡框架:overdue signal → artifact registry → close/reopen gate → dispatch decision → scorecard。
  • 作業流程:讀 action → 查 registry → 查 adoption_review/visit_events/case_scope → close 或派缺口。
  • 資料/DB 模型:script_delivery_registryscript_gate_evaluationsscript_reopen_eventsscript_adoption_scorecards
  • 可操作工具:HTML console、API spec、acceptance tests、LINE 草稿。
  • 驗收指標:duplicate_job_rate、gate_evaluation_latency、close_ready_count、gap_dispatch_count、proposal_module_spawned。
  • 下一輪升級:把 close/reopen evaluator 做成 PLS worker preflight。

production_readiness

  • Primary artifact:script-loop-breaker-console.html
  • Data model:data-model.md 定義 registry、gate、reopen、scorecard。
  • E2E acceptance:acceptance-tests.md 定義 D1/D7/D14/D30 gate。
  • Decision record:decision-record.md 記錄為何本輪不再生成腳本。
  • Learning memory:learning-memory.json 告訴下一輪 worker 先跑 loop breaker preflight。

people_sync

LINE 草稿:

墨宇產品負責人、客成窗口、CEO 決策窗口,PLS 已建立「客戶拜訪腳本 loop breaker」。之後同一 overdue 不再重複產腳本,會依 gate 自動轉派:accept + 2 筆 evidence + case safe 則關閉並派提案模組;revise 只修指定段落;evidence_gap 派客成補 2 筆 evidence;no_response 升級 CEO。請在 2026-05-25 18:00 前補 accept/revise/evidence_gap。

learning_memory

本輪推翻的假設:每次 overdue 都需要再產 production pack。真正需要的是 PLS preflight:先查 registry 與 gate。下一輪如果同一 action 再出現,除非有明確 revise feedback,不得再生成腳本;應根據缺口派 adoption review、visit evidence、case authorization 或 CEO escalation。

<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>客戶拜訪腳本 Loop Breaker Console</title>
<style>
:root { --ink:#152033; --muted:#5e6b7a; --line:#d8e0e8; --bg:#f8fafc; --panel:#fff; --green:#0f766e; --blue:#1d4ed8; --amber:#9a5b00; --red:#b42318; --violet:#6d28d9; }
* { box-sizing:border-box; }
body { margin:0; font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); line-height:1.5; }
header { background:#111827; color:white; padding:30px clamp(18px,4vw,50px); }
h1,h2,h3 { margin:0; line-height:1.2; }
h1 { font-size:clamp(28px,5vw,48px); max-width:1100px; }
h2 { font-size:22px; margin-bottom:12px; }
h3 { font-size:16px; margin-bottom:7px; }
header p { max-width:1060px; color:#dce5f2; margin:10px 0 0; }
main { padding:24px clamp(16px,4vw,50px) 46px; }
.grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; margin-bottom:22px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.span-3 { grid-column:span 3; } .span-4 { grid-column:span 4; } .span-6 { grid-column:span 6; } .span-8 { grid-column:span 8; } .span-12 { grid-column:span 12; }
.metric { font-size:31px; font-weight:760; margin:5px 0 2px; }
.muted { color:var(--muted); }
.tag { display:inline-flex; align-items:center; min-height:24px; padding:2px 8px; border-radius:999px; border:1px solid currentColor; font-size:12px; font-weight:720; margin:2px 4px 2px 0; }
.green { color:var(--green); } .blue { color:var(--blue); } .amber { color:var(--amber); } .red { color:var(--red); } .violet { color:var(--violet); }
table { width:100%; border-collapse:collapse; }
th,td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:0; }
ul,ol { margin:8px 0 0 18px; padding:0; } li { margin:5px 0; }
.code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; background:#eef3f7; border-radius:6px; padding:2px 5px; }
.line-draft { white-space:pre-wrap; background:#eff6ff; border:1px solid #bfd7ff; border-radius:8px; padding:14px; }
@media (max-width:960px){ .span-3,.span-4,.span-6,.span-8{grid-column:span 12;} }
</style>
</head>
<body>
<header>
<h1>客戶拜訪腳本 Loop Breaker Console</h1>
<p>PLS 已多次把「產出第一版客戶拜訪腳本」派成 production job。這份成果不是再補一版腳本,而是定義「何時關閉、何時重開、何時轉派缺口」的自動化規則,避免 AI 產物一直堆疊卻 action item 永遠 overdue。</p>
</header>
<main>
<section class="grid">
<div class="card span-3"><h3>Loop 狀態</h3><div class="metric red">重複</div><p class="muted">同一 overdue signal 已產多輪 artifacts。</p></div>
<div class="card span-3"><h3>Close Gate</h3><div class="metric green">3 條</div><p class="muted">產品 accept、2 筆 visit evidence、case scope safe。</p></div>
<div class="card span-3"><h3>Reopen Gate</h3><div class="metric amber">4 類</div><p class="muted">revise、evidence_gap、no_response、case_blocked。</p></div>
<div class="card span-3"><h3>Owner</h3><div class="metric">PLS</div><p class="muted">下一輪 worker 先判 gate,不先寫腳本。</p></div>
</section>
<section class="grid">
<div class="card span-8">
<h2>D1 / D7 / D14 / D30 Loop Break 路徑</h2>
<table>
<thead><tr><th>節點</th><th>系統行為</th><th>驗收</th></tr></thead>
<tbody>
<tr><td>D1</td><td>把所有既有腳本/closure/adoption artifacts 索引到 `script_delivery_registry`。</td><td>同一 action 不再直接生成新腳本。</td></tr>
<tr><td>D7</td><td>PLS 只檢查 gate 欄位:accept、2 events、case scope;缺什麼派什麼。</td><td>重複 production job 下降為 0,缺口任務有 owner/due。</td></tr>
<tr><td>D14</td><td>通過 close gate 後,自動關閉 overdue 並派 proposal module。</td><td>action status 由 overdue 轉 close_ready/completed。</td></tr>
<tr><td>D30</td><td>建立 script adoption scorecard,讓採用/提案/案例風險每週回流。</td><td>PLS 以指標迭代,不以重複文件迭代。</td></tr>
</tbody>
</table>
</div>
<div class="card span-4">
<h2>Purpose-to-Purpose E2E</h2>
<ol>
<li>原始目的:讓客戶拜訪腳本真的被採用並改善提案。</li>
<li>產出物:loop breaker、registry、close/reopen API、scorecard。</li>
<li>人採用:產品/客成只回覆缺口,PLS 自動轉派。</li>
<li>指標改善:減少重工、縮短關閉時間、提升提案轉換。</li>
</ol>
</div>
</section>
<section class="grid">
<div class="card span-6">
<h2>Close / Reopen Rules</h2>
<table>
<thead><tr><th>狀態</th><th>條件</th><th>PLS 行為</th></tr></thead>
<tbody>
<tr><td><span class="tag green">close_ready</span></td><td>accept + >=2 visit_events + case_scope safe</td><td>關閉 overdue,派 D14 proposal module</td></tr>
<tr><td><span class="tag amber">evidence_gap</span></td><td>缺 visit_events 或痛點場景</td><td>派客成補 2 筆 evidence</td></tr>
<tr><td><span class="tag blue">revise</span></td><td>產品指出段落不可用</td><td>只修指定段落,不重寫整包</td></tr>
<tr><td><span class="tag red">case_blocked</span></td><td>案例未授權或 external scope 不安全</td><td>派案例授權任務,外部提案 blocked</td></tr>
<tr><td><span class="tag violet">no_response</span></td><td>due 過後無 accept/revise/evidence_gap</td><td>升級 CEO 決策窗口</td></tr>
</tbody>
</table>
</div>
<div class="card span-6">
<h2>people_sync</h2>
<div class="line-draft">LINE 草稿:
墨宇產品負責人、客成窗口、CEO 決策窗口,PLS 已建立「客戶拜訪腳本 loop breaker」。之後同一 overdue 不再重複產腳本,會依 gate 自動轉派:
1. 產品 accept + 2 筆拜訪 evidence + 案例權限安全 → 關閉並派提案模組;
2. revise → 只修指定段落;
3. evidence_gap → 客成補 2 筆拜訪 evidence;
4. no_response → 升級 CEO 決策。
請在 2026-05-25 18:00 前補 accept/revise/evidence_gap。</div>
</div>
</section>
</main>
</body>
</html>

Sources

Checked on 2026-05-24.

market_context

Applied Interpretation

本輪把成熟做法轉成 PLS loop breaker:不再把同一 overdue 當成生成任務,而是先查 registry 與 gate,根據缺口轉派。這能讓 PLS 從「文件工廠」升級成「採用治理系統」。

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