被多篇當成前提的判斷缺的是住址,而每一篇的檢查都看不到
論述基礎與限制
本卡從一個資安模組跑完四輪審查之後的盤點抽出。那個模組的待辦清單有十一項,其中五項是同一個形狀:資產盤點、機器憑證的配發流程、管理平面的隔離設定落點、委任型憑證的機制選型、授權模型選型。五項的共同點是它們在多篇章節裡被當成前提引用——某一篇說「這件事要靠 inventory 才做得到」、另一篇說「輪替覆蓋率要有分母」、第三篇說「暫時緩解要靠它選降級路徑」——而沒有任何一篇承接它。
更值得記的是這五項全部是審查時才被登記的,沒有一項在寫作當下浮現。寫每一篇的時候,那一角是本篇需要的、也寫得出來、寫完本篇就完整了。
觸發本卡的是第六個實例。一輪 steelman 指出某章「缺了先問要不要自己做這件事」,修法因此落進那一章的前置段。事後回看,那個前置段回答的問題與另外兩處碎片(一項待辦、一個全站零落點的主題)是同一條判斷軸的三個角,而那條軸在所有相關章節的上游。
限制:本卡談的是判斷型內容之間的共同前提。純術語的重複出現是另一回事,處置是建卡而非建章(分界見下方修法段)。
核心原則
一個判斷被多篇當成前提時,它缺的是住址而不是內容;而每一篇的檢查都看不到這件事,因為每一篇只需要它的一角,而那一角每篇都寫得出來。 缺口只在把幾篇並置之後才出現,而並置不是任何既有檢查會做的動作。
機制在於共同前提沒有歸屬。教學模組的章節多半由具體問題長出來——事故發生在機制上,於是章節對著機制寫。而「該不該做這件事」這一層是所有相關章節的共同前提,它不是任何一篇的缺口,因此沒有任何一篇的寫作動機會帶出它。
有一個形式讓這件事更難察覺:前置段。不屬於本篇的內容放進前置段之後,它有了一個看起來合法的容身處——因為前置段確實是本篇需要的,它是這一章的適用性閘門。所以它不觸發「不屬於這篇的內容要找出路」那條規則(見 #212),那條管的是不屬於,而前置段屬於。真正的問題不是它放錯地方,是整條軸只有一角被寫下來,而那一角是從下游那一篇看得到的那一角。
反模式:修法落點跟隨發現路徑
這一類缺口通常由審查發現,而審查是逐篇進行的。reviewer 從某一篇出發說「這篇缺了前置」,修法就落回那一篇。整個過程沒有任何一步是錯的,產出卻是把一條跨篇的軸壓成某一篇的一段。
發現路徑因此決定了修法形狀。同一件事若由「模組覆蓋」的視角提出,修法會是新開一篇;由「這一篇缺什麼」的視角提出,修法會是補一段。而審查框架整體偏向後者——各種 frame 問的都是「這篇有什麼問題」,連反向引用那一維也是問「既有內容該不該指向新內容」,方向仍然是單篇對單篇。
辨識訊號是修法之後那一段讀起來比它所在的章節更上游。前置段回答的問題比本章的主題更早發生、而且對別的章節同樣成立時,它就不只是前置段。
修法:先分缺卡還是缺章,再讓各篇保留自己那一角
分界在重複的是定義還是判斷的角。 同一個名詞在多篇各被解釋一次、每次解釋的內容相同——那是術語,處置是建卡,各篇連過去。同一條判斷軸在多篇各被交代一角、每篇寫的角度不同——那是缺章,因為取捨需要並置才成立,而並置只能發生在同一篇裡。
偵測方式是數:同一個概念被三篇以上當成前提,且各篇寫的不是同一句話時,觸發評估。三篇是門檻而非定則——兩篇時通常仍是其中一篇的延伸段,三篇之後「哪一篇是主場」這個問題就沒有答案了。
新開一篇之後,各篇的那一角要留著。 它是本篇的適用性閘門,讀者需要在這裡就知道自己該不該繼續讀下去;刪掉它會讓每個入口都少一道判斷。留著的形式是壓縮成一到兩句加一條路由——保留判準、把取捨的推導交給上游那一篇。
新篇要標明自己是誰的上游。 這一類文章的讀者路線與模組既有的路線不同:它在所有下游章節之前,而模組入口的路線敘述多半是照章節編號寫的。缺這一句時,新篇會變成又一篇沒有入口的內容。
跟其他原則的關係
- #212 不屬於這篇的內容要找出路、不是刪除:本卡是它的盲區。#212 處理的是明顯不屬於本篇的內容,判別靠「主題與篇標題不同」;而共同前提放在前置段時確實屬於本篇,主題也對得上,所以那條檢查不會觸發。兩者的差別在缺陷位置——#212 的內容放錯了地方,本卡的內容沒放錯,只是整條軸只寫了一角。
- #244 範例讓最後一類出口缺口現形:#244 的第四種狀態(出口不存在就明說並給最小判準)處理的是單篇視角下的落空,而本卡的缺口在單篇視角下不落空——每一篇都給了自己那一角、讀者當下走得下去。要看見它必須換成跨篇視角。
- #126 寫作 review 是多軸完整性、不是單軸深度:又一條沒有人負責的軸,而且它是跨篇的軸。既有的維度不論多細都是對單篇操作,把每一篇都做到滿分仍然不會發現這件事。
- #221 檢查規則的作用域要顯式列舉:同樣讓「每一篇都通過」失去意義。#221 是規則沒有涵蓋到那些檔案,本卡是檢查的單位(單篇)小於缺陷的單位(跨篇)。
- #247 多次局部正確的修法會合成缺陷:本卡的缺陷單位是跨篇、它的第二種形態的缺陷單位是共用產物(模組入口、待辦清單),兩者都因為既有檢查的單位小於缺陷的單位而漏掉。
- #263 同一個對象被兩篇各自分解一次時,不相容會長得像互補:同一條跨篇軸上的另一端。本卡的對象有零個住址(一個判斷被多篇當前提而沒有任何一篇承接),那張卡的對象有兩個住址(一個對象被兩篇各自分解),而兩者的偵測動作相同——把整批的前置段或表格並置,逐篇審查都不觸發。
- #245 原則層與操作層是兩份會漂移的副本:同一種「並排才看得見」的家族。#245 的並排對象是同一條原則的兩個副本,本卡的並排對象是同一條軸的幾個角;兩者都要靠一個沒有人會自然做的動作才現形。
判讀徵兆
- 模組的待辦清單裡有多項是「某某的完整處理 / 某某的選型」,而它們在正文都以「這要靠 X」的形式被引用過。
- 一項待辦全部由審查登記、沒有一項在寫作當下浮現。
- 某一章的前置段回答的問題比該章的主題更早發生,而且對別的章節同樣成立。
- 同一個名詞在三篇以上出現,每篇各交代一次,而三次交代的角度都不同。
- 讀者問「這個情境有對應的章節嗎」,翻查之後發現內容散在三處、每處都只有一角。
- 模組入口的讀者路線是照章節編號寫的,而路線的第一站不是讀者實際要做的第一個決定。