連貫靠句句推進:讀者付出的每一次閱讀成本都要換到內容
論述基礎與限制
本卡來自一段書單總覽鏈的兩版對照:LLM 原稿與使用者的逐字改寫。兩版的命題集合幾乎相同,差異全部集中在三件事——刪掉的字、拆掉的譬喻、調換的順序——而改寫版整體更連貫。同型的抽取先例是敘事的解碼材料要在讀者已讀的文本裡(同樣由兩版對照抽出,那次抽的是解碼材料的位置,這次抽的是句子的方向)。限制:單一段落樣本、單一文體(總覽鏈)。
核心原則
連貫的載體是推進句:前句的成果是後句的條件,句句朝同一個方向,沒有任何一句要求讀者回頭。回收語——把剛讀完的內容摘一次再出發——不製造連貫,只暴露斷點:需要一句回收才接得下去的位置,就是上一句沒接好的位置。修法是把回收句改寫成推進句(「釐清 X 之後,實務上還需要 Y」——X 是前文剛交付的成果、直接當後句的條件),把回收句寫得更漂亮修不到根。
逐句可執行的判斷標準有兩問,第一問不過就往下問第二問:
- **這一句要求讀者往前走,還是回頭?**回收式過場與迂迴指代都是回頭——要讀者重新取用剛讀過的內容。
- **讀者付出的這一次閱讀成本,換到了內容嗎?**懸念否定要讀者記住一個還沒填的缺口、文章自指把讀者從主題拉到版面、姿態描述交付的是關係的元資料、頂替術語的譬喻要讀者多建一筆對映——四者都不是回頭,但讀者付出了而沒換到東西。
五類共用的機制是第二問(付出換不到內容),第一問只覆蓋其中兩類——掃描時兩問都要跑,只跑第一問會漏掉五類中的三類。
五類要刪的字
| 類型 | 實例 | 為什麼是廢字 |
|---|---|---|
| 回收式過場 | 「立場站定、量尺在手」 | 把前兩件事各摘四個字再講一次,讀者剛讀完、增量是零;四字對仗的節奏感讓它讀起來像在做事 |
| 懸念否定 | 「仍然沒有答案——」 | 先宣告缺口再揭曉誰補的微型懸念弧;直接說還有什麼要討論、哪裡處理 |
| 文章自指 | 「承接的就是這一段」 | 「這一段」指文章的版面結構;讀者在讀主題內容,不在讀這篇文章怎麼編排自己 |
| 迂迴指代 | 「就是做這件事的量尺」 | 為了鉤回上一句多轉一手;「就是提供這個評估的標準」直接 |
| 姿態描述 | 「質疑的是那三本共同的問題本身」 | 描述論戰的形狀(誰不同意什麼的什麼),不交付問題的內容;把問題寫出來之後,升層關係讀者自己看得出來 |
姿態描述這一類要單獨展開,因為五類裡只有它 grep 抓不到:「A 質疑 B 的問題本身」「C 不同意的是前提」這種句子讀起來有論證密度,實際交付的是關係的元資料——問題是什麼、前提是什麼,一個字都沒說。修法是把被指涉的內容直接寫出來,對立姿態的詞(質疑、挑戰、反對)通常整個省下:「怎麼評估這兩種活動?這是三本理論書都在討論的共同問題」沒有用任何對立詞,升層關係卻更清楚。
譬喻先問有沒有現成術語
技術寫作的概念多數已經有名字——標準、判斷標準、準則、門檻、成本、邊界。這些詞在領域內所指穩定,讀者一看就對得上,而且中英文技術文件用的是同一組詞(標準 / criteria / standard,而不是 the yardstick)——這一句以台灣技術語境與英文技術文件的常見用詞為據,沒有做語料量測。概念有現成術語時,術語優先,譬喻不進場:譬喻要讀者建立一筆對映(量尺=判斷標準集),術語不用——那筆對映的成本是憑空多出來的,換到的只有畫面感。
譬喻的位置在這個概念在讀者的語言裡還沒有名字的地方:新機制、跨領域借來的結構、還沒有人命名的現象。那裡沒有術語可用,譬喻是唯一的載體,此時才問第二個問題——服役長度:貫穿全篇、每節回扣的譬喻是讀者導航用的固定地標,建立之後兩三句就拆場的是純成本。
判定順序,第一層答完通常就結束:
| 層 | 問題 | 答案與處置 |
|---|---|---|
| 一 | 這個概念在領域裡有現成術語嗎 | 有 → 用術語,譬喻不進場,第二層不必問 |
| 二 | 沒有術語時,這個譬喻服役多久 | 貫穿全篇 → 留;兩三句就拆場 → 純成本,換字面說法 |
成因是語域混入:譬喻有畫面、有文采,那是散文的審美;技術文件的語域要的是所指穩定。同一個作者會在同一篇裡兩邊都寫,因為「量尺」讀起來比「標準」更好——而那個更好是散文的判斷標準。與用詞搭配錯位正交:「量尺」沒有錯配,它只是佔了一個已經有名字的位置。
本卡初版把判斷標準寫成單層的服役長度,那是在沒有先問「有沒有現成術語」的前提下給的;使用者的修正把服役長度降為第二層。這是本卡自己那類形態的實例——用來修東西的規則,看起來不需要被修(見替補結構的豁免)。
相鄰的另一類是層級錯位(對照範例裡被刪的「四支柱」屬於這一類)。總覽鏈每一環只背「關係+名字」,判斷標準的內部構造(四支柱是什麼)屬於下方專節;總覽背了專節的細節,讀者就得在總覽層 hold 一個當下用不到的名詞。
連結掛在句中已有的名字上
為了掛連結而另造括號標籤——「(評分的判斷標準)」「(推出測試案例的程序)」——是為連結服務的字:句子裡已經有書名或節名時,連結直接掛在那個名字上,括號標籤整個消失。判別方式:把連結語法拿掉之後,括號裡的字對讀者還有沒有資訊——沒有就是標籤、不是內容。
順序由讀者的問題序驅動
原版的排序驅動是素材的來源鏈(一本書接一本書),推遲宣告(「單元的大小是之後的事」)插在論證中途、下一個成員另起一段、於是需要回收過場接回來——兩段、一次懸念、一次回收。改寫版的排序驅動是讀者的問題序:怎麼做 → 怎麼評 → 評的是哪種活動 → 實務還剩什麼;被推遲的項目集中在句尾一次交代。素材序服務作者的整理過程,問題序服務讀者的推導過程,兩者不一致時以問題序為準。
判斷標準
逐句跑上面兩問,命中任一問就是候選。候選之後還有一個判定步驟:這個位置服務的是誰——從任意節點進入的讀者(節首定位、合法)還是同一個線性讀者(段間回收、刪)。
整段層級的驗收問句:把這一段的每一句依序讀下來,有沒有哪一句拿掉之後,下一句仍然接得上前一句。接得上的那一句就是零資訊字。
對照範例
原稿:
無論站哪一邊,實作一段時間之後都要回答同一個問題:自己寫出來的這套測試好不好。Khorikov 的《Unit Testing Principles, Practices, and Patterns》給的四支柱判斷標準就是做這件事的量尺,對兩派都適用——它對倫敦學派的系統性批評也建立在這把量尺上(評分的判斷標準)。而判斷標準寫下來、交給機器或 agent 執行的時候,Bach 與 Bolton 的《Taking Testing Seriously》質疑的是爭單元邊界的那三本共同的問題本身:要先分開的是「執行事先寫好的判斷標準」與「設計判斷標準、發現沒人想到要問的問題」這兩種活動,單元的大小是之後的事(機器接手判斷標準之後人還做什麼)。
立場站定、量尺在手,「這些測試案例是怎麼推出來的」仍然沒有答案——四本立場書都沒給這個程序,Aniche 的《Effective Software Testing》承接的就是這一段:從規格推導案例的步驟(推出測試案例的程序)。
改寫版:
無論選擇哪一種做法,測試寫完之後都要評估同一個問題,這套測試到底有沒有問題?Khorikov 的《Unit Testing Principles, Practices, and Patterns》就是提供這個評估的標準,這個標準無論對哪一派都適用。這本書中對於倫敦學派的批判也是基於這個系統。而判斷標準寫下來、交給機器或 agent 執行的時候,Bach 與 Bolton 的《Taking Testing Seriously》提出了一個討論,怎麼評估「執行事先寫好的判斷標準」與「設計判斷標準、發現沒人想到要問的問題」這兩種活動?這其實是三本理論書都在討論的共同問題。釐清測試的方向之後,實務上還會需要討論單元的大小——三本理論書在這一題沒有取得共識,《Taking Testing Seriously》給出解法——以及怎麼從規格推導到測試案例(Aniche 的《Effective Software Testing》)。
逐項對應:「站哪一邊/立場站定」→「選擇哪一種做法」(拆選邊譬喻);「量尺」三現→「標準/系統」(頂替術語的譬喻拆場);「四支柱」刪(層級錯位、細節下放專節);「質疑的是…問題本身」→ 把問題寫出來(姿態描述換內容陳述);「立場站定、量尺在手」刪、換「釐清測試的方向之後」(回收過場換推進句);「仍然沒有答案——」刪(懸念否定);「承接的就是這一段」刪(文章自指);「單元的大小是之後的事」從中途移到句尾與案例推導並列(推遲項集中交代)。
範例聚焦在刪字、拆譬喻與排序三個維度;改寫版的其餘用字取捨不作為本卡的規範內容。
跟其他抽象層原則的關係
| 原則卡 | 關係 |
|---|---|
| #284 文章的連貫靠鞏固形狀、不靠讀者的記憶 | 配套的兩層:#284 管節與節的關係(形狀)、本卡管句與句的方向(推進);形狀對了,句子仍可能把讀者往回送。節首的定位重述屬 #284 的鞏固、不屬本卡的回收(見這條原則什麼時候不成立) |
| #270 敘事的解碼材料要在讀者已讀的文本裡 | 同型抽取(兩版對照)、同源文體(書評體殘留):那卡抓密度審美的壓縮,本卡抓節奏審美的回收與對仗;四字過場正是書評體的節奏模具 |
| #254 寫給帶問題來的讀者 | 懸念否定是懸念弧的句子級形態;姿態描述是三幕劇的「衝突敘述」殘留——講誰跟誰對立,不講對立的內容 |
| #122 cadence 同質化 | 四字對仗過場是 cadence 模具的一種;那卡管模具跨篇複製,本卡指出這類模具在單段內就已經是零資訊字 |
| #234 用詞要貼合概念的屬性 | 正交的兩個譬喻判斷標準:#234 問譬喻配得對不對(錯配),本卡問這個位置該不該有譬喻(已經有術語了嗎);一個譬喻可以配得完全貼切,而它佔的位置早就有名字 |
本卡的文章自指與 #387 結構譬喻頂替主詞與動詞 判的是同一個「承接」的兩種用法:描述文章怎麼編排自己的「承接的就是這一段」歸本卡,描述一本書或一篇文章做了什麼的「由 X 承接」歸 #387。兩邊的修法都是寫出實際的對象與動作。
判讀徵兆
- 段落開頭是對前文的四字摘要或對仗句(「立場站定、量尺在手」「工具備齊、方向已明」)——回收式過場候選;grep 弱訊號
rg "在手,|站定,|至此,|綜上|回到正題",主力靠逐句問「這句要求讀者往前還是回頭」。 - 句子的動詞是質疑 / 挑戰 / 不同意 / 反駁,而受詞是「問題本身」「前提」「框架」這類元層名詞、內容沒有跟著出現——姿態描述候選。
- 出現一個譬喻詞時先問這個概念有沒有現成術語(標準 / 判斷標準 / 門檻 / 成本 / 邊界),有就直接換掉;沒有術語才看它出現幾次、跨不跨節。同一篇裡同一個概念有兩個名字(總覽用術語、專節用譬喻)已觀察到一次,而那一次通過了三輪審查沒被攔下,掃描要跨全篇對同一個所指、不是逐段看。
- 連結的顯示文字不是句子的自然成分、拿掉連結語法後變成懸空括號——標籤候選,把連結搬到句中已有的名字上。
- 寫的時候發現需要一句過場才接得下去——訊號指向上一句:把它的結尾改成下一句的條件,過場自然消失。
這條原則什麼時候不成立
- 節首的定位重述:空降讀者需要「這一節在整篇的什麼位置」,節首用一句重述定義或關係是文章的連貫靠鞏固形狀的鞏固動作。分界看服務對象與位置:節首定位句服務從任意節點進入的讀者、合法;段間回收句服務同一個線性讀者、把他剛讀完的再摘一次、刪。
- 沒有現成術語的長程譬喻:概念在領域裡還沒有名字、而譬喻貫穿全篇每節回扣時,它是導航地標,保留。有術語可用時這一條不適用——長不長程都該換成術語。本站目前沒有存活的實例(原本用來例示的兩處譬喻在第一層判斷標準下都被換成術語了),這一層由機制推導、尚未被案例驗證。
- 摘要位置的回收:目錄頁、description、推導收尾的總結句,消費單位即壓縮形態,不適用逐句推進判斷標準。