<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>審查 on Tarragon</title><link>https://tarrragon.github.io/blog/tags/%E5%AF%A9%E6%9F%A5/</link><description>Recent content in 審查 on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Fri, 21 Aug 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/%E5%AF%A9%E6%9F%A5/index.xml" rel="self" type="application/rss+xml"/><item><title>可核對的錨要跟它該偵測的狀態連動：會下降只是連動的一種形態</title><link>https://tarrragon.github.io/blog/report/checkable-anchor-must-be-able-to-fall/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/report/checkable-anchor-must-be-able-to-fall/</guid><description>&lt;h2 id="論述基礎與限制">論述基礎與限制&lt;/h2>
&lt;p>本卡的觀察來自一次書單分類的收尾。那批內容有三類判定會隨時間失準——時效切分、角色歸屬（哪本書在該主題裡承擔什麼位置）、處境相容性——而判定、判定的記錄、判定的觸發全部出自同一個作者，因此「認真做過」與「完全沒做」在頁面上長得一樣。補救的做法是給每一類一個可以從頁面外核對的指標。處境相容性有現成的一個：以書目小節為計數單位（一本書、或一組合寫的書，佔一個小節），五十四個小節裡二十三個寫了這一項，數字可數。照同一個做法為時效補指標時，兩個獨立的問題才浮出來。&lt;/p>
&lt;p>限制：本卡談的是&lt;strong>用來證明判定做過的指標&lt;/strong>，不談判定本身的品質，也不談自動化檢查的規則設計。指標的作用只有一個——讓維護狀態從外部看得出來。&lt;/p>
&lt;p>這條原則在什麼條件下會被推翻，比它有幾個案例更值得先講：做得出一個「該偵測的狀態發生時仍然會動」的飽和指標，本卡就錯了。它由「指標要能區分它存在要區分的那兩種狀態」這個機制推出，書單那批是例示不是樣本——下面記的三次重犯出自同一個 batch、同一位作者、同一輪收尾，它們說明的是這個錯誤在知道規則的情況下仍然會發生，不是它多常發生。&lt;/p>
&lt;hr>
&lt;h2 id="核心原則">核心原則&lt;/h2>
&lt;p>&lt;strong>一個用來證明「判定真的做過」的東西，它的值必須跟它該偵測的狀態連動。&lt;/strong> 價值不在它現在的數值，在該偵測的事情發生時它會不會動。會下降只是連動的一種形態，而且只在覆蓋率還沒滿的時候管用：已經飽和的覆蓋率（54/54）在既有判定隨時間變質的時候不會動，因為變質不改變「有沒有寫」這件事——它只偵測得到新增項目漏寫。單調遞增的量也可以連動（每一項的上次複核日期久久沒動就是訊號），所以要問的是連動不是方向。而這批裡最需要偵測變質的那一維（時效），正好是最早被寫滿的那一維。&lt;/p>
&lt;p>這條推論有一個容易漏掉的分支：覆蓋率一旦飽和就不可能再下降，而那不表示該放棄核對——它表示錨要從&lt;strong>聚合層&lt;/strong>（一個會動的數字）換到&lt;strong>單項層&lt;/strong>（每一項各自可以被判偽的東西）。已經飽和的覆蓋率不會再動，所以在&lt;strong>同一個量測對象&lt;/strong>上找第二個數字沒有用。換量測對象仍然是一條路：隨機抽五項重判、記錄改判比例，或數「距上次複核超過十二個月的項目數」，兩者都是聚合、都是數字、都跟變質連動。單項層是另一條，成本更高但不需要重判。「錨」的完整定義因此比「會下降的量」寬一點：&lt;strong>作者以外可以獨立判偽的東西&lt;/strong>，聚合指標只是它在覆蓋率還沒滿時的一種形態。&lt;/p>
&lt;p>這個處境不限於書單。凡是判定、判定的記錄、判定的觸發都出自同一個位置的體系都算——review checklist 的自評欄、風險登記簿、合規控制項的自我聲明、無障礙檢查表。共同特徵是頁面上看不出「認真做過」與「完全沒做」的差別，而補指標的動機就從這裡來。&lt;/p>
&lt;p>第二個問題出在量測方式。&lt;strong>覆蓋率的量測方式是一個設計選擇，而那個選擇可能跟同一批內容的其他規則衝突。&lt;/strong> 用關鍵詞出現次數當覆蓋率的代理時，指標實際量的是「有幾個小節用了這個詞開頭」，而不是「有幾個小節做了這件事」。同一批內容如果還有一條「句型要有變化」的規則，執行那條規則會讓指標下降——於是指標在內容變好的時候變差，而指標與規則之中一定有一個會被放棄。&lt;/p>
&lt;hr>
&lt;h2 id="反模式">反模式&lt;/h2>
&lt;p>&lt;strong>把覆蓋率寫進頁面而沒有註明計數單位。&lt;/strong> 該批內容原本寫的是「五十二個書目條目裡二十三個寫了這一項」，而重新計數時，三種數法給出三個不同的數字：數購書連結區塊得 54、數書目小節得 54、數帶有證據來源判定的句子得 52——原文的分母取的是最後一個，跟分子不同單位。分母沒有定義時，這個數字沒有人能重算，於是它不是錨，是另一句自陳。&lt;/p>
&lt;p>這個錯誤在寫下本卡的同一輪重犯了兩次。第一次：補上分佈之後，頁面寫的是「二十四個小節寫出處境限制」，而那個 24 取自 &lt;code>處境上&lt;/code> 的&lt;strong>出現次數&lt;/strong>，小節數是 23。第二次發生在改正的時候——差額被寫成「差一，因為維度定義段自己也用了那個詞」，而實際是差二：另一個來源是某個合寫三本書的小節裡出現了兩次，那要逐節數才看得見，而改的人只重掃了全站次數。定義了計數單位不會自動讓計數照那個單位跑，而&lt;strong>解釋差額也還不是照單位跑&lt;/strong>。三件事要各驗一次：寫下單位、用那個單位重數、逐項核對差額的每一個來源。&lt;/p>
&lt;p>&lt;strong>用關鍵詞計數當覆蓋率的代理。&lt;/strong> 實例：以 &lt;code>時效上|時效要&lt;/code> 掃描得到 51/54，看起來有三個缺口。逐節檢查後發現三處都有時效判定，其中兩處只是換了句子的開頭（「一本 1987 年的書會讓人先問哪些部分還算數」「1983 年的書，書中的製造業類比…」）。這兩處恰好是全批最老的兩本書，也就是時效判定最該存在的兩本。指標把它們判成缺口，而它們是全批寫得最完整的。&lt;/p>
&lt;p>&lt;strong>用飽和的指標宣告健康。&lt;/strong> 覆蓋率到 100% 之後，把它繼續列為「這一維有人在維護」的證據。它此後只回答一個問題：新增的項目有沒有漏寫。既有項目的判定是不是已經跟現實脫節，這個指標永遠答不了，而那正是它被設立時想擋的事。&lt;/p>
&lt;p>這一條的後果最不直觀，實際會走成這樣：寫滿的那一刻沒有人覺得有問題，之後一年裡有幾則判定跟現實脫節，而每次有人問「這批還準嗎」，拿到的都是同一個滿分。沒有被發現是因為唯一在看的人就是寫的人，而他看的正是那個不會動的數字。等到有人照著判定去做決定、做完才發現前提早就不在，要收拾的是把全部項目重讀一次逐項重判，成本跟第一次做一樣大。&lt;/p>
&lt;hr>
&lt;h2 id="修法">修法&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>先問這個指標在什麼情況下會動。&lt;/strong> 答案是「只有新增項目漏寫時」就代表它只覆蓋一種失效；那一維的主要失效若是變質而非漏寫，換一個指標——換的方向見第 4 條。&lt;/li>
&lt;li>&lt;strong>分母要寫出計數單位、語料範圍與扣除規則，三者缺一就不可重算。&lt;/strong> 「五十四個書目小節」這個例子本身要補完才成立：語料是各主題篇與技藝篇（不含目錄頁），單位是 H2 段，扣除規則是每篇末尾的「為什麼只收這幾本」與「這個主題接到哪裡」兩節。少了後兩項，第三方跑最直觀的 &lt;code>rg -o '^## '&lt;/code> 會得到九十，而扣掉哪些只在作者腦裡。「五十二個條目」則連單位都沒有，第三方不知道該數什麼。&lt;/li>
&lt;li>&lt;strong>關鍵詞不當分子。&lt;/strong> 關鍵詞量的是措辭，而判定寫在哪一種句型裡是作者的自由——要可數就數結構單位（小節、欄位、條目）。它仍然可以當&lt;strong>入口&lt;/strong>：為那批內容做的一次時效覆蓋掃描（51/54）確實指出了三個待查的小節，逐節看才知道兩個是換了句子開頭、一個是設計上不重複。當入口時標明它量的是措辭，別把命中數直接當覆蓋率。&lt;/li>
&lt;li>&lt;strong>飽和之後換量測對象、換到單項層，或明說這一維沒有錨。&lt;/strong> 三條路成本遞增。換量測對象最便宜：抽樣重判的不一致率、距上次複核超過某個期限的項目數，都還是聚合的數字，只是量的不再是「有沒有寫」。單項層更貴，但不必重判——該批內容的做法是給時效換一個外部查得到的對照物：每一則時效判定要點名一個具體的過時前提（辦公室隔間、以年為單位的瀑布式階段、Java 與 JMock 的範例版本），那個前提現在成不成立，讀者不必信任頁面就查得到。&lt;/li>
&lt;li>&lt;strong>補不出錨的維度要明說。&lt;/strong> 該批的角色歸屬這一維沒有錨，而且補不出來——角色由各主題自己界定，不對應任何頁面外的事實。寫下「這一維的維護狀態目前看不出來」，比擺一個飽和的覆蓋率誠實。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="跟其他原則的關係">跟其他原則的關係&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>原則&lt;/th>
 &lt;th>關係&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="../judgment-rules-must-specify-their-trace/">#243 要求執行者做判定的規則要一併規定判定留下什麼痕跡&lt;/a>&lt;/td>
 &lt;td>直接的上游——#243 要求判定留痕跡，本卡處理下一步：痕跡的計數要怎麼設計才算是外部可核對的。#243 的痕跡若被計成關鍵詞出現次數，痕跡存在而指標讀不到&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../count-threshold-is-a-proxy-for-a-checkable-judgment/">#264 規則用數量當門檻時先問那個數量在代理什麼判斷&lt;/a>&lt;/td>
 &lt;td>姊妹——#264 管「用數量當&lt;strong>門檻&lt;/strong>」，本卡管「用數量當&lt;strong>證據&lt;/strong>」。兩者的失效同源：數字取代了它本來要代理的那個判斷，而數字自己不知道自己在代理什麼&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../lint-scope-must-be-explicit-fact/">#221 檢查規則的作用域要顯式列舉&lt;/a>&lt;/td>
 &lt;td>同型的假訊號——#221 的零 error 可能是沒被檢查，本卡的滿覆蓋率可能是指標對變質沒有反應。兩者都是「看起來通過」，而通過的原因是量測範圍或量測對象不對&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../keyword-bank-hit-is-candidate-not-verdict/">#149 keyword bank 命中是候選不是判決&lt;/a>&lt;/td>
 &lt;td>反向的同一件事——#149 說關鍵詞命中不等於違規（偽陽性），本卡說關鍵詞未命中不等於缺席（偽陰性）。兩張合起來的結論是關鍵詞只適合當偵測入口，不適合當任何數字的分子&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../keyword-list-needs-dominant-violating-sense/">#267 入口由違規形態寫不寫得成 pattern 決定，佔比只決定能不能原樣進清單&lt;/a>&lt;/td>
 &lt;td>同源的另一半——本卡講關鍵詞不能當覆蓋率的&lt;strong>分子&lt;/strong>（漏數判定），#267 講它不能當違規涵蓋的&lt;strong>全部入口&lt;/strong>（漏抓違規）。共同根因是關鍵詞量的是措辭&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../cadence-homogenization-in-batch-writing/">#122 Cadence 同質化是模板的隱形維度&lt;/a>&lt;/td>
 &lt;td>衝突的另一方——關鍵詞覆蓋率獎勵句型統一，而 #122 要求句型有變化。這兩條同時存在時，執行 #122 會讓指標下降，因此指標的量測方式要先讓路&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;ul>
&lt;li>&lt;a href="../mechanical-constraints-buy-the-measured-number/">#278 機械約束買到被量測的那個數字&lt;/a>：相鄰。本卡管錨對變質沒有反應，#278 管錨被最便宜的路徑滿足——兩者都讓「數字全綠」與「判斷真的發生過」無法區分。&lt;/li>
&lt;/ul>
&lt;h2 id="判讀徵兆">判讀徵兆&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>訊號&lt;/th>
 &lt;th>該做的事&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>指標的分子與分母來自不同的計數單位&lt;/td>
 &lt;td>重新定義單位；分母要能被第三方用同一個規則重算&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>覆蓋率是 100%，而這一維仍被列為「有人在維護」&lt;/td>
 &lt;td>問它在既有項目變質時會不會動；不會就換量測對象、換到單項層，或明說沒有錨&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>用 grep 得到的覆蓋率跟逐項檢查的結果不一致&lt;/td>
 &lt;td>指標量的是措辭不是判定；改數結構單位&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>覆蓋率用關鍵詞計數，而同一批內容另有一條要求句型變化的規則&lt;/td>
 &lt;td>兩者互相抵銷（句型一變，關鍵詞就掃不到），先換量測方式再談誰讓路&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>指標讀出來的缺口，恰好落在該項目最完整的那幾筆上&lt;/td>
 &lt;td>這是量測對象錯了的訊號，不是內容缺了；逐項核對前不要據此補寫&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>某一維怎麼設計都找不到外部可核對的對象&lt;/td>
 &lt;td>明說這一維沒有錨，並寫出它能做到的上限（例如把界定寫出來讓它可以被反駁）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description><content:encoded><![CDATA[<h2 id="論述基礎與限制">論述基礎與限制</h2>
<p>本卡的觀察來自一次書單分類的收尾。那批內容有三類判定會隨時間失準——時效切分、角色歸屬（哪本書在該主題裡承擔什麼位置）、處境相容性——而判定、判定的記錄、判定的觸發全部出自同一個作者，因此「認真做過」與「完全沒做」在頁面上長得一樣。補救的做法是給每一類一個可以從頁面外核對的指標。處境相容性有現成的一個：以書目小節為計數單位（一本書、或一組合寫的書，佔一個小節），五十四個小節裡二十三個寫了這一項，數字可數。照同一個做法為時效補指標時，兩個獨立的問題才浮出來。</p>
<p>限制：本卡談的是<strong>用來證明判定做過的指標</strong>，不談判定本身的品質，也不談自動化檢查的規則設計。指標的作用只有一個——讓維護狀態從外部看得出來。</p>
<p>這條原則在什麼條件下會被推翻，比它有幾個案例更值得先講：做得出一個「該偵測的狀態發生時仍然會動」的飽和指標，本卡就錯了。它由「指標要能區分它存在要區分的那兩種狀態」這個機制推出，書單那批是例示不是樣本——下面記的三次重犯出自同一個 batch、同一位作者、同一輪收尾，它們說明的是這個錯誤在知道規則的情況下仍然會發生，不是它多常發生。</p>
<hr>
<h2 id="核心原則">核心原則</h2>
<p><strong>一個用來證明「判定真的做過」的東西，它的值必須跟它該偵測的狀態連動。</strong> 價值不在它現在的數值，在該偵測的事情發生時它會不會動。會下降只是連動的一種形態，而且只在覆蓋率還沒滿的時候管用：已經飽和的覆蓋率（54/54）在既有判定隨時間變質的時候不會動，因為變質不改變「有沒有寫」這件事——它只偵測得到新增項目漏寫。單調遞增的量也可以連動（每一項的上次複核日期久久沒動就是訊號），所以要問的是連動不是方向。而這批裡最需要偵測變質的那一維（時效），正好是最早被寫滿的那一維。</p>
<p>這條推論有一個容易漏掉的分支：覆蓋率一旦飽和就不可能再下降，而那不表示該放棄核對——它表示錨要從<strong>聚合層</strong>（一個會動的數字）換到<strong>單項層</strong>（每一項各自可以被判偽的東西）。已經飽和的覆蓋率不會再動，所以在<strong>同一個量測對象</strong>上找第二個數字沒有用。換量測對象仍然是一條路：隨機抽五項重判、記錄改判比例，或數「距上次複核超過十二個月的項目數」，兩者都是聚合、都是數字、都跟變質連動。單項層是另一條，成本更高但不需要重判。「錨」的完整定義因此比「會下降的量」寬一點：<strong>作者以外可以獨立判偽的東西</strong>，聚合指標只是它在覆蓋率還沒滿時的一種形態。</p>
<p>這個處境不限於書單。凡是判定、判定的記錄、判定的觸發都出自同一個位置的體系都算——review checklist 的自評欄、風險登記簿、合規控制項的自我聲明、無障礙檢查表。共同特徵是頁面上看不出「認真做過」與「完全沒做」的差別，而補指標的動機就從這裡來。</p>
<p>第二個問題出在量測方式。<strong>覆蓋率的量測方式是一個設計選擇，而那個選擇可能跟同一批內容的其他規則衝突。</strong> 用關鍵詞出現次數當覆蓋率的代理時，指標實際量的是「有幾個小節用了這個詞開頭」，而不是「有幾個小節做了這件事」。同一批內容如果還有一條「句型要有變化」的規則，執行那條規則會讓指標下降——於是指標在內容變好的時候變差，而指標與規則之中一定有一個會被放棄。</p>
<hr>
<h2 id="反模式">反模式</h2>
<p><strong>把覆蓋率寫進頁面而沒有註明計數單位。</strong> 該批內容原本寫的是「五十二個書目條目裡二十三個寫了這一項」，而重新計數時，三種數法給出三個不同的數字：數購書連結區塊得 54、數書目小節得 54、數帶有證據來源判定的句子得 52——原文的分母取的是最後一個，跟分子不同單位。分母沒有定義時，這個數字沒有人能重算，於是它不是錨，是另一句自陳。</p>
<p>這個錯誤在寫下本卡的同一輪重犯了兩次。第一次：補上分佈之後，頁面寫的是「二十四個小節寫出處境限制」，而那個 24 取自 <code>處境上</code> 的<strong>出現次數</strong>，小節數是 23。第二次發生在改正的時候——差額被寫成「差一，因為維度定義段自己也用了那個詞」，而實際是差二：另一個來源是某個合寫三本書的小節裡出現了兩次，那要逐節數才看得見，而改的人只重掃了全站次數。定義了計數單位不會自動讓計數照那個單位跑，而<strong>解釋差額也還不是照單位跑</strong>。三件事要各驗一次：寫下單位、用那個單位重數、逐項核對差額的每一個來源。</p>
<p><strong>用關鍵詞計數當覆蓋率的代理。</strong> 實例：以 <code>時效上|時效要</code> 掃描得到 51/54，看起來有三個缺口。逐節檢查後發現三處都有時效判定，其中兩處只是換了句子的開頭（「一本 1987 年的書會讓人先問哪些部分還算數」「1983 年的書，書中的製造業類比…」）。這兩處恰好是全批最老的兩本書，也就是時效判定最該存在的兩本。指標把它們判成缺口，而它們是全批寫得最完整的。</p>
<p><strong>用飽和的指標宣告健康。</strong> 覆蓋率到 100% 之後，把它繼續列為「這一維有人在維護」的證據。它此後只回答一個問題：新增的項目有沒有漏寫。既有項目的判定是不是已經跟現實脫節，這個指標永遠答不了，而那正是它被設立時想擋的事。</p>
<p>這一條的後果最不直觀，實際會走成這樣：寫滿的那一刻沒有人覺得有問題，之後一年裡有幾則判定跟現實脫節，而每次有人問「這批還準嗎」，拿到的都是同一個滿分。沒有被發現是因為唯一在看的人就是寫的人，而他看的正是那個不會動的數字。等到有人照著判定去做決定、做完才發現前提早就不在，要收拾的是把全部項目重讀一次逐項重判，成本跟第一次做一樣大。</p>
<hr>
<h2 id="修法">修法</h2>
<ol>
<li><strong>先問這個指標在什麼情況下會動。</strong> 答案是「只有新增項目漏寫時」就代表它只覆蓋一種失效；那一維的主要失效若是變質而非漏寫，換一個指標——換的方向見第 4 條。</li>
<li><strong>分母要寫出計數單位、語料範圍與扣除規則，三者缺一就不可重算。</strong> 「五十四個書目小節」這個例子本身要補完才成立：語料是各主題篇與技藝篇（不含目錄頁），單位是 H2 段，扣除規則是每篇末尾的「為什麼只收這幾本」與「這個主題接到哪裡」兩節。少了後兩項，第三方跑最直觀的 <code>rg -o '^## '</code> 會得到九十，而扣掉哪些只在作者腦裡。「五十二個條目」則連單位都沒有，第三方不知道該數什麼。</li>
<li><strong>關鍵詞不當分子。</strong> 關鍵詞量的是措辭，而判定寫在哪一種句型裡是作者的自由——要可數就數結構單位（小節、欄位、條目）。它仍然可以當<strong>入口</strong>：為那批內容做的一次時效覆蓋掃描（51/54）確實指出了三個待查的小節，逐節看才知道兩個是換了句子開頭、一個是設計上不重複。當入口時標明它量的是措辭，別把命中數直接當覆蓋率。</li>
<li><strong>飽和之後換量測對象、換到單項層，或明說這一維沒有錨。</strong> 三條路成本遞增。換量測對象最便宜：抽樣重判的不一致率、距上次複核超過某個期限的項目數，都還是聚合的數字，只是量的不再是「有沒有寫」。單項層更貴，但不必重判——該批內容的做法是給時效換一個外部查得到的對照物：每一則時效判定要點名一個具體的過時前提（辦公室隔間、以年為單位的瀑布式階段、Java 與 JMock 的範例版本），那個前提現在成不成立，讀者不必信任頁面就查得到。</li>
<li><strong>補不出錨的維度要明說。</strong> 該批的角色歸屬這一維沒有錨，而且補不出來——角色由各主題自己界定，不對應任何頁面外的事實。寫下「這一維的維護狀態目前看不出來」，比擺一個飽和的覆蓋率誠實。</li>
</ol>
<hr>
<h2 id="跟其他原則的關係">跟其他原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../judgment-rules-must-specify-their-trace/">#243 要求執行者做判定的規則要一併規定判定留下什麼痕跡</a></td>
          <td>直接的上游——#243 要求判定留痕跡，本卡處理下一步：痕跡的計數要怎麼設計才算是外部可核對的。#243 的痕跡若被計成關鍵詞出現次數，痕跡存在而指標讀不到</td>
      </tr>
      <tr>
          <td><a href="../count-threshold-is-a-proxy-for-a-checkable-judgment/">#264 規則用數量當門檻時先問那個數量在代理什麼判斷</a></td>
          <td>姊妹——#264 管「用數量當<strong>門檻</strong>」，本卡管「用數量當<strong>證據</strong>」。兩者的失效同源：數字取代了它本來要代理的那個判斷，而數字自己不知道自己在代理什麼</td>
      </tr>
      <tr>
          <td><a href="../lint-scope-must-be-explicit-fact/">#221 檢查規則的作用域要顯式列舉</a></td>
          <td>同型的假訊號——#221 的零 error 可能是沒被檢查，本卡的滿覆蓋率可能是指標對變質沒有反應。兩者都是「看起來通過」，而通過的原因是量測範圍或量測對象不對</td>
      </tr>
      <tr>
          <td><a href="../keyword-bank-hit-is-candidate-not-verdict/">#149 keyword bank 命中是候選不是判決</a></td>
          <td>反向的同一件事——#149 說關鍵詞命中不等於違規（偽陽性），本卡說關鍵詞未命中不等於缺席（偽陰性）。兩張合起來的結論是關鍵詞只適合當偵測入口，不適合當任何數字的分子</td>
      </tr>
      <tr>
          <td><a href="../keyword-list-needs-dominant-violating-sense/">#267 入口由違規形態寫不寫得成 pattern 決定，佔比只決定能不能原樣進清單</a></td>
          <td>同源的另一半——本卡講關鍵詞不能當覆蓋率的<strong>分子</strong>（漏數判定），#267 講它不能當違規涵蓋的<strong>全部入口</strong>（漏抓違規）。共同根因是關鍵詞量的是措辭</td>
      </tr>
      <tr>
          <td><a href="../cadence-homogenization-in-batch-writing/">#122 Cadence 同質化是模板的隱形維度</a></td>
          <td>衝突的另一方——關鍵詞覆蓋率獎勵句型統一，而 #122 要求句型有變化。這兩條同時存在時，執行 #122 會讓指標下降，因此指標的量測方式要先讓路</td>
      </tr>
  </tbody>
</table>
<hr>
<ul>
<li><a href="../mechanical-constraints-buy-the-measured-number/">#278 機械約束買到被量測的那個數字</a>：相鄰。本卡管錨對變質沒有反應，#278 管錨被最便宜的路徑滿足——兩者都讓「數字全綠」與「判斷真的發生過」無法區分。</li>
</ul>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>指標的分子與分母來自不同的計數單位</td>
          <td>重新定義單位；分母要能被第三方用同一個規則重算</td>
      </tr>
      <tr>
          <td>覆蓋率是 100%，而這一維仍被列為「有人在維護」</td>
          <td>問它在既有項目變質時會不會動；不會就換量測對象、換到單項層，或明說沒有錨</td>
      </tr>
      <tr>
          <td>用 grep 得到的覆蓋率跟逐項檢查的結果不一致</td>
          <td>指標量的是措辭不是判定；改數結構單位</td>
      </tr>
      <tr>
          <td>覆蓋率用關鍵詞計數，而同一批內容另有一條要求句型變化的規則</td>
          <td>兩者互相抵銷（句型一變，關鍵詞就掃不到），先換量測方式再談誰讓路</td>
      </tr>
      <tr>
          <td>指標讀出來的缺口，恰好落在該項目最完整的那幾筆上</td>
          <td>這是量測對象錯了的訊號，不是內容缺了；逐項核對前不要據此補寫</td>
      </tr>
      <tr>
          <td>某一維怎麼設計都找不到外部可核對的對象</td>
          <td>明說這一維沒有錨，並寫出它能做到的上限（例如把界定寫出來讓它可以被反駁）</td>
      </tr>
  </tbody>
</table>
]]></content:encoded></item><item><title>入口由違規形態寫不寫得成 pattern 決定，佔比只決定能不能原樣進清單</title><link>https://tarrragon.github.io/blog/report/keyword-list-needs-dominant-violating-sense/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/report/keyword-list-needs-dominant-violating-sense/</guid><description>&lt;h2 id="論述基礎與限制">論述基礎與限制&lt;/h2>
&lt;p>本卡的觀察來自一次全站用詞清理。&lt;a href="../word-choice-fits-concept-attributes/">#234&lt;/a> 的物理化錯配有一組 grep 清單（撐 / 掛 / 扛 / 垮 / 頂 / 咬 / 啃），寫作規範把它操作化時標成三種錯配裡「唯一有穩定關鍵詞可掃的」一種。照清單掃完並修完 68 處之後，另一個人在同一批內容裡指出兩處清單完全沒碰到的錯配：把失敗說成「滑進去」「另一條滑坡」，以及用「拿到的是」承接讀書得到的理解。兩處照 #234 的判準都成立——滑需要斜坡、拿需要手，而失敗與理解兩樣都沒有。&lt;/p>
&lt;p>限制：本卡不談用詞錯配的&lt;strong>判準&lt;/strong>（那是 #234，而這次的兩個實例證明那個判準是對的），只談&lt;strong>偵測&lt;/strong>。兩個實例都是中文，但「一個詞該用哪一種入口」這條判準跟語言無關——它問的是一個詞的違規義項佔它全部用法多少，任何語言都算得出來；下面兩個探針則各自綁在中文的句構與詞義上，換語言要重新設計。&lt;/p>
&lt;p>入選判準跟下面兩個探針的可信度不在同一級。前者由「噪音蓋掉訊號、蓋掉之後維護者會把整條拿掉」這個機制支持；後者只有一個量測過（滑）、另一個沒有（拿），而且都沒有換一批內容驗過。修法段裡標著「候選訊號」的那一條，標的就是這個差別。&lt;/p>
&lt;hr>
&lt;h2 id="核心原則">核心原則&lt;/h2>
&lt;p>&lt;strong>入口由兩件事決定：違規義項佔它全部用法多少，以及那個違規形態寫不寫得成 pattern。&lt;/strong> 佔比只決定「原樣進清單」這一個選項可不可行，其餘的入口由形態決定；兩者都不決定這個詞要不要被涵蓋。清單是判準的一次抽樣，不是判準本身——抽到的是那些「幾乎只在違規時才出現」的詞；違規義項只佔少數的詞違規可以同樣嚴重，差別在原樣加進清單會用噪音蓋掉訊號。&lt;/p>
&lt;p>入口有四種，前三種成本遞增：&lt;strong>原樣進清單&lt;/strong>（違規義項佔多數）、&lt;strong>收窄 pattern 或加豁免子句&lt;/strong>（違規義項少、而違規形態穩定到寫得出來）、&lt;strong>改用探針&lt;/strong>（違規形態不穩定，沒有可寫成 regex 的外形）。還有兩種不在這條成本線上：&lt;strong>排一輪限定 scope 的 review&lt;/strong>（例如「這批新寫的、從外語文獻讀來的概念詞」），它是探針缺的那個偵測入口；以及&lt;strong>承認沒有可行的入口&lt;/strong>——形態不穩定、佔比又低到連探針都設計不出來時，寫下「這一類目前只能靠讀的人自己注意」，比擺一個抓不到的 pattern 誠實，姊妹卡 &lt;a href="../checkable-anchor-must-be-able-to-fall/">#266&lt;/a> 對「補不出錨的維度」做的是同一個處理。這份清單本身也是抽樣。本站三種都在用：物理化清單收了「撐 / 咬 / 頂」這些違規義項佔比極低的詞，靠一句豁免處理（主詞是實體或系統負載時不觸發）；「滑坡」收窄成 &lt;code>另一條滑坡|滑進&lt;/code> 就抓得到；而「拿」的違規形態描述得出來（「⋯⋯的是」後面接一個完整斷言）卻寫不成 pattern，因為「完整斷言」不是 regex 判得出來的東西——這種只剩探針。&lt;/p>
&lt;p>因此漏抓一個詞之後，先算比例、再看形態、然後選入口——既不是直接加進 regex，也不是一律改探針。兩個實例各自示範原樣加進去為什麼行不通：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>本義合法&lt;/strong>：「滑坡」在中文的本義是山崩，另有漢語固有的衰退引申義（經濟滑坡、成績滑坡），而「下滑」「滑落」「滑向某個狀態」都是正常用法（毛利下滑、成績逐級滑落、語氣滑向抱怨）。違規的只有從英文 slippery slope 借來的那個義項——把一個失敗當成可以滑進去的地方、當成可數的路徑。全站掃「滑」得到兩百多處，絕大多數是滑鼠、下滑、滑動、滑向、滑落這些正常用法（精確數字這裡不寫：量測範圍含這一頁，而寫下數字的動作會改變它——這正是本卡姊妹卡在講的量測對象問題）。違規集中在 &lt;code>滑坡|滑進&lt;/code> 這一小群，本批修掉五處：兩處把失敗說成滑進去、兩處把倒閉說成滑進去、一個段標把風險命名成滑坡。&lt;/li>
&lt;li>&lt;strong>詞頻過高&lt;/strong>：「拿」在技術寫作裡到處都是（拿到的需求、拿去用、拿它對照自己的處境），這些全部合規。違規的只有拿一個物理取得動詞去承接認知關係那一種。這一個的佔比沒有量測過——本卡修法 2 要求算，而寫卡當下沒有算。&lt;/li>
&lt;/ul>
&lt;p>原樣加進清單之後，噪音會蓋掉訊號，而下一步多半是有人把它們整條拿掉。那個動作實際會走成：加進去的當下沒有人反對，理由是涵蓋要完整；幾輪之後每次掃描回來幾百行而真違規只有個位數，於是有人刪掉那幾個詞，commit 訊息寫的是移除誤報率過高的規則。沒有被發現的是同一個動作也移除了規則對那一類的涵蓋——刪的人看的是命中率，而涵蓋範圍寫在規則正文、不在清單旁邊。收窄 pattern 與豁免子句存在的理由就是避開這個結局。&lt;/p>
&lt;hr>
&lt;h2 id="反模式">反模式&lt;/h2>
&lt;p>這一類問題出現在規則由少數人維護、而執行入口是一條 grep 的體系：規則正文寫的是判準，pre-commit 或 CI 跑的是清單，兩者的涵蓋範圍不同而沒有人比對過——判準寫得越好，落差越大。執行入口若是人工或 agent review，判準可以直接被執行，「清單 vs 探針」這個分工就不是問題。&lt;/p>
&lt;p>&lt;strong>把清單的涵蓋當成規則的涵蓋。&lt;/strong> 「物理化是唯一有穩定關鍵詞可掃的一種」這句標註在被讀的時候會變成「掃完清單就掃完這一類」。實測是掃完清單、修完 68 處（該次全站 716 個關鍵詞命中行，修正後降到 651）、跑完全站驗證都乾淨之後，同一批內容裡仍有兩類完整的違規在。零命中是「清單沒抓到」，不是「沒有違規」。&lt;/p>
&lt;p>&lt;strong>用清單的命中數判斷這一類清乾淨了。&lt;/strong> 68 這個數字讀起來像一次徹底的清理，而它量的是清單的產能，不是這一類違規的總量。這跟 &lt;a href="../checkable-anchor-must-be-able-to-fall/">#266&lt;/a> 的失效同源，只是那裡的關鍵詞當分子、這裡當偵測入口。&lt;/p>
&lt;p>&lt;strong>依賴外部指正當唯一的補漏機制。&lt;/strong> 這兩處都是使用者在旁邊看到的，不是任何 review frame 抓到的——語言的容錯讓作者自己讀不出來（「滑進去的失敗」「拿到的是理解」通順、意思也到得了）。外部眼睛有效，但它排不進行程表，把它當唯一機制等於把偵測交給運氣。反向的實例也有一個：既有義項探針寫進規則之後，第三處違規（一張方法論卡的段標「模板化滑坡」）是那條探針自己抓到的，不必再等人指出。&lt;/p>
&lt;hr>
&lt;h2 id="修法">修法&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>判準與清單分開寫，並標明清單是抽樣。&lt;/strong> 規則的正文寫可執行的判準（「問這個動詞照字面成立需要什麼物理條件」），清單另起一段標成「目前抽到的高密度詞」。兩者混在一起時，讀規則的人會停在清單。&lt;/li>
&lt;li>&lt;strong>新詞進清單前先算違規比例、再看形態，然後選入口。&lt;/strong> 全站掃一次那個詞，數違規佔多少。比例高就原樣進清單；比例低而違規形態寫得成 pattern，收窄 pattern 或加一句豁免（清單裡的「撐 / 咬 / 頂」就是這樣留住的）；形態描述得出來卻寫不成 pattern，才輪到探針；連形態都不穩定的，剩下的是排一輪限定 scope 的 review 或明說沒有入口。第三個實例是「承載 / 載體」——它照 #234 的判準成立（承載要有重量與支承面，而「即時反應」「功能」都沒有），佔比低而形態穩定，屬於收窄 pattern 那一格；它出現在寫下本卡的同一批稿子裡，而清單抓不到。跳過計數直接選入口是這一步最常被省掉的部分。&lt;/li>
&lt;li>&lt;strong>補語型態探針&lt;/strong>（抓泛用動詞頂替具體關係、中文）：「⋯⋯的是」後面接一個完整斷言時，前面那個動詞值得回頭看——精準的認知動詞（學到 / 看出 / 意識到）容得下子句，而物理取得動詞（拿到 / 抓到）接上去會讀不順。實測那句「拿到的是自己的哪些反應正在製造沉默」同時犯用詞與語法兩項，而語法那一項是接不下去、因此看得見的。這一條目前是候選訊號而不是已驗證的探針：只有一個實例，沒有掃過全站的真陽性率，也沒有跨批驗證——照上一條的要求，它自己還沒過那一關。&lt;/li>
&lt;li>&lt;strong>既有義項探針&lt;/strong>（抓外語隱喻直譯、中文）：把那個詞在本語言的&lt;strong>全部&lt;/strong>既有義項列出來（本義與固有的引申義都算），再問句子用的是哪一個。滑坡的本義是山崩這個地質事件、固有引申義是衰退（經濟滑坡、成績滑坡），兩者都不容許「另一條滑坡」這種把它當成可數路徑的用法——那個用法只在英文 slippery slope 裡成立。只列本義會誤判：漏掉衰退這個引申義的話，「成績滑坡」會被判成違規。詞典查得到不等於這個用法成立，這個探針要抓的正是那個落差。它沒有偵測入口——這是判定程序，要先有人懷疑某個詞才跑得起來。懷疑有兩個現成的來源，都排得進行程：讀的時候卡了一下卻指不出哪裡怪，以及某個概念本來從英文文獻讀來、這是第一次用中文寫它。這兩個時刻各跑一次既有義項清單，比等一張已知外語隱喻詞的清單被建出來早得多。&lt;/li>
&lt;li>&lt;strong>換詞時同義詞要分散。&lt;/strong> 一個泛用動詞換掉之後，替代詞要按語境各自選（拿到 → 學到 / 讀出來 / 掌握 / 得到的教訓），不要一律換成同一個——一律替換會用新模具換掉舊模具，理由見 &lt;a href="../cadence-homogenization-in-batch-writing/">#122&lt;/a>。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="跟其他原則的關係">跟其他原則的關係&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>原則&lt;/th>
 &lt;th>關係&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="../word-choice-fits-concept-attributes/">#234 描述抽象概念要用貼合屬性的謂語&lt;/a>&lt;/td>
 &lt;td>直接的上游，本卡只動它的偵測層。這次兩個實例照 #234 的判準都成立，證明判準沒問題；被推翻的是操作化時加上的那句「物理化是唯一有穩定關鍵詞可掃的」——可掃的是清單裡那幾個詞，不是這一類&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../avoid-overused-generic-words/">#203 避免濫用泛用詞&lt;/a>&lt;/td>
 &lt;td>姊妹但軸不同——#203 的訊號是&lt;strong>密度&lt;/strong>（同一個泛用詞反覆出現，把不同情境壓成同一個標籤；它的清單同時含名詞與動詞），本卡的訊號是&lt;strong>單次出現時謂語與賓語的關係對不上&lt;/strong>。「拿到的是理解」只出現一次也是錯的&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../checkable-anchor-must-be-able-to-fall/">#266 可核對的錨要選會下降的量&lt;/a>&lt;/td>
 &lt;td>同源的另一半——#266 講關鍵詞不能當覆蓋率的&lt;strong>分子&lt;/strong>（漏數判定），本卡講關鍵詞不能當違規涵蓋的&lt;strong>全部入口&lt;/strong>（漏抓違規）。兩者的共同根因是關鍵詞量的是措辭&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../keyword-bank-hit-is-candidate-not-verdict/">#149 keyword bank 命中是候選不是判決&lt;/a>&lt;/td>
 &lt;td>對稱的另一邊——#149 處理偽陽性（命中要再判定），本卡處理偽陰性（沒命中不表示沒有）。兩張合起來說明關鍵詞只適合當入口的一部分，兩端都要有別的機制接&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../register-violation-needs-cross-style-eyes/">#165 register 違規：偵測可機械化、判定要靠文體異源的眼睛&lt;/a>&lt;/td>
 &lt;td>同型的作者盲區——#165 的作者讀不出自己的語域，本卡的作者讀不出自己的謂語，共同機制是語言容得下、通順度不下降。差別在 #165 靠異源的眼睛，本卡想把那雙眼睛的一部分換成可排程的探針，目前只做到一半：兩個探針裡只有補語型態那個有偵測入口，而它自己還沒量測過真陽性率&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../mechanical-constraints-buy-the-measured-number/">#278 機械約束買到被量測的那個數字&lt;/a>&lt;/td>
 &lt;td>同一個機制在程式碼度量上——可機械偵測的形態是違規集合的一個投影，而達成投影上的合規比達成實質合規便宜&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="判讀徵兆">判讀徵兆&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>訊號&lt;/th>
 &lt;th>該做的事&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>某條用詞規則的漏抓實例持續從外部指正進來&lt;/td>
 &lt;td>不要先擴充清單；先算那些詞的違規比例，低的改做探針&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>一個詞有既有義項、而句子用的是外語搭配裡的那個&lt;/td>
 &lt;td>既有義項探針命中；本義與固有引申義都列出來，再問句子用的是哪一個&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>「⋯⋯的是」後面接的是完整斷言而不是名詞組&lt;/td>
 &lt;td>前面那個動詞多半選錯；換成容得下子句的認知動詞&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>掃完清單、全站零命中，而規則涵蓋的範圍描述得比清單廣&lt;/td>
 &lt;td>零命中只證明清單沒抓到；規則正文與清單要分開寫，並標明清單是抽樣&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>想把一個高頻常用詞加進 grep 清單&lt;/td>
 &lt;td>先掃一次數違規佔比；佔比低就會用噪音蓋掉訊號，且下一個維護者會把它整個拿掉&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>換掉一個泛用動詞時所有位置都換成同一個替代詞&lt;/td>
 &lt;td>那是用新模具換舊模具；替代詞按語境各自選&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description><content:encoded><![CDATA[<h2 id="論述基礎與限制">論述基礎與限制</h2>
<p>本卡的觀察來自一次全站用詞清理。<a href="../word-choice-fits-concept-attributes/">#234</a> 的物理化錯配有一組 grep 清單（撐 / 掛 / 扛 / 垮 / 頂 / 咬 / 啃），寫作規範把它操作化時標成三種錯配裡「唯一有穩定關鍵詞可掃的」一種。照清單掃完並修完 68 處之後，另一個人在同一批內容裡指出兩處清單完全沒碰到的錯配：把失敗說成「滑進去」「另一條滑坡」，以及用「拿到的是」承接讀書得到的理解。兩處照 #234 的判準都成立——滑需要斜坡、拿需要手，而失敗與理解兩樣都沒有。</p>
<p>限制：本卡不談用詞錯配的<strong>判準</strong>（那是 #234，而這次的兩個實例證明那個判準是對的），只談<strong>偵測</strong>。兩個實例都是中文，但「一個詞該用哪一種入口」這條判準跟語言無關——它問的是一個詞的違規義項佔它全部用法多少，任何語言都算得出來；下面兩個探針則各自綁在中文的句構與詞義上，換語言要重新設計。</p>
<p>入選判準跟下面兩個探針的可信度不在同一級。前者由「噪音蓋掉訊號、蓋掉之後維護者會把整條拿掉」這個機制支持；後者只有一個量測過（滑）、另一個沒有（拿），而且都沒有換一批內容驗過。修法段裡標著「候選訊號」的那一條，標的就是這個差別。</p>
<hr>
<h2 id="核心原則">核心原則</h2>
<p><strong>入口由兩件事決定：違規義項佔它全部用法多少，以及那個違規形態寫不寫得成 pattern。</strong> 佔比只決定「原樣進清單」這一個選項可不可行，其餘的入口由形態決定；兩者都不決定這個詞要不要被涵蓋。清單是判準的一次抽樣，不是判準本身——抽到的是那些「幾乎只在違規時才出現」的詞；違規義項只佔少數的詞違規可以同樣嚴重，差別在原樣加進清單會用噪音蓋掉訊號。</p>
<p>入口有四種，前三種成本遞增：<strong>原樣進清單</strong>（違規義項佔多數）、<strong>收窄 pattern 或加豁免子句</strong>（違規義項少、而違規形態穩定到寫得出來）、<strong>改用探針</strong>（違規形態不穩定，沒有可寫成 regex 的外形）。還有兩種不在這條成本線上：<strong>排一輪限定 scope 的 review</strong>（例如「這批新寫的、從外語文獻讀來的概念詞」），它是探針缺的那個偵測入口；以及<strong>承認沒有可行的入口</strong>——形態不穩定、佔比又低到連探針都設計不出來時，寫下「這一類目前只能靠讀的人自己注意」，比擺一個抓不到的 pattern 誠實，姊妹卡 <a href="../checkable-anchor-must-be-able-to-fall/">#266</a> 對「補不出錨的維度」做的是同一個處理。這份清單本身也是抽樣。本站三種都在用：物理化清單收了「撐 / 咬 / 頂」這些違規義項佔比極低的詞，靠一句豁免處理（主詞是實體或系統負載時不觸發）；「滑坡」收窄成 <code>另一條滑坡|滑進</code> 就抓得到；而「拿」的違規形態描述得出來（「⋯⋯的是」後面接一個完整斷言）卻寫不成 pattern，因為「完整斷言」不是 regex 判得出來的東西——這種只剩探針。</p>
<p>因此漏抓一個詞之後，先算比例、再看形態、然後選入口——既不是直接加進 regex，也不是一律改探針。兩個實例各自示範原樣加進去為什麼行不通：</p>
<ul>
<li><strong>本義合法</strong>：「滑坡」在中文的本義是山崩，另有漢語固有的衰退引申義（經濟滑坡、成績滑坡），而「下滑」「滑落」「滑向某個狀態」都是正常用法（毛利下滑、成績逐級滑落、語氣滑向抱怨）。違規的只有從英文 slippery slope 借來的那個義項——把一個失敗當成可以滑進去的地方、當成可數的路徑。全站掃「滑」得到兩百多處，絕大多數是滑鼠、下滑、滑動、滑向、滑落這些正常用法（精確數字這裡不寫：量測範圍含這一頁，而寫下數字的動作會改變它——這正是本卡姊妹卡在講的量測對象問題）。違規集中在 <code>滑坡|滑進</code> 這一小群，本批修掉五處：兩處把失敗說成滑進去、兩處把倒閉說成滑進去、一個段標把風險命名成滑坡。</li>
<li><strong>詞頻過高</strong>：「拿」在技術寫作裡到處都是（拿到的需求、拿去用、拿它對照自己的處境），這些全部合規。違規的只有拿一個物理取得動詞去承接認知關係那一種。這一個的佔比沒有量測過——本卡修法 2 要求算，而寫卡當下沒有算。</li>
</ul>
<p>原樣加進清單之後，噪音會蓋掉訊號，而下一步多半是有人把它們整條拿掉。那個動作實際會走成：加進去的當下沒有人反對，理由是涵蓋要完整；幾輪之後每次掃描回來幾百行而真違規只有個位數，於是有人刪掉那幾個詞，commit 訊息寫的是移除誤報率過高的規則。沒有被發現的是同一個動作也移除了規則對那一類的涵蓋——刪的人看的是命中率，而涵蓋範圍寫在規則正文、不在清單旁邊。收窄 pattern 與豁免子句存在的理由就是避開這個結局。</p>
<hr>
<h2 id="反模式">反模式</h2>
<p>這一類問題出現在規則由少數人維護、而執行入口是一條 grep 的體系：規則正文寫的是判準，pre-commit 或 CI 跑的是清單，兩者的涵蓋範圍不同而沒有人比對過——判準寫得越好，落差越大。執行入口若是人工或 agent review，判準可以直接被執行，「清單 vs 探針」這個分工就不是問題。</p>
<p><strong>把清單的涵蓋當成規則的涵蓋。</strong> 「物理化是唯一有穩定關鍵詞可掃的一種」這句標註在被讀的時候會變成「掃完清單就掃完這一類」。實測是掃完清單、修完 68 處（該次全站 716 個關鍵詞命中行，修正後降到 651）、跑完全站驗證都乾淨之後，同一批內容裡仍有兩類完整的違規在。零命中是「清單沒抓到」，不是「沒有違規」。</p>
<p><strong>用清單的命中數判斷這一類清乾淨了。</strong> 68 這個數字讀起來像一次徹底的清理，而它量的是清單的產能，不是這一類違規的總量。這跟 <a href="../checkable-anchor-must-be-able-to-fall/">#266</a> 的失效同源，只是那裡的關鍵詞當分子、這裡當偵測入口。</p>
<p><strong>依賴外部指正當唯一的補漏機制。</strong> 這兩處都是使用者在旁邊看到的，不是任何 review frame 抓到的——語言的容錯讓作者自己讀不出來（「滑進去的失敗」「拿到的是理解」通順、意思也到得了）。外部眼睛有效，但它排不進行程表，把它當唯一機制等於把偵測交給運氣。反向的實例也有一個：既有義項探針寫進規則之後，第三處違規（一張方法論卡的段標「模板化滑坡」）是那條探針自己抓到的，不必再等人指出。</p>
<hr>
<h2 id="修法">修法</h2>
<ol>
<li><strong>判準與清單分開寫，並標明清單是抽樣。</strong> 規則的正文寫可執行的判準（「問這個動詞照字面成立需要什麼物理條件」），清單另起一段標成「目前抽到的高密度詞」。兩者混在一起時，讀規則的人會停在清單。</li>
<li><strong>新詞進清單前先算違規比例、再看形態，然後選入口。</strong> 全站掃一次那個詞，數違規佔多少。比例高就原樣進清單；比例低而違規形態寫得成 pattern，收窄 pattern 或加一句豁免（清單裡的「撐 / 咬 / 頂」就是這樣留住的）；形態描述得出來卻寫不成 pattern，才輪到探針；連形態都不穩定的，剩下的是排一輪限定 scope 的 review 或明說沒有入口。第三個實例是「承載 / 載體」——它照 #234 的判準成立（承載要有重量與支承面，而「即時反應」「功能」都沒有），佔比低而形態穩定，屬於收窄 pattern 那一格；它出現在寫下本卡的同一批稿子裡，而清單抓不到。跳過計數直接選入口是這一步最常被省掉的部分。</li>
<li><strong>補語型態探針</strong>（抓泛用動詞頂替具體關係、中文）：「⋯⋯的是」後面接一個完整斷言時，前面那個動詞值得回頭看——精準的認知動詞（學到 / 看出 / 意識到）容得下子句，而物理取得動詞（拿到 / 抓到）接上去會讀不順。實測那句「拿到的是自己的哪些反應正在製造沉默」同時犯用詞與語法兩項，而語法那一項是接不下去、因此看得見的。這一條目前是候選訊號而不是已驗證的探針：只有一個實例，沒有掃過全站的真陽性率，也沒有跨批驗證——照上一條的要求，它自己還沒過那一關。</li>
<li><strong>既有義項探針</strong>（抓外語隱喻直譯、中文）：把那個詞在本語言的<strong>全部</strong>既有義項列出來（本義與固有的引申義都算），再問句子用的是哪一個。滑坡的本義是山崩這個地質事件、固有引申義是衰退（經濟滑坡、成績滑坡），兩者都不容許「另一條滑坡」這種把它當成可數路徑的用法——那個用法只在英文 slippery slope 裡成立。只列本義會誤判：漏掉衰退這個引申義的話，「成績滑坡」會被判成違規。詞典查得到不等於這個用法成立，這個探針要抓的正是那個落差。它沒有偵測入口——這是判定程序，要先有人懷疑某個詞才跑得起來。懷疑有兩個現成的來源，都排得進行程：讀的時候卡了一下卻指不出哪裡怪，以及某個概念本來從英文文獻讀來、這是第一次用中文寫它。這兩個時刻各跑一次既有義項清單，比等一張已知外語隱喻詞的清單被建出來早得多。</li>
<li><strong>換詞時同義詞要分散。</strong> 一個泛用動詞換掉之後，替代詞要按語境各自選（拿到 → 學到 / 讀出來 / 掌握 / 得到的教訓），不要一律換成同一個——一律替換會用新模具換掉舊模具，理由見 <a href="../cadence-homogenization-in-batch-writing/">#122</a>。</li>
</ol>
<hr>
<h2 id="跟其他原則的關係">跟其他原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../word-choice-fits-concept-attributes/">#234 描述抽象概念要用貼合屬性的謂語</a></td>
          <td>直接的上游，本卡只動它的偵測層。這次兩個實例照 #234 的判準都成立，證明判準沒問題；被推翻的是操作化時加上的那句「物理化是唯一有穩定關鍵詞可掃的」——可掃的是清單裡那幾個詞，不是這一類</td>
      </tr>
      <tr>
          <td><a href="../avoid-overused-generic-words/">#203 避免濫用泛用詞</a></td>
          <td>姊妹但軸不同——#203 的訊號是<strong>密度</strong>（同一個泛用詞反覆出現，把不同情境壓成同一個標籤；它的清單同時含名詞與動詞），本卡的訊號是<strong>單次出現時謂語與賓語的關係對不上</strong>。「拿到的是理解」只出現一次也是錯的</td>
      </tr>
      <tr>
          <td><a href="../checkable-anchor-must-be-able-to-fall/">#266 可核對的錨要選會下降的量</a></td>
          <td>同源的另一半——#266 講關鍵詞不能當覆蓋率的<strong>分子</strong>（漏數判定），本卡講關鍵詞不能當違規涵蓋的<strong>全部入口</strong>（漏抓違規）。兩者的共同根因是關鍵詞量的是措辭</td>
      </tr>
      <tr>
          <td><a href="../keyword-bank-hit-is-candidate-not-verdict/">#149 keyword bank 命中是候選不是判決</a></td>
          <td>對稱的另一邊——#149 處理偽陽性（命中要再判定），本卡處理偽陰性（沒命中不表示沒有）。兩張合起來說明關鍵詞只適合當入口的一部分，兩端都要有別的機制接</td>
      </tr>
      <tr>
          <td><a href="../register-violation-needs-cross-style-eyes/">#165 register 違規：偵測可機械化、判定要靠文體異源的眼睛</a></td>
          <td>同型的作者盲區——#165 的作者讀不出自己的語域，本卡的作者讀不出自己的謂語，共同機制是語言容得下、通順度不下降。差別在 #165 靠異源的眼睛，本卡想把那雙眼睛的一部分換成可排程的探針，目前只做到一半：兩個探針裡只有補語型態那個有偵測入口，而它自己還沒量測過真陽性率</td>
      </tr>
      <tr>
          <td><a href="../mechanical-constraints-buy-the-measured-number/">#278 機械約束買到被量測的那個數字</a></td>
          <td>同一個機制在程式碼度量上——可機械偵測的形態是違規集合的一個投影，而達成投影上的合規比達成實質合規便宜</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>某條用詞規則的漏抓實例持續從外部指正進來</td>
          <td>不要先擴充清單；先算那些詞的違規比例，低的改做探針</td>
      </tr>
      <tr>
          <td>一個詞有既有義項、而句子用的是外語搭配裡的那個</td>
          <td>既有義項探針命中；本義與固有引申義都列出來，再問句子用的是哪一個</td>
      </tr>
      <tr>
          <td>「⋯⋯的是」後面接的是完整斷言而不是名詞組</td>
          <td>前面那個動詞多半選錯；換成容得下子句的認知動詞</td>
      </tr>
      <tr>
          <td>掃完清單、全站零命中，而規則涵蓋的範圍描述得比清單廣</td>
          <td>零命中只證明清單沒抓到；規則正文與清單要分開寫，並標明清單是抽樣</td>
      </tr>
      <tr>
          <td>想把一個高頻常用詞加進 grep 清單</td>
          <td>先掃一次數違規佔比；佔比低就會用噪音蓋掉訊號，且下一個維護者會把它整個拿掉</td>
      </tr>
      <tr>
          <td>換掉一個泛用動詞時所有位置都換成同一個替代詞</td>
          <td>那是用新模具換舊模具；替代詞按語境各自選</td>
      </tr>
  </tbody>
</table>
]]></content:encoded></item><item><title>敘事的解碼材料要在讀者已讀的文本裡，不在作者的地圖裡</title><link>https://tarrragon.github.io/blog/report/decodable-from-text-already-read/</link><pubDate>Fri, 21 Aug 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/report/decodable-from-text-already-read/</guid><description>&lt;h2 id="論述基礎與限制">論述基礎與限制&lt;/h2>
&lt;p>本卡來自一篇書單導言的兩版對照。原稿由 LLM 生成，兩段共約 320 字，命題完整而讀法緊湊；修訂版由使用者改寫、字數約多兩成，並被指定為後續寫作的風格基準。兩版的命題集合幾乎相同——修訂沒有增刪論點，差異全部落在&lt;strong>解碼成本的分配&lt;/strong>上：原稿的每一個壓縮手法，修訂版都有一個對應的展開動作。&lt;/p>
&lt;p>證據強度：單一實例、單一文體（書單導言）、單一組作者與改寫者，說明得了形狀、說明不了發生率。其中一項不依賴樣本數：原稿的位置指涉自身就數錯了（見反模式一），這是機制推得出來的失效、不是統計觀察。&lt;/p>
&lt;p>第二批證據來自同一篇文章的全篇改寫（立卡後依同一判準掃完其餘七個章節）：共修約 15 處，&lt;strong>位置指涉一類約 10 處、佔比最高&lt;/strong>——「前者 / 後者」「第一條 / 後面三條」、當作角色詞散用的「起點書」、以及一處指涉對象在另一份文件裡的跨頁形態；計數錯誤在全篇出現第三次（「另外三本都不碰」實為四本），三次計數三次全錯、分佈在兩個不同章節。單邊對比、隱式結論、破折號懸念各只有一到三處。發生率的宣稱仍限於這一篇；分佈形狀（位置指涉主導）在別的文章要重新量。&lt;/p>
&lt;p>限制：修訂版自身的部分措辭偏好（口語連接詞、否定式收尾句）不在本卡的主張範圍——本卡抽的是解碼成本的分配原則，不是那份修訂的全部字面。&lt;/p>
&lt;hr>
&lt;h2 id="核心原則">核心原則&lt;/h2>
&lt;p>&lt;strong>教學敘事的每一句，解碼所需的材料必須已經在讀者手上——已讀過的正文加上模組基線；動用讀者還沒讀到的後文、或只存在於作者腦中的全篇地圖，都是把作者側的成本轉嫁給讀者。&lt;/strong> 判定問句可逐句執行：讀者線性首讀讀到這一句時，能不能當場復原完整命題——指涉的對象是誰、對比的兩面是什麼、結論的操作含義是什麼。復原不了的那一項，就是被壓掉的解碼材料。&lt;/p>
&lt;p>機制在生成端：作者（人或 LLM）寫敘事時持有全篇地圖——知道每個條目是什麼、論證往哪收——而文學化的壓縮手法（位置指涉、轉喻、單邊對比、破折號懸念）全部預設讀者共享這張地圖。書評與文藝散文可以這樣寫，因為那些文體的讀者接受重讀與回味，壓縮換來的密度是文體價值的一部分；教學內容的讀者帶問題來、線性首讀，解碼失敗直接折損交付。這是一種語域混入：借來的是書評體的密度審美，代價落在資訊結構上。&lt;/p>
&lt;p>展開的價格是字數，而價格&lt;strong>依反模式的類型分層&lt;/strong>：具名替換（修位置指涉與轉喻）幾乎不加字——把「前兩本」換成兩個書名是代換、不是擴寫；補全對比、寫出操作結論、展開破折號懸念才真的花字數。實測同一篇文章：隱式結論密集的導言兩段改寫後多約兩成，全篇（違規以位置指涉為主）改寫後只多百分之五。這代表最高頻的違規恰好是最便宜的修法，「展開會讓文章膨脹」不構成保留壓縮的理由；花掉的那些字數是把解碼成本從讀者側移回作者側的價格，不是浪費——敘事位的精簡義務本來就低於檢索鍵位（title / description），見 &lt;a href="../sentence-self-sufficiency-by-consumption-unit/">#261&lt;/a> 的消費單位分工。&lt;/p>
&lt;hr>
&lt;h2 id="反模式">反模式&lt;/h2>
&lt;p>四種手法在原稿裡各有可指認的句子。共同結構是：句子語法完整、通順、單獨讀不出毛病，缺的材料只有拿讀者的視角走一次線性首讀才會現形——這也是它們能通過同源審查的原因。&lt;/p>
&lt;p>&lt;strong>一、位置與數量指涉。&lt;/strong> 原稿寫「本主題前兩本為什麼並收」「另外兩本各補一個分界之外的角色」。解碼「前兩本」要求讀者先讀完後文全部條目、再回頭對照——而且對照會失敗：所指的兩本書在篇內排第一與第三個條目，「前兩本」是作者腦中「兩本主線、其餘輔助」那張地圖上的位置，不是文本上的位置。「另外兩本」同樣錯：剩下的條目實際是三本書（其中兩本合佔一個條目）。全篇掃完後同型錯誤出現第三次：另一個章節寫「本主題另外三本都不碰的那一側」，其餘實際是四本——同一篇裡三次計數三次全錯、分佈在兩個章節。位置與數量都是排列的衍生值（derivation）、不是實體自身的事實（fact），跟 &lt;a href="../reference-by-semantic-title-not-number/">#155&lt;/a> 的編號引用同一個機制——差別在 #155 的錯位要等結構重排才發生，這裡的地圖與文本從第一版就沒對齊過，連作者自己都維護不出正確值。修訂版的動作是具名：「《漫步華爾街》與《智慧型投資人》都探討這兩個問題」，指涉錯位從機制上無從發生。&lt;/p>
&lt;p>位置指涉有一個極端形態：&lt;strong>指涉對象在另一份文件裡&lt;/strong>。同一篇的另一處寫「這個前提由會計那一篇承接，該篇的起點書提供的程度就夠」——「該篇的起點書」是哪一本，解碼材料在另一頁的第一個章節裡，讀者要離開本文、打開那一頁、找到它的起點條目才拿得到。修法相同：查證後具名（《財報就像一本故事書》）。篇內的位置指涉至少還能靠讀完本篇解碼，跨頁形態連這條路都沒有。&lt;/p>
&lt;p>&lt;strong>二、轉喻代替命名。&lt;/strong> 原稿寫「一份是報酬數字本身的校準，一份是判斷者這一側」——用角色描述加方位隱喻指涉具體的書，讀者拿到的是謎面，謎底在幾個章節之後。修訂版直說對象加角色：「《窮查理的普通常識》處理做判斷的人的心理」。角色描述可以保留，它要跟名字同時在場、而不是代替名字。&lt;/p>
&lt;p>&lt;strong>三、單邊對比與隱式結論。&lt;/strong> 原稿寫「留下文字的都是重現成功的那些」——對立面（重現失敗的沒有留下文字，所以紀錄本身偏向成功）留給讀者補；又寫「要分開的是評估它們的證據，不是決定本身」——對比本身正確，而它的操作含義（做決定時要同時考慮兩邊）整個留白，讀者拿到一組對比、拿不到下一步。修訂版把兩處都寫完：「留下文字的都是可複製結果，排除掉不可複製的結果」；「要分開評估兩種決策的指標，但是做決定的時候不應該單獨只考慮一邊的問題」。這跟 &lt;a href="../compressed-conclusion-strips-derivation/">#210&lt;/a> 是相鄰的兩種壓縮：那卡壓掉的是結論的推導、讀者能照做而不能調整；這裡壓掉的是命題的另一半、讀者當場就接不起來。&lt;/p>
&lt;p>&lt;strong>四、名詞化主詞與破折號懸念。&lt;/strong> 原稿寫「這條分界解釋的是本主題前兩本為什麼並收」——抽象名詞（分界）當解釋句的主詞、具體的書降成受詞子句裡的位置指涉；又寫「選擇的持續有效性要的是另一種東西——」——先立一個空位、破折號之後才揭曉。修訂版讓具體實體當主詞（書探討問題、紀錄經過篩選）、用逗號順接直接給內容。&lt;/p>
&lt;p>名詞化主詞有一個高頻來源：&lt;strong>框架欄位名滲進句子當主詞&lt;/strong>。用固定欄位組寫作時（本例是每本書共用的四項描述框架），欄位名會直接被拿來起句——「讀得出價值的前提幾乎沒有」。使用者的修訂讓書當主詞：「這本書幾乎不需任何前置作業」；框架的涵蓋不靠標籤在句子裡現身，內容本身就認得出對應哪一項。同一句的後半是隱式結論的又一例：「適合分段讀而非通讀」是抽象的讀法標籤，讀者拿不到行動；修訂版寫成可執行的判斷——「不需要通讀，即使只讀其中一個章節都會有幫助」。&lt;/p>
&lt;p>&lt;strong>五（結構層）、並列項擠單段、旁註插斷主線。&lt;/strong> 原稿把配置的定義、選擇的定義、兩者不獨立的論證、結論全部放在同一段；「多數投資書把篇幅放在選擇上」這句旁註插在「證據分界 → 選書理由」的推導中間。修訂版把兩個並列定義各自獨立成段、一段一命題，旁註移到主線走完之後當收尾。&lt;/p>
&lt;hr>
&lt;h2 id="修法">修法&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>逐句跑解碼測試。&lt;/strong> 讀者只靠已讀過的正文加模組基線，能不能復原「指涉對象、對比兩面、操作含義」三項。缺哪一項補哪一項，補的位置在句內或句前、不在後文。&lt;/li>
&lt;li>&lt;strong>指涉具名。&lt;/strong> 首次出現用全名（書名、人名、概念名），同段之後可用短稱（Malkiel 那本）。向後的近距回指（「上一段的兩個條件」）合法——解碼材料已在讀者手上；跨節回指仍建議具名。位置與數量詞（前 N 個、另外 N 個）出現時順手驗一次計數——它們是作者地圖的衍生值，常常是錯的。回指剛提過的對象用近指「這些」；「那幾條」同時犯兩件事——遠指配近距離的先行詞、「幾條」又多宣告一次計數。&lt;strong>集合指涉（其他三篇 / 另外三本）即使計數正確也要給出成員或方向&lt;/strong>——數字只證明數過、不承載意義，成員各自的方向（設計、架構、改舊碼）才是讀者要用的資訊；全稱比較（「取得成本高於其餘各本」——宣稱對全體成立、方向不參與意義）與已具名集合的向後回指不觸發。成員多到列不動的時候，該修的是分類規劃（拆出讀者判斷得了的分組）、不是把引用留成數字——列舉困難是分類壞掉的訊號，不是省略的授權。&lt;/li>
&lt;li>&lt;strong>對比補全、結論寫到操作層。&lt;/strong> 「留下的都是 X」補上「Y 沒有留下」；「要分開的是 A、不是 B」補上「所以做的時候該怎樣」。驗收問句：讀者拿這句話能不能決定下一步動作。對比的軸也要寫明：壓縮的二字對舉把拆軸的工作留給讀者——「差別是有無而非程度」的兩邊是不同性質的軸，展開成「差別是有或無而非程度上的高低」，二元軸寫成選言、量軸寫出刻度。&lt;/li>
&lt;li>&lt;strong>具體實體當主詞。&lt;/strong> 解釋句的主詞優先給書、人、系統、資料這類讀者指認得出的東西；「這條分界 / 這個結構 / 這條線」要當主詞，先確認它在前文有完整的定義句。用固定欄位組寫作時特別掃一次段首——欄位名（「讀得出價值的前提是…」）當主詞是這一類的高頻形態，改成被描述的實體當主詞、欄位對應由內容自己承載。&lt;/li>
&lt;li>&lt;strong>並列定義各自成段、旁註後置。&lt;/strong> 一段一命題；跟主線推導無依賴關係的觀察句，移到該段推導走完之後。&lt;/li>
&lt;li>&lt;strong>命中是候選、不是判決。&lt;/strong> 破折號本身合法——下半句立即給出解碼材料的破折號是節奏選擇；「」內引用、明示的反例對照也合規。判定只看一件事：解碼材料在不在讀者已讀的文本裡。&lt;strong>同一個詞可以兩處兩判&lt;/strong>：實測同一篇裡「起點書」出現多次——「它當不了起點書」合法，因為第一個章節的標題「起點是《某書》」已經定義了這個角色、向後回指拿得到綁定；「該篇的起點書」違規，因為綁定在另一份文件裡。掃描抓的是詞面、判定看的是綁定位置，兩步不能合併。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="跟其他原則的關係">跟其他原則的關係&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>原則&lt;/th>
 &lt;th>關係&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="../sentence-self-sufficiency-by-consumption-unit/">#261 語句要在它的消費單位內資訊自足&lt;/a>&lt;/td>
 &lt;td>本卡限定它的敘事位豁免——#261 說敘事位可依賴鄰句、壓縮合法，本卡補上方向條件：可依賴的是&lt;strong>已讀過的&lt;/strong>鄰句，依賴後文或作者地圖不在豁免內。單句消費位的四條件管句內，本卡管敘事位的句間依賴方向&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../reference-by-semantic-title-not-number/">#155 引用章節用語意標題、不用位置編號&lt;/a>&lt;/td>
 &lt;td>同機制的篇內形態——#155 管跨段跨檔引用的編號、本卡管同篇內對實體的位置與數量指涉（前兩本 / 另外兩本 / 後者），derivation vs fact 的判準共用；本例的雙重數錯是 misdirected 引用的活體示範、而且不需要等結構重排&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../write-for-readers-not-audiences/">#254 寫給帶問題來的讀者、不用演講姿態&lt;/a>&lt;/td>
 &lt;td>同族的語域混入——#254 抓演講技巧（問句標題、懸念弧、三幕劇）、本卡抓書評體壓縮（位置指涉、轉喻、密度審美），借進來的文體不同、代價同樣落在資訊結構；破折號懸念是懸念弧的句內微型形態&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../compressed-conclusion-strips-derivation/">#210 壓縮結論剝奪推導路徑&lt;/a>&lt;/td>
 &lt;td>相鄰的壓縮對象——#210 壓掉的是規則的推導（讀者能照做、不能調整），本卡壓掉的是命題的解碼材料（讀者當場接不起來、要回讀或自行補推論）。兩卡的修法都是把被壓掉的放回去、不是把句子寫長&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../verify-by-recognition-not-recitation/">#272 教學內容不預設考核情境&lt;/a>&lt;/td>
 &lt;td>借來的讀者框架家族第三個成員——本卡修資訊結構（解碼材料的位置）、#272 修情境預設（讀者被放在哪個位置：「說得出 / 答得出」把讀者放進不存在的考核對答）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../content-pressure-resolves-by-expansion-not-compression/">#262 內容超出容器時擴充結構、不壓縮內容&lt;/a>&lt;/td>
 &lt;td>同為「展開、不壓縮」家族、壓縮動機不同——#262 的壓縮由容器形狀先驗驅動（裁內容遷就表格格與標題長度），本卡的壓縮由密度審美驅動（沒有容器壓力也會發生）。出口同在擴充：那裡擴充結構、這裡把解碼材料寫回句內&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="判讀徵兆">判讀徵兆&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>訊號&lt;/th>
 &lt;th>該做的事&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>句中出現「前 N 個 / 另外 N 個 / 後者 / 這一側」而對象未具名&lt;/td>
 &lt;td>換成全名；順手驗一次計數——位置與數量是作者地圖的衍生值、常常是錯的&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>集合指涉只給數字（其他三篇）、計數正確&lt;/td>
 &lt;td>仍要給成員或方向——數字不承載意義；列不動時修分類規劃、不是留數字&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>對比句只寫了一面（「留下的都是 X」）&lt;/td>
 &lt;td>把另一面寫出來；被篩掉的那一半通常正是論證要用的&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>對比軸壓成二字對舉（有無 / 多寡 / 高低）&lt;/td>
 &lt;td>展開讓兩軸各自現形：二元寫成選言（有或無）、量軸寫出刻度（程度上的高低）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>「要 X 的是 A、不是 B」收尾、而下一步操作沒寫&lt;/td>
 &lt;td>補上操作含義；驗收是讀者拿這句能不能決定下一步動作&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>抽象名詞（分界 / 結構 / 這條線）當解釋句主詞&lt;/td>
 &lt;td>換具體實體當主詞；抽象名詞要當主詞、先確認前文有它的定義句&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>固定欄位組的欄位名起句當主詞（「X 的前提是…」）&lt;/td>
 &lt;td>高頻形態；被描述的實體當主詞、欄位對應由內容自己承載&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>一段裡有兩個以上並列定義、或旁註插在推導中間&lt;/td>
 &lt;td>拆段、一段一命題；旁註移到主線走完之後&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>讀者反應是「讀起來漂亮、但要讀兩次」&lt;/td>
 &lt;td>逐句跑解碼測試：只靠已讀內容能不能復原指涉對象、對比兩面、操作含義&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>破折號後才揭曉句子的核心內容&lt;/td>
 &lt;td>候選不是判決——下半句立即給材料是節奏選擇、材料缺席才違規&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>角色詞（起點書 / 主線那條）指涉的綁定在另一份文件裡&lt;/td>
 &lt;td>跨頁形態、讀完本篇也解不開；查證後具名，同一角色詞在定義它的篇內合法&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>準備整篇套用本卡、擔心展開讓文章膨脹&lt;/td>
 &lt;td>價格分層：最高頻的位置指涉修法是代換不加字，實測全篇只多百分之五&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description><content:encoded><![CDATA[<h2 id="論述基礎與限制">論述基礎與限制</h2>
<p>本卡來自一篇書單導言的兩版對照。原稿由 LLM 生成，兩段共約 320 字，命題完整而讀法緊湊；修訂版由使用者改寫、字數約多兩成，並被指定為後續寫作的風格基準。兩版的命題集合幾乎相同——修訂沒有增刪論點，差異全部落在<strong>解碼成本的分配</strong>上：原稿的每一個壓縮手法，修訂版都有一個對應的展開動作。</p>
<p>證據強度：單一實例、單一文體（書單導言）、單一組作者與改寫者，說明得了形狀、說明不了發生率。其中一項不依賴樣本數：原稿的位置指涉自身就數錯了（見反模式一），這是機制推得出來的失效、不是統計觀察。</p>
<p>第二批證據來自同一篇文章的全篇改寫（立卡後依同一判準掃完其餘七個章節）：共修約 15 處，<strong>位置指涉一類約 10 處、佔比最高</strong>——「前者 / 後者」「第一條 / 後面三條」、當作角色詞散用的「起點書」、以及一處指涉對象在另一份文件裡的跨頁形態；計數錯誤在全篇出現第三次（「另外三本都不碰」實為四本），三次計數三次全錯、分佈在兩個不同章節。單邊對比、隱式結論、破折號懸念各只有一到三處。發生率的宣稱仍限於這一篇；分佈形狀（位置指涉主導）在別的文章要重新量。</p>
<p>限制：修訂版自身的部分措辭偏好（口語連接詞、否定式收尾句）不在本卡的主張範圍——本卡抽的是解碼成本的分配原則，不是那份修訂的全部字面。</p>
<hr>
<h2 id="核心原則">核心原則</h2>
<p><strong>教學敘事的每一句，解碼所需的材料必須已經在讀者手上——已讀過的正文加上模組基線；動用讀者還沒讀到的後文、或只存在於作者腦中的全篇地圖，都是把作者側的成本轉嫁給讀者。</strong> 判定問句可逐句執行：讀者線性首讀讀到這一句時，能不能當場復原完整命題——指涉的對象是誰、對比的兩面是什麼、結論的操作含義是什麼。復原不了的那一項，就是被壓掉的解碼材料。</p>
<p>機制在生成端：作者（人或 LLM）寫敘事時持有全篇地圖——知道每個條目是什麼、論證往哪收——而文學化的壓縮手法（位置指涉、轉喻、單邊對比、破折號懸念）全部預設讀者共享這張地圖。書評與文藝散文可以這樣寫，因為那些文體的讀者接受重讀與回味，壓縮換來的密度是文體價值的一部分；教學內容的讀者帶問題來、線性首讀，解碼失敗直接折損交付。這是一種語域混入：借來的是書評體的密度審美，代價落在資訊結構上。</p>
<p>展開的價格是字數，而價格<strong>依反模式的類型分層</strong>：具名替換（修位置指涉與轉喻）幾乎不加字——把「前兩本」換成兩個書名是代換、不是擴寫；補全對比、寫出操作結論、展開破折號懸念才真的花字數。實測同一篇文章：隱式結論密集的導言兩段改寫後多約兩成，全篇（違規以位置指涉為主）改寫後只多百分之五。這代表最高頻的違規恰好是最便宜的修法，「展開會讓文章膨脹」不構成保留壓縮的理由；花掉的那些字數是把解碼成本從讀者側移回作者側的價格，不是浪費——敘事位的精簡義務本來就低於檢索鍵位（title / description），見 <a href="../sentence-self-sufficiency-by-consumption-unit/">#261</a> 的消費單位分工。</p>
<hr>
<h2 id="反模式">反模式</h2>
<p>四種手法在原稿裡各有可指認的句子。共同結構是：句子語法完整、通順、單獨讀不出毛病，缺的材料只有拿讀者的視角走一次線性首讀才會現形——這也是它們能通過同源審查的原因。</p>
<p><strong>一、位置與數量指涉。</strong> 原稿寫「本主題前兩本為什麼並收」「另外兩本各補一個分界之外的角色」。解碼「前兩本」要求讀者先讀完後文全部條目、再回頭對照——而且對照會失敗：所指的兩本書在篇內排第一與第三個條目，「前兩本」是作者腦中「兩本主線、其餘輔助」那張地圖上的位置，不是文本上的位置。「另外兩本」同樣錯：剩下的條目實際是三本書（其中兩本合佔一個條目）。全篇掃完後同型錯誤出現第三次：另一個章節寫「本主題另外三本都不碰的那一側」，其餘實際是四本——同一篇裡三次計數三次全錯、分佈在兩個章節。位置與數量都是排列的衍生值（derivation）、不是實體自身的事實（fact），跟 <a href="../reference-by-semantic-title-not-number/">#155</a> 的編號引用同一個機制——差別在 #155 的錯位要等結構重排才發生，這裡的地圖與文本從第一版就沒對齊過，連作者自己都維護不出正確值。修訂版的動作是具名：「《漫步華爾街》與《智慧型投資人》都探討這兩個問題」，指涉錯位從機制上無從發生。</p>
<p>位置指涉有一個極端形態：<strong>指涉對象在另一份文件裡</strong>。同一篇的另一處寫「這個前提由會計那一篇承接，該篇的起點書提供的程度就夠」——「該篇的起點書」是哪一本，解碼材料在另一頁的第一個章節裡，讀者要離開本文、打開那一頁、找到它的起點條目才拿得到。修法相同：查證後具名（《財報就像一本故事書》）。篇內的位置指涉至少還能靠讀完本篇解碼，跨頁形態連這條路都沒有。</p>
<p><strong>二、轉喻代替命名。</strong> 原稿寫「一份是報酬數字本身的校準，一份是判斷者這一側」——用角色描述加方位隱喻指涉具體的書，讀者拿到的是謎面，謎底在幾個章節之後。修訂版直說對象加角色：「《窮查理的普通常識》處理做判斷的人的心理」。角色描述可以保留，它要跟名字同時在場、而不是代替名字。</p>
<p><strong>三、單邊對比與隱式結論。</strong> 原稿寫「留下文字的都是重現成功的那些」——對立面（重現失敗的沒有留下文字，所以紀錄本身偏向成功）留給讀者補；又寫「要分開的是評估它們的證據，不是決定本身」——對比本身正確，而它的操作含義（做決定時要同時考慮兩邊）整個留白，讀者拿到一組對比、拿不到下一步。修訂版把兩處都寫完：「留下文字的都是可複製結果，排除掉不可複製的結果」；「要分開評估兩種決策的指標，但是做決定的時候不應該單獨只考慮一邊的問題」。這跟 <a href="../compressed-conclusion-strips-derivation/">#210</a> 是相鄰的兩種壓縮：那卡壓掉的是結論的推導、讀者能照做而不能調整；這裡壓掉的是命題的另一半、讀者當場就接不起來。</p>
<p><strong>四、名詞化主詞與破折號懸念。</strong> 原稿寫「這條分界解釋的是本主題前兩本為什麼並收」——抽象名詞（分界）當解釋句的主詞、具體的書降成受詞子句裡的位置指涉；又寫「選擇的持續有效性要的是另一種東西——」——先立一個空位、破折號之後才揭曉。修訂版讓具體實體當主詞（書探討問題、紀錄經過篩選）、用逗號順接直接給內容。</p>
<p>名詞化主詞有一個高頻來源：<strong>框架欄位名滲進句子當主詞</strong>。用固定欄位組寫作時（本例是每本書共用的四項描述框架），欄位名會直接被拿來起句——「讀得出價值的前提幾乎沒有」。使用者的修訂讓書當主詞：「這本書幾乎不需任何前置作業」；框架的涵蓋不靠標籤在句子裡現身，內容本身就認得出對應哪一項。同一句的後半是隱式結論的又一例：「適合分段讀而非通讀」是抽象的讀法標籤，讀者拿不到行動；修訂版寫成可執行的判斷——「不需要通讀，即使只讀其中一個章節都會有幫助」。</p>
<p><strong>五（結構層）、並列項擠單段、旁註插斷主線。</strong> 原稿把配置的定義、選擇的定義、兩者不獨立的論證、結論全部放在同一段；「多數投資書把篇幅放在選擇上」這句旁註插在「證據分界 → 選書理由」的推導中間。修訂版把兩個並列定義各自獨立成段、一段一命題，旁註移到主線走完之後當收尾。</p>
<hr>
<h2 id="修法">修法</h2>
<ol>
<li><strong>逐句跑解碼測試。</strong> 讀者只靠已讀過的正文加模組基線，能不能復原「指涉對象、對比兩面、操作含義」三項。缺哪一項補哪一項，補的位置在句內或句前、不在後文。</li>
<li><strong>指涉具名。</strong> 首次出現用全名（書名、人名、概念名），同段之後可用短稱（Malkiel 那本）。向後的近距回指（「上一段的兩個條件」）合法——解碼材料已在讀者手上；跨節回指仍建議具名。位置與數量詞（前 N 個、另外 N 個）出現時順手驗一次計數——它們是作者地圖的衍生值，常常是錯的。回指剛提過的對象用近指「這些」；「那幾條」同時犯兩件事——遠指配近距離的先行詞、「幾條」又多宣告一次計數。<strong>集合指涉（其他三篇 / 另外三本）即使計數正確也要給出成員或方向</strong>——數字只證明數過、不承載意義，成員各自的方向（設計、架構、改舊碼）才是讀者要用的資訊；全稱比較（「取得成本高於其餘各本」——宣稱對全體成立、方向不參與意義）與已具名集合的向後回指不觸發。成員多到列不動的時候，該修的是分類規劃（拆出讀者判斷得了的分組）、不是把引用留成數字——列舉困難是分類壞掉的訊號，不是省略的授權。</li>
<li><strong>對比補全、結論寫到操作層。</strong> 「留下的都是 X」補上「Y 沒有留下」；「要分開的是 A、不是 B」補上「所以做的時候該怎樣」。驗收問句：讀者拿這句話能不能決定下一步動作。對比的軸也要寫明：壓縮的二字對舉把拆軸的工作留給讀者——「差別是有無而非程度」的兩邊是不同性質的軸，展開成「差別是有或無而非程度上的高低」，二元軸寫成選言、量軸寫出刻度。</li>
<li><strong>具體實體當主詞。</strong> 解釋句的主詞優先給書、人、系統、資料這類讀者指認得出的東西；「這條分界 / 這個結構 / 這條線」要當主詞，先確認它在前文有完整的定義句。用固定欄位組寫作時特別掃一次段首——欄位名（「讀得出價值的前提是…」）當主詞是這一類的高頻形態，改成被描述的實體當主詞、欄位對應由內容自己承載。</li>
<li><strong>並列定義各自成段、旁註後置。</strong> 一段一命題；跟主線推導無依賴關係的觀察句，移到該段推導走完之後。</li>
<li><strong>命中是候選、不是判決。</strong> 破折號本身合法——下半句立即給出解碼材料的破折號是節奏選擇；「」內引用、明示的反例對照也合規。判定只看一件事：解碼材料在不在讀者已讀的文本裡。<strong>同一個詞可以兩處兩判</strong>：實測同一篇裡「起點書」出現多次——「它當不了起點書」合法，因為第一個章節的標題「起點是《某書》」已經定義了這個角色、向後回指拿得到綁定；「該篇的起點書」違規，因為綁定在另一份文件裡。掃描抓的是詞面、判定看的是綁定位置，兩步不能合併。</li>
</ol>
<hr>
<h2 id="跟其他原則的關係">跟其他原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../sentence-self-sufficiency-by-consumption-unit/">#261 語句要在它的消費單位內資訊自足</a></td>
          <td>本卡限定它的敘事位豁免——#261 說敘事位可依賴鄰句、壓縮合法，本卡補上方向條件：可依賴的是<strong>已讀過的</strong>鄰句，依賴後文或作者地圖不在豁免內。單句消費位的四條件管句內，本卡管敘事位的句間依賴方向</td>
      </tr>
      <tr>
          <td><a href="../reference-by-semantic-title-not-number/">#155 引用章節用語意標題、不用位置編號</a></td>
          <td>同機制的篇內形態——#155 管跨段跨檔引用的編號、本卡管同篇內對實體的位置與數量指涉（前兩本 / 另外兩本 / 後者），derivation vs fact 的判準共用；本例的雙重數錯是 misdirected 引用的活體示範、而且不需要等結構重排</td>
      </tr>
      <tr>
          <td><a href="../write-for-readers-not-audiences/">#254 寫給帶問題來的讀者、不用演講姿態</a></td>
          <td>同族的語域混入——#254 抓演講技巧（問句標題、懸念弧、三幕劇）、本卡抓書評體壓縮（位置指涉、轉喻、密度審美），借進來的文體不同、代價同樣落在資訊結構；破折號懸念是懸念弧的句內微型形態</td>
      </tr>
      <tr>
          <td><a href="../compressed-conclusion-strips-derivation/">#210 壓縮結論剝奪推導路徑</a></td>
          <td>相鄰的壓縮對象——#210 壓掉的是規則的推導（讀者能照做、不能調整），本卡壓掉的是命題的解碼材料（讀者當場接不起來、要回讀或自行補推論）。兩卡的修法都是把被壓掉的放回去、不是把句子寫長</td>
      </tr>
      <tr>
          <td><a href="../verify-by-recognition-not-recitation/">#272 教學內容不預設考核情境</a></td>
          <td>借來的讀者框架家族第三個成員——本卡修資訊結構（解碼材料的位置）、#272 修情境預設（讀者被放在哪個位置：「說得出 / 答得出」把讀者放進不存在的考核對答）</td>
      </tr>
      <tr>
          <td><a href="../content-pressure-resolves-by-expansion-not-compression/">#262 內容超出容器時擴充結構、不壓縮內容</a></td>
          <td>同為「展開、不壓縮」家族、壓縮動機不同——#262 的壓縮由容器形狀先驗驅動（裁內容遷就表格格與標題長度），本卡的壓縮由密度審美驅動（沒有容器壓力也會發生）。出口同在擴充：那裡擴充結構、這裡把解碼材料寫回句內</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>句中出現「前 N 個 / 另外 N 個 / 後者 / 這一側」而對象未具名</td>
          <td>換成全名；順手驗一次計數——位置與數量是作者地圖的衍生值、常常是錯的</td>
      </tr>
      <tr>
          <td>集合指涉只給數字（其他三篇）、計數正確</td>
          <td>仍要給成員或方向——數字不承載意義；列不動時修分類規劃、不是留數字</td>
      </tr>
      <tr>
          <td>對比句只寫了一面（「留下的都是 X」）</td>
          <td>把另一面寫出來；被篩掉的那一半通常正是論證要用的</td>
      </tr>
      <tr>
          <td>對比軸壓成二字對舉（有無 / 多寡 / 高低）</td>
          <td>展開讓兩軸各自現形：二元寫成選言（有或無）、量軸寫出刻度（程度上的高低）</td>
      </tr>
      <tr>
          <td>「要 X 的是 A、不是 B」收尾、而下一步操作沒寫</td>
          <td>補上操作含義；驗收是讀者拿這句能不能決定下一步動作</td>
      </tr>
      <tr>
          <td>抽象名詞（分界 / 結構 / 這條線）當解釋句主詞</td>
          <td>換具體實體當主詞；抽象名詞要當主詞、先確認前文有它的定義句</td>
      </tr>
      <tr>
          <td>固定欄位組的欄位名起句當主詞（「X 的前提是…」）</td>
          <td>高頻形態；被描述的實體當主詞、欄位對應由內容自己承載</td>
      </tr>
      <tr>
          <td>一段裡有兩個以上並列定義、或旁註插在推導中間</td>
          <td>拆段、一段一命題；旁註移到主線走完之後</td>
      </tr>
      <tr>
          <td>讀者反應是「讀起來漂亮、但要讀兩次」</td>
          <td>逐句跑解碼測試：只靠已讀內容能不能復原指涉對象、對比兩面、操作含義</td>
      </tr>
      <tr>
          <td>破折號後才揭曉句子的核心內容</td>
          <td>候選不是判決——下半句立即給材料是節奏選擇、材料缺席才違規</td>
      </tr>
      <tr>
          <td>角色詞（起點書 / 主線那條）指涉的綁定在另一份文件裡</td>
          <td>跨頁形態、讀完本篇也解不開；查證後具名，同一角色詞在定義它的篇內合法</td>
      </tr>
      <tr>
          <td>準備整篇套用本卡、擔心展開讓文章膨脹</td>
          <td>價格分層：最高頻的位置指涉修法是代換不加字，實測全篇只多百分之五</td>
      </tr>
  </tbody>
</table>
]]></content:encoded></item><item><title>寫作除了表達意義，還要設計閱讀的節奏、壓力與引導</title><link>https://tarrragon.github.io/blog/report/writing-designs-the-reading-process/</link><pubDate>Fri, 21 Aug 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/report/writing-designs-the-reading-process/</guid><description>&lt;h2 id="論述基礎與限制">論述基礎與限制&lt;/h2>
&lt;p>本卡是一系列修正的收攏。同一批書單改寫與全站清掃先後立了四張卡——#270（解碼材料要在已讀文本裡）、#271（編輯後台不進正文）、#272（不預設考核情境）、#234 的判準一般化——各自處理一個可指認的違規形態。使用者隨後指出這些修正處理的是同一個問題：&lt;strong>閱讀的節奏與讀者的引導&lt;/strong>。收攏不是重述：它帶出三個先前各卡沒有明說的機制——節奏的語言基礎（單音節）、壓迫力的疊加結構（密度乘指涉）、引導的正形（主動提醒與分層切入點）。&lt;/p>
&lt;p>限制：單音節節奏論是語言學層的機制陳述，本站沒有做過閱讀速度或負擔的量測；「壓迫力」的診斷來自使用者對原稿的直接閱讀經驗，樣本是一位讀者、一種文體。三個設計面的劃分從這一批修正歸納，別的寫作問題可能落在三面之外。&lt;/p>
&lt;hr>
&lt;h2 id="核心原則">核心原則&lt;/h2>
&lt;p>&lt;strong>文章同時有兩個設計對象：意義（說什麼）與閱讀過程（讀者怎麼讀過去）。&lt;/strong> 意義正確而閱讀過程沒有被設計的文章，每一行都讀得懂、整篇讀下來卻累——負擔不出現在任何一句上，出現在句與句的累積裡。閱讀過程有三個設計面。&lt;/p>
&lt;h3 id="節奏字數是節奏資源不是壓縮目標">節奏：字數是節奏資源，不是壓縮目標&lt;/h3>
&lt;p>中文是單音節語言，同樣的語意用的音節比多音節拼音文字少，朗讀與閱讀的節奏更快。需要讀者停下來思考的位置，刻意加字延長閱讀時間是合法且必要的手段——「不僅是」寫成「不僅僅是」、「差別是有無」寫成「差別是有或無而非程度上的高低」，多出來的字不承載新資訊，承載的是思考時間。&lt;/p>
&lt;p>這條翻轉了「精簡」的預設方向：字數不是預設要壓縮的成本。精簡的義務只在檢索鍵位（title、description、表格鍵欄——&lt;a href="../sentence-self-sufficiency-by-consumption-unit/">#261&lt;/a> 的消費單位分工）；敘事位的字數服務節奏，該慢的位置就加字。&lt;a href="../decodable-from-text-already-read/">#270&lt;/a> 的書評體密度審美在這一軸上是雙重違規——它同時抽走解碼材料與思考時間。&lt;/p>
&lt;h3 id="壓力密度與指涉是相乘的負擔">壓力：密度與指涉是相乘的負擔&lt;/h3>
&lt;p>高資訊密度的句子要求高理解力；不指稱人事物（位置指涉、轉喻、長代詞鏈）要求高記憶力——讀者要一路攜帶未解決的指涉往下讀。兩者疊加時每一行同時收兩種稅，閱讀負擔以壓迫力的形式出現。&lt;a href="../decodable-from-text-already-read/">#270&lt;/a> 的解碼測試管單句；本卡補的是總量視角——每一句都過得了解碼測試的文章，仍可能因為高密度句連續出現而整篇壓迫。診斷問句：讀到這一行時，讀者手上有幾個還沒解決的指涉、上一次可以喘口氣的句子在幾行之前。&lt;/p>
&lt;h3 id="引導主動提醒與分層切入點不要求讀者自我檢討">引導：主動提醒與分層切入點，不要求讀者自我檢討&lt;/h3>
&lt;p>文章不可能要求讀者時時自我檢討。用到前置概念的位置，正形是&lt;strong>主動提醒&lt;/strong>：說出這一段會用到什麼（「讀它會用到實質報酬與兩種平均的差異」）、告訴讀者可以去哪裡回顧或補充（「還不熟的話可以先從某本把概念建立起來，再回來讀」）。要求讀者自我評估（「讀之前先想一下我是否具備 X」）比考核宣判溫和，仍然把檢查的工作派給讀者——預設形態是文章自己把提醒與路由做完。&lt;/p>
&lt;p>專業識讀的落差用&lt;strong>一層一層的切入點&lt;/strong>承接：術語分級（行內展開 / 連卡 / 裸用）、知識卡、讀者路線，每一層都給下一層的入口，讓不同背景的讀者各自找得到能進入的位置。可及性的底線：即使是高專業內容，也不寫成只有同領域小範圍頂尖讀者才能讀——語句與段落的容易理解跟銜接是最基本的要求，不是對深度的妥協；經驗差距用案例與分層補、技術深度不降。&lt;/p>
&lt;hr>
&lt;h2 id="對審查的含義">對審查的含義&lt;/h2>
&lt;p>冷讀 frame 問「看不看得懂」，量的是理解的可能性；本卡加兩問，量閱讀的成本與斷點：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>讀起來累不累&lt;/strong>（節奏與壓力）：這一段要讀者同時記住幾個未具名的指涉；連續幾行是高密度句、思考時間有沒有被襯出來。&lt;/li>
&lt;li>&lt;strong>卡住的讀者有沒有被接住&lt;/strong>（引導）：用到前置概念的位置有沒有主動提醒與路由；識讀落差有沒有分層的切入點，還是一道門檻直接把讀者擋在外面。&lt;/li>
&lt;/ol>
&lt;p>這兩問已落地為多輪審查冷讀 frame 的擴充維度。「看得懂」通過而讀者仍反應累或跟不上時，缺的通常是這兩問。&lt;/p>
&lt;hr>
&lt;h2 id="跟其他原則的關係">跟其他原則的關係&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>原則&lt;/th>
 &lt;th>關係&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="../decodable-from-text-already-read/">#270 敘事的解碼材料要在讀者已讀的文本裡&lt;/a>&lt;/td>
 &lt;td>壓力面的單句機制——#270 的解碼測試逐句執行，本卡補逐行累積的總量視角；#270 的密度審美在節奏軸上同時是違規（抽走思考時間）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../verify-by-recognition-not-recitation/">#272 教學內容不預設考核情境&lt;/a>&lt;/td>
 &lt;td>引導面的框架前提——#272 修掉考核框架，本卡給出引導的正形：主動提醒加路由是預設、自我評估問句是可選變體不是預設&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../sentence-self-sufficiency-by-consumption-unit/">#261 語句要在它的消費單位內資訊自足&lt;/a>&lt;/td>
 &lt;td>節奏軸限定它的精簡義務——精簡只在檢索鍵位；敘事位的字數服務節奏、刻意加字合法，「總長」在三角取捨裡的權重因此再降一級&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../write-for-readers-not-audiences/">#254 寫給帶問題來的讀者、不用演講姿態&lt;/a>&lt;/td>
 &lt;td>借來的讀者框架家族的判定（先問讀者實際處在什麼情境）是本卡的前提；本卡在情境判定之上給了閱讀體驗的三個設計軸&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="../assertion-list-needs-reader-walkthrough/">#255 讀者重建不了的斷言清單，展開成讀者位置的走查&lt;/a>&lt;/td>
 &lt;td>引導面的段落層機制——走查把讀者放到使用產物的位置逐步帶過去，正是「文章把工作做完、不派給讀者」在推導段的形態&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>分層切入點的完整機制（術語角色 × 基線的判定矩陣）在&lt;a href="https://tarrragon.github.io/blog/record/term-explanation-layering-methodology/" data-link-title="術語解釋分層方法論：基線宣告與行內 / 連卡 / 裸用三級" data-link-desc="文章裡的專業術語該解釋到什麼程度、入門篇跟深度篇的解釋量怎麼分級時，用「術語角色 × 前置知識基線」判定矩陣決定行內展開、連知識卡或裸用；含基線的操作化定義、SOLID 對應、缺卡 audit 流程與 financial-analysis 模組的實測">術語解釋分層方法論&lt;/a>；讀者定位不降深度的取向同 AGENTS 原則六（讀者定位用內容體現）。&lt;/p>
&lt;hr>
&lt;h2 id="判讀徵兆">判讀徵兆&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>訊號&lt;/th>
 &lt;th>該做的事&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>連續多行高密度句、沒有襯字與停頓&lt;/td>
 &lt;td>節奏過快——在要讀者思考的位置刻意加字延長閱讀時間&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>讀到某一行要同時記住兩個以上未具名的指涉&lt;/td>
 &lt;td>壓迫力——具名、拆段、或把指涉就地解決&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>段落用到前置概念而沒有回顧提醒與路由&lt;/td>
 &lt;td>補主動提醒：這裡會用到什麼、可以去哪裡建立概念、再回來讀&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>檢核段要求讀者自我檢討或自我評估&lt;/td>
 &lt;td>換成主動提醒——文章自己把提醒與路由做完，檢查的工作不派給讀者&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>文章只有同領域資深讀者讀得動、理由是「內容本來就難」&lt;/td>
 &lt;td>難的是內容不是語句——語句與銜接先修到容易理解，識讀落差用分層切入點承接&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>審查回報「看得懂」而讀者反應「讀起來累」&lt;/td>
 &lt;td>冷讀只量了理解——補「累不累」（節奏壓力）與「有沒有被接住」（引導）兩問&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description><content:encoded><![CDATA[<h2 id="論述基礎與限制">論述基礎與限制</h2>
<p>本卡是一系列修正的收攏。同一批書單改寫與全站清掃先後立了四張卡——#270（解碼材料要在已讀文本裡）、#271（編輯後台不進正文）、#272（不預設考核情境）、#234 的判準一般化——各自處理一個可指認的違規形態。使用者隨後指出這些修正處理的是同一個問題：<strong>閱讀的節奏與讀者的引導</strong>。收攏不是重述：它帶出三個先前各卡沒有明說的機制——節奏的語言基礎（單音節）、壓迫力的疊加結構（密度乘指涉）、引導的正形（主動提醒與分層切入點）。</p>
<p>限制：單音節節奏論是語言學層的機制陳述，本站沒有做過閱讀速度或負擔的量測；「壓迫力」的診斷來自使用者對原稿的直接閱讀經驗，樣本是一位讀者、一種文體。三個設計面的劃分從這一批修正歸納，別的寫作問題可能落在三面之外。</p>
<hr>
<h2 id="核心原則">核心原則</h2>
<p><strong>文章同時有兩個設計對象：意義（說什麼）與閱讀過程（讀者怎麼讀過去）。</strong> 意義正確而閱讀過程沒有被設計的文章，每一行都讀得懂、整篇讀下來卻累——負擔不出現在任何一句上，出現在句與句的累積裡。閱讀過程有三個設計面。</p>
<h3 id="節奏字數是節奏資源不是壓縮目標">節奏：字數是節奏資源，不是壓縮目標</h3>
<p>中文是單音節語言，同樣的語意用的音節比多音節拼音文字少，朗讀與閱讀的節奏更快。需要讀者停下來思考的位置，刻意加字延長閱讀時間是合法且必要的手段——「不僅是」寫成「不僅僅是」、「差別是有無」寫成「差別是有或無而非程度上的高低」，多出來的字不承載新資訊，承載的是思考時間。</p>
<p>這條翻轉了「精簡」的預設方向：字數不是預設要壓縮的成本。精簡的義務只在檢索鍵位（title、description、表格鍵欄——<a href="../sentence-self-sufficiency-by-consumption-unit/">#261</a> 的消費單位分工）；敘事位的字數服務節奏，該慢的位置就加字。<a href="../decodable-from-text-already-read/">#270</a> 的書評體密度審美在這一軸上是雙重違規——它同時抽走解碼材料與思考時間。</p>
<h3 id="壓力密度與指涉是相乘的負擔">壓力：密度與指涉是相乘的負擔</h3>
<p>高資訊密度的句子要求高理解力；不指稱人事物（位置指涉、轉喻、長代詞鏈）要求高記憶力——讀者要一路攜帶未解決的指涉往下讀。兩者疊加時每一行同時收兩種稅，閱讀負擔以壓迫力的形式出現。<a href="../decodable-from-text-already-read/">#270</a> 的解碼測試管單句；本卡補的是總量視角——每一句都過得了解碼測試的文章，仍可能因為高密度句連續出現而整篇壓迫。診斷問句：讀到這一行時，讀者手上有幾個還沒解決的指涉、上一次可以喘口氣的句子在幾行之前。</p>
<h3 id="引導主動提醒與分層切入點不要求讀者自我檢討">引導：主動提醒與分層切入點，不要求讀者自我檢討</h3>
<p>文章不可能要求讀者時時自我檢討。用到前置概念的位置，正形是<strong>主動提醒</strong>：說出這一段會用到什麼（「讀它會用到實質報酬與兩種平均的差異」）、告訴讀者可以去哪裡回顧或補充（「還不熟的話可以先從某本把概念建立起來，再回來讀」）。要求讀者自我評估（「讀之前先想一下我是否具備 X」）比考核宣判溫和，仍然把檢查的工作派給讀者——預設形態是文章自己把提醒與路由做完。</p>
<p>專業識讀的落差用<strong>一層一層的切入點</strong>承接：術語分級（行內展開 / 連卡 / 裸用）、知識卡、讀者路線，每一層都給下一層的入口，讓不同背景的讀者各自找得到能進入的位置。可及性的底線：即使是高專業內容，也不寫成只有同領域小範圍頂尖讀者才能讀——語句與段落的容易理解跟銜接是最基本的要求，不是對深度的妥協；經驗差距用案例與分層補、技術深度不降。</p>
<hr>
<h2 id="對審查的含義">對審查的含義</h2>
<p>冷讀 frame 問「看不看得懂」，量的是理解的可能性；本卡加兩問，量閱讀的成本與斷點：</p>
<ol>
<li><strong>讀起來累不累</strong>（節奏與壓力）：這一段要讀者同時記住幾個未具名的指涉；連續幾行是高密度句、思考時間有沒有被襯出來。</li>
<li><strong>卡住的讀者有沒有被接住</strong>（引導）：用到前置概念的位置有沒有主動提醒與路由；識讀落差有沒有分層的切入點，還是一道門檻直接把讀者擋在外面。</li>
</ol>
<p>這兩問已落地為多輪審查冷讀 frame 的擴充維度。「看得懂」通過而讀者仍反應累或跟不上時，缺的通常是這兩問。</p>
<hr>
<h2 id="跟其他原則的關係">跟其他原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../decodable-from-text-already-read/">#270 敘事的解碼材料要在讀者已讀的文本裡</a></td>
          <td>壓力面的單句機制——#270 的解碼測試逐句執行，本卡補逐行累積的總量視角；#270 的密度審美在節奏軸上同時是違規（抽走思考時間）</td>
      </tr>
      <tr>
          <td><a href="../verify-by-recognition-not-recitation/">#272 教學內容不預設考核情境</a></td>
          <td>引導面的框架前提——#272 修掉考核框架，本卡給出引導的正形：主動提醒加路由是預設、自我評估問句是可選變體不是預設</td>
      </tr>
      <tr>
          <td><a href="../sentence-self-sufficiency-by-consumption-unit/">#261 語句要在它的消費單位內資訊自足</a></td>
          <td>節奏軸限定它的精簡義務——精簡只在檢索鍵位；敘事位的字數服務節奏、刻意加字合法，「總長」在三角取捨裡的權重因此再降一級</td>
      </tr>
      <tr>
          <td><a href="../write-for-readers-not-audiences/">#254 寫給帶問題來的讀者、不用演講姿態</a></td>
          <td>借來的讀者框架家族的判定（先問讀者實際處在什麼情境）是本卡的前提；本卡在情境判定之上給了閱讀體驗的三個設計軸</td>
      </tr>
      <tr>
          <td><a href="../assertion-list-needs-reader-walkthrough/">#255 讀者重建不了的斷言清單，展開成讀者位置的走查</a></td>
          <td>引導面的段落層機制——走查把讀者放到使用產物的位置逐步帶過去，正是「文章把工作做完、不派給讀者」在推導段的形態</td>
      </tr>
  </tbody>
</table>
<p>分層切入點的完整機制（術語角色 × 基線的判定矩陣）在<a href="/blog/record/term-explanation-layering-methodology/" data-link-title="術語解釋分層方法論：基線宣告與行內 / 連卡 / 裸用三級" data-link-desc="文章裡的專業術語該解釋到什麼程度、入門篇跟深度篇的解釋量怎麼分級時，用「術語角色 × 前置知識基線」判定矩陣決定行內展開、連知識卡或裸用；含基線的操作化定義、SOLID 對應、缺卡 audit 流程與 financial-analysis 模組的實測">術語解釋分層方法論</a>；讀者定位不降深度的取向同 AGENTS 原則六（讀者定位用內容體現）。</p>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>連續多行高密度句、沒有襯字與停頓</td>
          <td>節奏過快——在要讀者思考的位置刻意加字延長閱讀時間</td>
      </tr>
      <tr>
          <td>讀到某一行要同時記住兩個以上未具名的指涉</td>
          <td>壓迫力——具名、拆段、或把指涉就地解決</td>
      </tr>
      <tr>
          <td>段落用到前置概念而沒有回顧提醒與路由</td>
          <td>補主動提醒：這裡會用到什麼、可以去哪裡建立概念、再回來讀</td>
      </tr>
      <tr>
          <td>檢核段要求讀者自我檢討或自我評估</td>
          <td>換成主動提醒——文章自己把提醒與路由做完，檢查的工作不派給讀者</td>
      </tr>
      <tr>
          <td>文章只有同領域資深讀者讀得動、理由是「內容本來就難」</td>
          <td>難的是內容不是語句——語句與銜接先修到容易理解，識讀落差用分層切入點承接</td>
      </tr>
      <tr>
          <td>審查回報「看得懂」而讀者反應「讀起來累」</td>
          <td>冷讀只量了理解——補「累不累」（節奏壓力）與「有沒有被接住」（引導）兩問</td>
      </tr>
  </tbody>
</table>
]]></content:encoded></item></channel></rss>