論述基礎與限制

本卡從一段方法論實驗的兩次假說替換抽出,兩次的形狀完全相同。

起點是一個提案:用能力最弱的模型當冷讀者,看它的誤讀能不能指出文本歧義。跑了三批共七篇,得到一個「發現」,我把它歸因為「弱模型不做修補,所以會在只有靠讀者修補才成立的地方壞掉」。第一次 WARP 指出這個結論缺對照組——強模型跑同一套探測從來沒跑過,於是「弱模型專屬價值」完全是理論宣稱。

補跑對照之後,前提被反向推翻:強模型不但沒有「自動修補所以看不見」,它在每一個量測到的軸上都找得更多、更精確。同時另一個對照顯示那個「發現」根本不是文本缺陷,是提問指向哪個結構的產物。

問題出在下一步。推翻之後我立刻換上新結論:「弱強不是作用中的變因,抽取式協議才是。」再一次 WARP 才發現——十一個受測者全部跑抽取式協議,沒有任何一個跑評價式。新結論的證據狀態,跟舊結論被推翻之前完全相同:一個說得通的故事、幾個 finding、零對照。我在同一段工作裡,用剛剛才驗證過有效的批評,換上了一個經不起同一個批評的替代品。

限制:本卡談的是「已經有一個候選解釋在手上」的情形。從零開始建立假說時的證據要求是另一個題目,那裡的風險是想不出假說,不是替補者混進來。


核心原則

一個假說被推翻的時候,注意力全部集中在「舊的錯在哪」,而替補者是在那個空檔裡被推上去的——它沒有經過任何審查,因為當下所有的審查力氣都花在被告身上。 推論是一句可以直接執行的話:推翻一個假說之後,第一個要問替補者的問題,是那個剛剛用來殺死前任的問題。

不可見有三個互相加強的成分。

懷疑是有預算的,而驗屍把它花光。 推翻一個自己的判斷本身消耗心力,完成之後會產生「這一輪已經嚴格過了」的結算感,而那個結算感的作用範圍其實只涵蓋被推翻的那一個。

替補假說多半是從推翻的過程裡浮現的,因此它帶著「已經被想過」的錯覺。它之所以出現,正是因為它解釋了舊假說為什麼錯——這讓它看起來已經通過一輪檢驗,而實際上它只是「與已知事實不衝突」,這是所有替代解釋的最低門檻。

最關鍵的一項:替補者的證據常常就是為了測前任而蒐集的那批資料。 那批資料的設計目標是分辨舊假說的真偽,對新假說而言它是事後解釋而非預先檢驗。上述實驗裡,「抽取式協議才是關鍵」的全部支持,來自為了測「弱模型有沒有用」而跑的十一次探測——那些探測沒有一次變動過協議這個變因。


修法

替補假說要標明它自己的證據狀態,而且不繼承前任的實驗。 寫下結論時明寫「支持它的對照是哪一次」;答案若是「還沒有」,這個結論就還不是結論,是待測項。前任的實驗資料可以當作它與事實不衝突的證據,不能當作它成立的證據。

用殺死前任的那句話當場測一次。 這一步的成本是一個問句,而它抓的正是最容易漏的那一類——因為那句話當下就在手邊、剛剛才用過。上述案例裡,那句話是「對照組在哪」,而它對新結論的答案是「不存在」。

替補假說提出的當下就寫出它的對照設計。 不是等到下一輪。對照設計寫得出來,代表這個假說至少是可測的;寫不出來,代表它的表述還停在不可證偽的層次,要先改表述。

在替補假說有自己的對照之前,不得寫進規範。 這是絆腳索也是止損:規範一旦寫下就會被後續工作當作前提,而錯誤的歸因會誤導投資方向——上述案例若在補測之前寫進去,寫下的會是「用弱模型跑一輪」,而較好的做法是「用強模型跑抽取式協議」,前者比後者差,卻會因為那句方法論而被固化。


跟其他原則的關係

  • #227 可重現性只有乾淨機器重跑才驗得出:兩者都在處理「宣稱與驗證的落差」,對象不同。#227 說的是環境的宣告(讀 repo 只顯示宣告了什麼、實跑才顯示依賴什麼),本卡說的是解釋的宣告;共同結構是「未經對照的敘述讀起來與已驗證的敘述完全相同」,因此都要靠一次刻意的獨立執行才分得開。
  • #239 宣告的組合不等於執行過的組合:本卡是它在假說層的形態。#239 講已寫下的規則沒有被實際執行,本卡講已推翻的標準沒有被套用到下一個對象——兩者都是「規則存在」與「規則作用」之間的落差,而本卡多一層:套用它的人正是剛剛訂出它的人。
  • #153 漏抓先分 design gap 與 execution gap:替補假說最常見的形狀,就是把執行落差誤診成設計落差(「我們缺一條規則」比「我們沒執行既有那條」更容易被接受,因為前者不必承認疏失)。診斷替補者時先跑 #153 的分流,能擋掉相當一部分。
  • #148 跨輪 review 停止訊號是 frame 涵蓋:同屬「什麼時候可以宣告完成」的家族。#148 的答案是 frame 涵蓋齊備,本卡補的是——推翻與替換也是一種 frame 切換,而切換之後的新對象沒有被任何一輪涵蓋過。
  • #247 多次局部正確的修法會合成缺陷:兩者都描述「連續動作在交界處產生缺陷」。#247 的兩次動作各自正確、缺陷在合成上;本卡的第一次動作正確(推翻)、第二次動作根本沒被檢查。共同的處置方向都是在序列的收尾加一個以整體為對象的步驟。
  • #252 配額耗盡的症狀落在申請最頻繁的元件、成因在持有最久的那個:那張卡限定本卡的適用邊界,要跟本卡一起讀。本卡預設「解釋只能靠假說與對照來檢驗」,而有一類故障可以先跳過建假說這一步——系統本身保存了一份直接指認持有者的紀錄(ppid、鎖的 holder、連線池的 checkout owner),它把搜尋範圍從全系統縮到一個元件,比檢驗任何假說都便宜。順序是先用那份紀錄縮範圍、再用本卡的紀律檢驗「它為什麼不放」;跳過第一步時,本卡會把力氣導向「為手上這個解釋設計對照」,而正確的動作是放棄這個解釋、去讀紀錄。要留意持有者不等於成因,縮完範圍之後仍然需要本卡。
  • #249 對當下段落沒有收益的標註不會自發發生:那張卡的「尚未驗證的更窄版本」段是照本卡的紀律寫的實例——量測過程浮出的替補解釋(暴露成本)沒有自己的對照,因此標為待測、不繼承主張層的證據地位。可當本卡在實際寫作上的示範。

判讀徵兆

  • 剛剛推翻自己的一個判斷,而手上已經有一個替代解釋,且給得出它為什麼比舊的好。
  • 新結論的支持證據,全部來自為了測舊結論而蒐集的資料。
  • 寫得出新結論,寫不出「要跑什麼才能證明它錯」。
  • 推翻的敘述很長很細,替換的敘述只有一句。
  • 一段工作裡出現第二次「其實真正的原因是……」,而兩次之間沒有新的量測。
  • 想把新結論寫進規範,而理由是「這次學到的教訓」。