對應觸發情境:準備呈現決策給使用者選擇時(任何「該怎麼做、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 + UXMulti-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-#50

collapse:呈現格式(沒適配性欄)+ 沒明示「互不衝突可全做」+ 沒推薦組合 + 沒延後選項。

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 個合法選項。將來看到自己寫類似格式、立刻退回多選展開。


對應抽象層原則