論述基礎與限制

本卡從一次書單分類的審查抽出。那批內容跑了完整的字句層 keyword bank,其中「位置與集合指涉」這一類回傳 86 個命中,數量在全部類別裡排第二——照命中數看,這一類在這批內容上運作正常。

實際的違規落在別的詞上。書單的結構單位是「一篇裡的三到六本書」,而那些書互相指涉時走的是序數:前一本、下一本、本篇第三本、上述兩本、前面幾本。一個結構審查逐篇讀完之後列出約三十處,其中十二個章節冷讀落地時讀不出這本書跟同篇其他書的關係。那三十處,pattern 一個都沒有抓到——它收的是前者、後者、前兩本、另外三本、其他三篇、下一篇、這一側,全部是論述文的指涉形態。

修完之後量測本身給出最直接的證據:三十處具名改寫走完,同一條 grep 的命中數從 86 動到 85。修法與量測完全脫節,而量測那一側看不出任何異常。

限制:本卡談的是靠外形辨識的 pattern(regex、keyword bank)換用到新體裁的內容上;封閉集合(地區用語的單詞層、裝飾符號)不隨體裁變動,那裡沒有這個問題。內容集合只有單一體裁時也不適用——這條原則的成立條件是同一套 pattern 被跨體裁重用。

這條原則的推翻方式:拿一份 pattern 到新體裁上,先人工列出該類的實際形態,發現 pattern 已經涵蓋全部——那份 pattern 對這一類就是體裁無關的,本卡對它不成立。下面記的是單一實例,它示範這個缺陷長什麼樣、以及為什麼審查不會撞見它。


核心原則

一份 keyword 清單是從某個體裁的實例歸納出來的,而違規形態隨體裁換一整組。 位置指涉這一類在論述文裡的主流形態是「前者 / 後者」,因為論述文的結構單位是命題與對比;在書單裡是「前一本 / 下一本 / 本篇第三本」,因為那裡的結構單位是一篇裡的一組書。兩組詞沒有交集,而它們違反的是同一條原則。

非零命中會被讀成涵蓋。 這是這個缺陷躲過審查的機制:一條回傳 86 個命中的 pattern 讀起來像是「這一類有在管」,於是「這個體裁的這一類還有沒有別的形態」這個問題不會被問。命中數越健康,關掉那個問題的力道越強——零命中至少還會讓人懷疑 pattern 寫錯了。

因此判斷標準不能是「grep 有沒有命中」,要換成兩步:先在這個體裁上人工列出這一類的實際形態,再回頭問 pattern 涵蓋幾種。 第一步的成本是讀三到五篇並把違規逐處記下來,而那正是既有 pattern 讓人跳過的動作。


反模式

拿命中數當這一類的健康度。 命中數量的是 pattern 與內容的交集,不是內容裡這一類的總量。兩者在同體裁上大致同向,換體裁之後可以完全脫鉤——實例裡違規約三十處而命中數只動一,因為那三十處從頭到尾就不在 pattern 的射程內。

修完之後不回頭看量測。 修了三十處而指標不動時,最直接的解釋是修的那一批與量的那一批沒有交集。這個對照是免費的(改動前後各跑一次),而它是這個缺陷最早、最明確的訊號。實例裡它出現在自我應用那一輪,比任何 reviewer 的判斷都直接。

用同一批內容驗證從它歸納出來的 pattern。 pattern 是從論述型內容抽出來的,而站上多數內容也是論述型,於是它在日常掃描裡一直表現良好。表現良好本身不是它涵蓋完整的證據,只是它與訓練它的那個體裁還在同一個分佈上。


修法

新體裁進來時,對每一個高風險類別做一次形態盤點。 挑三到五篇,逐處記下該類的違規並抄下原文,再把出現過的詞面與 pattern 比對。差集要嘛補進 pattern(形態穩定時),要嘛留下一句「這個體裁的這一類另有 X 形態,grep 抓不到」寫在使用點上。

盤點的單位是形態不是詞。 「前一本」與「下一本」是同一個形態(用排列位置指涉同篇的成員)的兩個詞面,補 pattern 時收一組;而「本篇第三本」是另一個形態(用序數指涉),要另外收。照詞面一個一個補,下一批換個說法就又漏了。

在使用點寫下這份 pattern 是從哪個體裁抽的。 這一條的作用是讓後續的人知道要不要重做盤點,而不是提醒——一份沒有標明來源體裁的清單,讀起來對所有內容都成立。

體裁的判別看結構單位。 論述文的單位是命題、教學模組的單位是步驟與判斷標準、書單與清單型內容的單位是一組並列的成員、事件紀錄的單位是時序。指涉的形態跟著單位走,所以單位換了就要重做盤點,而不必等到「這看起來是新的文體」這種感覺出現。


跟其他抽象層原則的關係

#267 關鍵字清單只收違規義項佔多數的詞 給的是入選標準:一個詞進不進清單,看違規義項佔它全部用法多少、以及那個形態寫不寫得成 pattern。本卡限定它的適用邊界——那個佔比是在某個體裁上算的。「前一本」在論述文裡幾乎不出現,所以它從來沒有機會被抽中;在書單裡它是主流違規形態,佔比極高。#267 說清單是判斷標準的一次抽樣,本卡補的是抽樣的母體:抽樣從哪個體裁抽的,決定了它在別的體裁上漏掉什麼。

#207 地區慣用語是開放集合、grep 追不完 講的是同一份清單在同一個體裁內持續長出新個案,處置是靠目標地區讀者冷讀。本卡的方向不同:形態是換一批內容就整組換掉,而不是慢慢累積,所以它有一個明確的觸發時點(新體裁進來的那一次),也因此排得進行程——不像慣用語只能靠持續的異源冷讀。

#149 命中是候選不是判決 管的是命中之後的語意判定,本卡管的是命中之前的涵蓋範圍。兩者的失敗方向相反而且互不覆蓋:那裡是抓到了而判錯,這裡是根本沒抓到。實例裡這一類的語意判定做得很好——一位審查者逐處驗過 86 個命中的計數,全部正確——而那份仔細完全落在錯的集合上。

#287 重算的觸發要綁在會改變那個數字的事件上 是同一個機制在另一種指標上的形態:那裡是一個停在舊值而看起來自洽的數字,這裡是一個回傳大量命中而看起來健康的 pattern。兩者共用的判斷標準也相同——不要問這個指標現在的值好不好,要問它在該偵測的狀態出現時會不會動。

#281 理解檢查用低階 model 取樣讀者的實際理解 是這一類的補位偵測:pattern 抓不到的形態,探針從讀者的實際理解那一側撞得到。實例裡三份探針對一個未定義的術語全數回報「文字沒說」,而那個術語不在任何 pattern 裡。


判讀徵兆

徵兆為什麼是訊號下一個動作
修完一批違規之後,對應的命中數幾乎沒動修的那一批與量的那一批沒有交集逐處對照修法清單與命中清單,找出交集為零的那一段
一條 pattern 命中很多、而逐處判定下來違規率極低它抓到的可能全是這個體裁裡合規的形態人工列出這個體裁的實際違規形態,再比對
pattern 的成員讀起來都像同一種文體歸納它的樣本來自單一體裁標出來源體裁,換體裁時重做盤點
說不出這一類在這個體裁有哪三種以上的形態沒有做過形態盤點,此時 pattern 的涵蓋範圍無從判斷挑三到五篇逐處讀,把形態列出來
內容集合新增了一個結構單位不同的分類指涉的形態跟著結構單位走對高風險類別各做一次盤點
#291 掃描指令壞掉時不會報錯,它報一個數字同一條鏈的下游。本卡是 pattern 對而涵蓋範圍不對,#291 是 pattern 對而指令根本沒跑到——兩者的輸出無法區分,都是一個看起來正常的命中數。合起來的操作結論是掃描報告要附兩件事:這條指令驗過沒有、這一類在這個體裁有哪幾種形態

這條原則什麼時候不成立

pattern 抓的是封閉集合時不成立。裝飾符號、簡體字轉寫、特定的單詞對照表,這些的成員由外部規則決定,不隨內容的體裁變動。

內容集合只有單一體裁時不成立——那裡沒有轉移,pattern 與內容始終在同一個分佈上,涵蓋範圍的問題退回 #267 的入選標準。

這一類的違規本身沒有穩定外形時不成立。對讀者喊話、自評誇飾、必然性框架這幾類的真防線本來就是異源冷讀而非 grep,換體裁不改變那個結論,補盤點的收益落在有外形可寫的那幾類上。