要求揭露只擋得住省略,要分層得改成要求分類
論述基礎與限制
本卡從一次審查的回報抽出,由併行的另一個工作階段提供。單一 reviewer、單一批判斷標準;「一鍋端的比例」在別的批次上沒有量測,而成因(分類這個動作在報告者那一側原本不存在)有它自己指出的因果可以指認。
核心原則
要求揭露擋掉的是省略,擋不住一鍋端。 一條契約寫「零命中要明寫,不可省略不提」,得到的回報會是一句涵蓋全部的話——它完全合規,而它把證據力不同的東西壓成同一個粒度。
一鍋端比省略難察覺,因為它已經照契約寫了。 省略會留下一個空白,讀的人看得見;一鍋端交出一份完整的報告,讀的人沒有任何理由停下來。
分類這個動作在報告者那一側原本不存在,所以那不是隱瞞。 他沒有把那些條目分成兩堆再選一堆寫出來——他從頭到尾只有一堆。要他分堆,得由問句把分堆這件事本身帶進來。
判別問句:這個欄位要求的是「說出來」,還是「分好類」。 只要求說出來的,回報會落在最省力的那個粒度。
實例:三十四條零命中裡有十六條不是證據
一個 reviewer 跑完六十六條判斷標準,回報三十四條零命中,格式完全符合當時的契約。
被追問「這些是逐條造過候選情境才判的,還是讀過覺得清楚就放行」之後,那三十四條拆成三類:
| 這個零從哪來 | 條數 | 該怎麼讀 |
|---|---|---|
| 造過候選情境、判定不成立 | 17 | 是證據 |
| 判斷標準只有二元事實(大小寫、引號閉合),造不出情境 | 16 | 不適用本 frame,不可當證據 |
| 沒查 | 0 | 未知 |
中間那一類被讀成第一類時,讀者會以為那十六條判斷標準經過了檢驗,而它們根本不在那個 frame 的射程內——那個零證明的是判斷標準與 frame 不匹配,不是判斷標準通過了。
因果比現象值錢:那三十四條原本是一鍋端的,分類是被問句逼出來的。 報告者是在被要求交代採信依據的當下,才不得不去分「我試過」與「我看過覺得不用試」。
修法
契約的措辭從揭露改成分類,成本是一句話。 兩種寫法要的是同一件事的同一份資料,差別只在誰做分堆:
| 寫法 | 得到什麼 |
|---|---|
| 零命中須明寫 | 一鍋端 |
| 零命中須註明是造過情境判定通過、還是判斷標準不在本 frame 射程 | 分層 |
分類的選項要由契約列出來,不要問開放題。 「請說明你的依據」得到的是一段自由敘述,而自由敘述會回到報告者原本的粒度;給定的類別把分堆這個動作變成填空。
類別要窮盡到「未知」為止。 少了「沒查」這一格,沒查的那些會被歸進最接近的一格,而最接近的那一格是「判定通過」。
第二批:三格上線之後量到什麼
契約改成三格填空之後,同一個工作階段對七個 frame 重跑了一次,兩件事得到答案。
「沒查」那一格立刻兌現。 一個 reviewer 在它上面填了官方引用的逐字真偽(幾個網址與幾段英文引文),並明說自己整條核心論證建立在那些值為真之上,而它沒有連外查證。沒有那一格,這個未覆蓋面會被歸進「判定通過」。 對照組是同一個工作階段先前犯過的相反錯誤——只讀了兩頁裡的一頁就斷言「官方全篇未給任何行數限制」,一個全稱結論。標「沒查」而不是猜,避開的正是那個坑。
「不適用」那一格的佔比是 frame 相依的,不是系統性的。 七個 frame 裡只有一個高(情境可想像性,約四成八),而它自己交代了成因:那些條目是「引號閉不閉合、分隔線在不在」這類二元事實,造不出邊界情境。其餘 frame 有的零零命中(逐格全填具體產物)、有的只有零星幾條。
這個分佈把那一格從回報欄位升級成診斷指標:佔比集中在單一 frame 時,是那個 frame 的判斷標準集合裡混進了一批不需要分類的東西,處置是把那批判斷標準搬家;佔比在各 frame 之間平均偏高,才是判斷標準集合與 frame 設計整體錯配。 兩者的修法方向不同,而只看總數分不出來。
第二個軸:這個零是缺陷,還是就是我要的結果
前面那三格回答「這個零可不可信」。還有一個獨立的軸——這個零是什麼——而兩個軸在報告的措辭上同樣會被壓成一句「零命中」。
一次收尾階段的自我盤點列出六個回報過的零,落在三種意義上:
| 這個零的意義 | 實例 |
|---|---|
| 沒發現問題 | 死名歸零、已修計數零殘留、某個目錄零使用 |
| 零本身就是 finding | 某一類誤用在十二處全部沒有檢查點——零個檢查點是缺陷 |
| 零是正面結果 | 某個詞在全文零命中,因而證明它是自造的;探針答「完全不知道」 |
「我沒找到問題」與「我找到了『沒有』這件事」在報告上同形。 前者不帶資訊、只是一次通過;後者是這一輪的產出。壓成同一句之後,讀的人拿不到後者,而後者通常是那一輪最值錢的東西。
所以零命中的回報要同時標兩件事:這個零可不可信(三格),以及這個零是不是我要的結果(三種意義)。兩個軸正交,各自都要窮盡到「未知」那一格。
兩軸會被混成一維列表,成因就是它們的報告措辭相同。 一次自陳的盤點把「零本身就是 finding」與「假通過」列在同一條線上,而那兩者分屬不同的軸——前者答「這個零是什麼」,後者答「這個零可不可信」。列的人分不開它們,因為在報告上它們都寫成「零命中」,而分類的動作要由欄位帶進來,不會由觀察自己長出來。
這一條適用在哪裡
任何要求執行者回報彙總狀態的欄位:零命中、已檢查、無發現、全部通過、不適用、不涉及。它們的共同形狀是一個字面相同的結論可以由幾條路徑抵達,而那幾條路徑的證據力差很多。
跟其他原則的關係
- 要求執行者做判定的規則,要一併規定判定留下什麼痕跡 — 本卡是它的下一層。那一張問「有沒有痕跡」,本卡問「痕跡本身分不分得出證據力」。那一張的依據層(判成零後續時要說出憑什麼)在這裡不夠用:憑什麼可以被一句話答完,而那一句話同時涵蓋了造過情境與造不出情境兩種來源。
- 檢查規則的作用域要顯式列舉 — 第二類(判斷標準不在本 frame 射程)就是那一張的「未納管」。差別在住址:那裡的未納管寫在設定檔的路徑常數裡,查得到;本卡的未納管藏在一份看起來合規的報告內文裡,只有追問才會現形。
- 掃描的作用域會默默對齊「我這次動過什麼」 — 相鄰而軸不同。那裡是餵給指令的路徑集合窄了一圈,本卡是判斷標準與 frame 不匹配;兩者都讓零失去意義,而報告一樣是乾淨的。
- 掃描指令壞掉時不會報錯,它報一個數字 — 同屬「零命中有幾種來源」這個家族,而每一種的處置不同:工具失效驗指令、作用域窄一圈寫全路徑、未納管的規則列作用域、只驗了一個方向雙向各驗一次,而本卡的判斷標準不適用要分類。這些零在報告上是同一句話,所以零命中要附它的來源,不能只附數字。
- 要交出物件,不要交出關於物件的判斷 — 姊妹卡,兩者都是問句的形態決定回報的內容,受詞不同:本卡問同一批東西怎麼分堆,那一張問交的是判斷還是物件。共用的推論是回報者不會做問句沒要求的工作,而那不是隱瞞。
- 一次修法會對同一件事寫出兩種形式 — 同一批材料的姊妹卡,受詞不同:本卡管回報怎麼分類,那一張管修法怎麼收尾。
- 「我以為觀測到的」躲在「引用的」那一欄裡 — 分類法的性質相同,受詞不同。 本卡的第三格「沒查」與那一張的第四欄是同一個設計:類別要窮盡,少一格時落在那一格的東西會被歸進最接近的一格,而最接近的那一格通常是「已經驗過」的那一格。 同一張卡的第五類(別人量的、我引用)由本卡的機制直接產生:同一份回報裡有些數字重跑過、有些沒有,而對外的文字語氣完全相同——這是一鍋端在另一個受詞上的形態,本卡壓的是零命中的來源,那裡壓的是「驗過」與「讀到」。
- 審查的 frame 全部在問規則的效力,沒有一個問它的代價 — 那一張的方向欄是本卡的分類義務用在 finding 上:要求「回報 finding」得到的是一堆同向的 finding,要求「每則標方向」才看得出一整欄是空的。
判讀徵兆
- 報告用一句話交代一組零命中,而那組條目的性質並不一致。
- 契約裡的欄位動詞是「說明」「註明」「寫出」,而沒有給定的類別。
- 被追問依據之後,報告者當場拆出了原本沒有的分類。
- 零命中的條數佔比很高,而該 frame 的判斷標準裡混著需要構造情境的與純二元事實的。