Yes/No 二選是隱式 collapse:把多選空間壓成 1 bit
結論
把決策呈現成 yes/no 問句(“需要我繼續嗎?"、“要做嗎?"、“確認嗎?")= 把使用者的回應空間壓縮到 1 bit。1 bit 不夠表達決策:使用者實際上有「改方向 / 延後 / 疊加 / 分批 / 反問」等合法選項、被 yes/no 結構藏起來。
這是 #79 五維度 collapse 的極致形態 — 預設窄格 + 預設立刻 + 預設單選 + 預設一次完成 + 預設單策略 + 再加一層 reduce 到 binary。最容易寫、最隱形、最常見。
為什麼 Yes/No 看起來合理但其實不夠
Yes/No 問句的隱含預設:
- 使用者已經同意「我提出的方向」是對的 — 只剩執行 / 不執行
- 沒有「微調」的中間態 — 想改一點點、要重起一輪 yes/no
- 沒有「再多想想」 — 沒有 yes 也沒有 no 的時候被迫硬選
- 沒有「順便加 X」 — 想疊加策略要破格自己提
- 沒有「先做一半」 — 全做 vs 不做、沒有分批選項
實際上多數決策不是 1 bit 寬。當 agent 寫「要繼續嗎?」、使用者經常回答「等等、我想先 X」、「順便也做 Y」、「先做 A 不做 B」 — 這些回應全部都不是 yes 也不是 no、是對話越過 yes/no 結構自我修正。
修正成本由使用者承擔 = 反過來 #74 的問題(把整理成本丟回使用者)。
Yes/No 的常見變種
agent 容易寫的 yes/no 變種:
| 變種 | 隱含預設 |
|---|---|
| “需要我 X 嗎?” | 我已經想好要 X、你只要批准 |
| “要繼續嗎?” | 流程往下走、你只要不阻止 |
| “OK 嗎?” | 我做了 X、你只要不反對 |
| “我先做 X、有問題嗎?” | 我打算開幹、你只要沒異議 |
| “確認一下、是這樣嗎?” | 你之前說的我理解對嗎、回 yes/no |
| “如果 OK 我繼續做” | 同意 → 繼續、不同意 → 卡住 |
每個變種都把使用者推進「同意 / 不同意」的二元框、其他合法回應(改 / 延後 / 疊加 / 分批 / 反問澄清)需要使用者自己破格。
修法:把 Yes/No 翻成多維展開
把 binary 拆回多維:
Before(yes/no)
“我打算 ship D(UX hint)、需要我繼續嗎?”
After(五維展開)
接下來的選項:
選項 適配性 取捨 立刻 ship D 解眼前痛 不解根因 延後 D、先補 telemetry 等資料 推遲 1 週 跳過 D、做 B/C 結構 fix 風險高、要驗證 D + 寫測試固化 疊加 多寫 30 分鐘 我推薦 D + 寫測試固化(疊加)— 解眼前痛 + 防回退。改 / 延後 / 跳過都行、跟我說。
對照
| 維度 | Before | After |
|---|---|---|
| 呈現格式 | yes/no 一句 | 結構表 + 推薦 |
| 策略數 | 單一 D | D + 測試疊加 |
| 批次邊界 | 一次 | 隱含分批(B/C 下輪) |
| 時間軸 | 立刻 | 提供延後條件 |
| 選項類型 | binary | 多選、可疊加 |
明顯多花字、明顯讓使用者更容易做正確決策。
何時 Yes/No 真的合理
不是所有 yes/no 都該展開。合理的少數情境:
| 情境 | 為什麼 yes/no 夠用 |
|---|---|
| 已經三回合確認過、純最終 confirmation | 多選空間在前面回合已展開 |
| Atomic 動作、沒中間態(push 與否、刪除與否) | 真的是 binary、沒有 1.5 |
| 使用者明確下了「OK 直接做」的指令 | 多展開反而干擾節奏 |
| 緊急情境、來不及展開 | 時間壓力 > 決策品質 |
| 純 sanity check、執行已經決定(“我跑 X、有沒有要先停?") | 預設執行、yes/no 是 last chance 攔截 |
五類共通:多選空間已經消耗或不存在。其他情境都該展開。
跟其他卡的關係
| 卡 | 關係 |
|---|---|
| #79 決策對話的五維度 | 本卡是 #79 在「最常見變種」的具體化 — yes/no 是五維全 collapse 再加 binary |
| #74 決策呈現格式 | yes/no 等同「給推薦但不給選項」、是 #74 反模式列的延伸 |
| #67 寫作便利度 | yes/no 是「最容易寫」的格式(最少字)、跟使用者意圖對齊(多選空間)反相關 |
| #72 高 ROI 無觸發 | 「展開 yes/no」是高 ROI 但無觸發的工作、需要 L3 結構性對策提示 |
判讀徵兆
| 訊號 | 該做的事 |
|---|---|
| 寫到「需要 X 嗎?」 | 翻成多選表 |
| 寫到「要繼續嗎?」 | 列出「改方向 / 延後 / 疊加」三選 |
| 「OK 嗎?」結尾 | 檢查是否真的是 last-mile confirm、否則展開 |
| 使用者回 “等等、先 X” | 你寫了 yes/no、他在破格 — 下次該預先展開 |
| 使用者回 “順便也做 Y” | 你漏了疊加維度 |
| 「如果 OK 我繼續」隱含「不同意 = 卡住」 | 使用者不同意有實際下一步嗎?沒有 = 變相強制同意 |
| 一輪對話 yes/no 出現 ≥ 3 次 | 你在用 binary 取代展開、退一步看是不是 #79 五維都該展開 |
核心:Yes/No 是 1 bit、決策空間是 N bit。用 yes/no 包裝不是「簡化」、是「藏掉維度」。簡化是少寫某個維度;藏掉維度是把多維壓成 1 bit、讓使用者破格才能表達。前者良性、後者不良。