# Scenario playbooks(情境劇本)— 可推廣的 LazyBoy 驗收模式 本目錄描述 **可重複套用** 的 acceptance playbook:把「研究來源 → 草稿 → 人工確認 → 發佈到目標頻道」做成固定兩階段流程。 **蝦皮聯盟 → Threads** 只是一個填好的範例,不是唯一路徑。 產品原語(讓所有情境可推廣): | 原語 | 用途 | |------|------| | `browser_handoff` | 僅用於登入/OTP/驗證碼牆 | | `request_user_confirm` | 任何不可逆公開動作(發文、送出)前必須過關 | | Phase A / Phase B | 研究+草稿 vs 確認後才發佈 | 相關:[`docs/SCENARIO-TEMPLATE.md`](../SCENARIO-TEMPLATE.md)、[`prompts/templates/`](../../prompts/templates/)、範例 [`examples/shopee-threads-affiliate.md`](examples/shopee-threads-affiliate.md)。 --- ## 目標與成功標準 ### 過(Pass) 1. **端到端完成**:從來源入口找到可用素材/連結,產出目標頻道草稿,經確認後成功發佈(或明確 blocked)。 2. **人工觸點最小化**:理想上只有 (1) 來源站登入 handoff (2) 目標頻道登入 handoff (3) 最終發佈 confirm — 其餘自動化。 3. **零靜默發佈**:沒有「本輪明確核准的草稿」或 `request_user_confirm` → `approved`,就不得 publish/send。 4. **Phase 分離**:Phase A **禁止**發佈;Phase B **只**在核准後發佈。 ### 不過(Fail) - 未確認就發文/按送出 - 非 headed 導致 cookie 遺失、無限重登 - 列表/空結果空轉(loop guard 觸發仍算流程失敗若未 `report_blocked` 說明) - 把登入以外的事丟給人(例如叫人手動複製貼上整篇文,而非 agent 貼上後只等 confirm) --- ## Phase A — 研究 + 草稿(禁止發佈) 1. 若需登入來源:`browser_handoff`(僅 auth)。 2. 在 `{{SOURCE_PORTAL}}` 依 `{{GOAL}}` 找出約 2–5 個候選(高佣/相關/可分享)。 3. (可選)快速看 `{{TARGET_CHANNEL}}` 語氣/近期風格。 4. 用繁中(或指定語言)起草 **1** 則貼文,含連結;結構化輸出候選 + 草稿。 5. `report_done` — **禁止** click send/publish。 ## Phase B — 僅在確認後發佈 1. 僅在本 session 已有「明確核准的同一草稿」,或先呼叫 `request_user_confirm`(`prompt` = 全文草稿)。 2. 若需登入目標頻道:`browser_handoff`。 3. 貼上並發佈已核准草稿。 4. `report_done`(盡量附貼文 URL);若未核准 → `report_blocked`,**不得**單方面發文。 --- ## 環境與指令 ```bash export LAZYBOY_API_KEY=你的金鑰 export LAZYBOY_BROWSER_HEADED=1 # 強烈建議;否則 cookie/session 易丟 cd ~/LazyBoy cargo run -p lazyboy -- agent ``` 測試用:`LAZYBOY_CONFIRM_AUTO=1`(核准)/`abort`(拒絕);亦可沿用 `LAZYBOY_HANDOFF_AUTO`。 ### 如何貼 prompts 1. 複製 `prompts/templates/phase-a.txt`,替換 `{{SOURCE_PORTAL}}`、`{{TARGET_CHANNEL}}`、`{{GOAL}}`、`{{CONSTRAINTS}}`。 2. 貼進 `lazyboy agent` 當本輪 user 訊息。 3. 審草稿後,再貼 Phase B(或直接在聊天寫「核准,請發佈以下草稿:…」)。 填好的範例見 `prompts/examples/`。 --- ## 如何實例化新情境 填寫模板欄位即可,例如: | 欄位 | 意義 | 範例 | |------|------|------| | `SOURCE_PORTAL` | 研究/取連結的站 | affiliate.shopee.tw、某官網活動頁 | | `TARGET_CHANNEL` | 發佈目標 | Threads、FB、IG、X | | `GOAL` | 成功長相 | 高佣商品約 3 個、季節主題 | | `CONSTRAINTS` | 額外限制 | 語氣、禁用詞、長度、必須含 #tag | | `LANGUAGE` | 草稿語言 | 繁體中文 | 步驟:複製 template → 填 placeholder → 存成 `docs/scenarios/examples/.md` + `prompts/examples/-phase-{a,b}.txt` → 用 `agent` 跑驗收。 --- ## 失敗模式速查 | 現象 | 處置 | |------|------| | Headless cookie 遺失 | `LAZYBOY_BROWSER_HEADED=1` | | 列表空轉 | `report_blocked`;換篩選/關鍵字;勿重複同工具 ×3 | | 未確認就發 | **產品失敗**;AGENT_SYSTEM + `request_user_confirm` 擋 | | 登入牆 | 只 handoff auth,完成後 Enter | --- ## 範例索引 - [蝦皮聯盟 → Threads(範例)](examples/shopee-threads-affiliate.md)