Decision Dialogue — 決策對話的五維度協議
對應觸發情境:準備呈現決策給使用者選擇時(任何「該怎麼做、A 還是 B、要不要做 X」的場景)。
本 reference 自包含、不需讀其他 reference。把 #74-#79 系列翻譯成可直接套用的協議步驟與模板。
核心命題
對話中要使用者決策時、有五個獨立維度可以選擇 — 不該預設 collapse 到單一格子:
| 維度 | 預設窄格 | 鬆綁後 |
|---|---|---|
| 呈現格式 | 開放問 | 選項表 + 推薦 |
| 策略數 | 單選 | 主 + 補強疊加 |
| 批次邊界 | 一次做完 | 分批 ship |
| 時間軸 | 立刻決 | 結構性延後 |
| 選項類型 | 單選 radio | 複選 checkbox |
預設都選窄格 = 用最少自由度的問題塞使用者。每個維度該選哪邊、依情境 reason about、不是無腦套預設。
五步判讀(依序檢查)
步驟 1:選項類型 — 是執行還是反省?
判準:「這次 output 該收斂到一個答案、還是攤開多面向?」
| 情境 | 預設 |
|---|---|
| 執行類(用 A 還是 B 工具、選哪個策略) | 單選 + 推薦 |
| 反省類(這次學到什麼、下一步該往哪走) | 複選、明示「互不衝突可全選」 |
反例:把「我們可以做卡片 / 測試 / 改流程 / 寫文章哪個?」當單選 — 強迫使用者排序、結果只有第一個被做。
修法:列全 + 標「都該做、優先 1+2、3-4 下輪」、把「全做」「跳過某幾個」「調順序」三種回應全列為合法。
步驟 2:時間軸 — 現在能決嗎?
判準:「我(agent)有沒有提供能讓使用者下決定的全部資訊?」
| 情境 | 預設 |
|---|---|
| Context 完整、選項都展開 | 立刻決 |
| Context 缺(依賴未跑的測試 / 未讀的 code / 未完成的觀測) | 延後 + 寫條件 |
反例:使用者說「我再想想」、agent 加壓「那你決定了嗎?」— 把延後當失敗。
修法:決策表加最後一欄「延後(補 X 再決)」、寫具體條件(補完 X / 等到 Y / 跑完 Z 觀測)— 延後不是逃避、是有 next step 的另一種決策。
步驟 3:策略數 — 單選還是疊加?
判準:策略間 (1) 解不同層、(2) 沒副作用衝突、(3) 增量成本可接受 → 三條全滿足 = 該疊加。
| 組合 | 範例 |
|---|---|
| Structural + UX | Multi-index(解根因)+ Honest progress UI(解感知) |
| Defensive + Optimistic | 輸入驗證 + 預設值 / 自動修正 |
| Now + Later | 先 ship X 解眼前、Y 下輪做(時間軸疊加) |
反例:「五策略選一」當預設、推薦時只列一個策略。
修法:呈現選項時主動標「也可以加 X」「先 D 後 B/C」、把疊加組合列為合法回應。
步驟 4:批次邊界 — 一次還是分批?
三軸切分:
| 軸 | 低(先 ship) | 高(下輪) |
|---|---|---|
| 使用者可見性 | UI 改變、訊息精準 | 純內部結構 |
| 風險暴露面 | 純加法、不影響既有 path | 替換、刪除、結構重組 |
| 驗證需求 | unit test 可驗 | 需長時觀測、A/B |
先 ship 甜蜜點:高可見 + 低風險 + 低驗證 — 例:UX hint、empty state 訊息、明顯 UI 修正。
反例:「等所有結構性修法都做完才 ship」— 把重要程度誤當成 ship 順序。
修法:明示「ship 順序 ≠ 重要程度」、可見性高 + 風險低的部分先 ship。
步驟 5:呈現格式 — 開放還是結構?
判準:「我能不能列選項 + 適配性 + 推薦?」
| 情境 | 格式 |
|---|---|
| 有客觀適配性可比 | 結構表 + 推薦 + 開放修改 |
| 純探索 / 主觀偏好 / 命名 | 開放問 |
反例:「你想怎麼做?」— 把整個問題空間丟回去。
修法:
1## 選項
2
3| 選項 | 適配性 | 取捨 |
4|---|---|---|
5| A ⋯⋯ | ⋯⋯ | ⋯⋯ |
6| B ⋯⋯ | ⋯⋯ | ⋯⋯ |
7| 延後(補 X 再決) | 等 Y | 條件:⋯⋯ |
8
9## 推薦
10
11我推薦 **A**、因為 ⋯⋯。想改成 B 或補充延後條件、跟我說。
12
13## 你的選擇空間
14
15- 同意(A)
16- 改(B、原因 ⋯⋯)
17- 加 / 減 / 疊加組合
18- 延後
19- 任意組合可複選(除非互斥)完整套用範本
把五維檢查全做完後的決策呈現:
1## 我看到的選項
2
3| 選項 | 適配性 | 取捨 |
4|---|---|---|
5| A 結構性修法 | 解根因 | 風險高、要驗證 |
6| B UX 補強 | 立即可見 | 不解根因 |
7| C 不做 | 0 成本 | 使用者繼續手動 |
8| **延後(補 telemetry 再決)** | 等 context | 條件:跑完 1 週觀測 |
9
10## 推薦組合
11
12**B 先 ship、A 下輪**(疊加 + 分批)— B 解眼前痛、A 在 telemetry 證實後再投入結構修法。C 不選因為使用者會抱怨。
13
14## 你的選擇空間
15
16- 同意(B 現在、A 下輪)
17- 改順序(A 先、B 下輪)
18- 加 / 減:把 C 加進來、或拿掉 B
19- 延後:先補 telemetry 再決
20- **任意組合可複選**(除非說明互斥)Self-check checklist
呈現決策前用以下 checklist 檢查(每條問自己「這維度該選窄格還是鬆綁?」):
- 選項類型:這是執行(單選)還是反省(複選)題?反省題我有沒有明示「互不衝突」?
- 時間軸:context 夠嗎?不夠的話我有沒有列「延後(補 X 再決)」選項?
- 策略數:選項間能不能疊加?三條判準(不同層 / 無衝突 / 成本可接受)滿足的話有沒有提組合?
- 批次邊界:先 ship 哪部分?有沒有把「先 X 後 Y」明示為合法回應?
- 呈現格式:用了結構表 + 推薦嗎?還是丟一句「你想怎麼做」?
任一條沒做、退一步補上、再呈現決策。
反模式快速辨識
| 反模式 | 五維 collapse 到 |
|---|---|
| “你想怎麼做?” | 開放問 + 立刻 + 單選 + 一次 + 單策略 |
| “推薦 A、要嗎?” | 結構但只 1 選 + 立刻 + 單選 + 一次 + 單策略 |
| “ABCDE 你選哪個?” | 結構 + 立刻 + 單選 radio + 一次 + 單策略 |
| “做完 X 才能繼續” | 結構 + 立刻 + 單選 + 一次 + 單策略(漏分批) |
| “這次學到 X、下次注意” | 反省題壓單選、立刻、一次 |
每個變種都是「五個維度都選窄格」的展現 — 看到任一個出現在自己 draft、立刻退回五步判讀。
特別注意 Yes/No 二選(#80)— 「需要 X 嗎?」「OK 嗎?」「要繼續嗎?」這類最常見、最隱形的 collapse、把多選空間壓成 1 bit。修法是把 yes/no 翻成「現在做 X / 改 Y / 延後到 Z / 疊加 X+Y」的多選表。
真實 dogfood 例子(從本 skill 設計過程蒐集)
寫這份 reference 的對話本身、agent 多次出現 collapse 反模式。記下作為將來 self-check 的具體素材:
例 1:commit 後的「下一步」變 yes/no
Bad:「下一步依你之前的決策是 ship D(UX hint),需要我繼續嗎?」
collapse:呈現格式(單一推薦無選項)+ 選項類型(yes/no)+ 策略(單一 D)+ 批次(無選項)+ 時間(隱含立刻)= 五維全 collapse + binary。
Good:列「立刻 ship D / 寫 case study / 反省迭代 / 延後」四選 + 推薦 + 「可複選」。
例 2:列候選用無適配欄的 bullet
Bad:
1下一層迭代候選(多選):
21. dogfood 檢驗
32. L3 trigger
43. case study
54. 倒過來補卡
65. 檢驗 #75 對 #46-#50collapse:呈現格式(沒適配性欄)+ 沒明示「互不衝突可全做」+ 沒推薦組合 + 沒延後選項。
Good:把選項排成「| 選項 | 適配性 | 取捨 |」表 + 標「都不衝突可全做」+ 推薦「先 1+3、4-5 下輪」+ 加「延後(明天再決)」欄。
例 3:執行類決策列點未含推薦
Bad:列出 ABC 三選但騎牆「我推薦 A、不過 B 也行」。
collapse:呈現格式 layer 3「推薦不夠明確」變種、把選擇權騎牆推回給使用者。
Good:「我推薦 A、因為 X。改成 B 的條件是 Y(如果 Y 成立、改 B)。想直接改告訴我。」
例 4:反省題壓單選
Bad:「這次最該做的反省是 1(補卡片)— 要做嗎?」
collapse:反省題用 radio + 推薦 + yes/no。漏掉「全做」「跳過 1 做 2」「延後反省」三種合法回應。
Good:列五個反省方向、明示「互不衝突」、推薦優先順序、「全做」「跳過某幾個」「調順序」全列為合法。
每個 Bad 例都是 #79 五維度 collapse 的具體實例 — 寫的當下覺得「夠精簡」、實際藏掉 N 個合法選項。將來看到自己寫類似格式、立刻退回多選展開。
對應抽象層原則
- #74 決策呈現格式 — 步驟 5 的詳細展開
- #75 主策略 + 補強疊加 — 步驟 3 的詳細展開
- #76 分批 ship 準則 — 步驟 4 的詳細展開
- #77 「現在不決定」是合法選項 — 步驟 2 的詳細展開
- #78 反省任務預設複選 — 步驟 1 的詳細展開
- #79 決策對話的五維度 — 上層 meta-原則
- #67 寫作便利度跟意圖對齊反相關 — 為什麼窄格是預設(容易寫)
- #72 高 ROI 無觸發 — 為什麼鬆綁需要協議結構(不靠紀律)
- #80 Yes/No 二選是隱式 collapse — 五維 collapse 的極致形態、最常見最隱形
- #81 卡片系統的迭代浮現 — 本 reference 的成型過程(spiral 而非線性)
- #82 字面攔截 vs 行為精煉 — 為什麼用 hook 防 collapse 行不通、本 reference 是 multi-pass 設計(self-check 是第二輪、dogfood 是第三輪)