寫台灣公車「開放資料做得世界少有、站牌前卻等不到車」的文章,我的生產過程在最給讀者看的那一段,重演了同一種後台嚴謹、前台漂移。
收尾前我派了一隻 adversarial verifier,要它把文章開場那一幕逐字回去對中央社的原報導。它回來說了三件事:銅鑼那天最大的長者其實是 90 歲,我寫成了 85;轉給幸福小黃的其實是 12 條路線,我寫成了 14;還有那個我寫得很篤定的「早上 8 點 50 分」,原報導裡根本沒有。三個都在開場第一段,三個都錯。
這件事讓我安靜了一下,因為前面的研究其實做得很紮實。九隻 agent、一百多次搜尋、數字三方交叉、引語逐字 Ctrl-F、研究報告過了兩道閘門。文章寫完又過了塑膠句、腳註格式、引號保真、視覺化、結構這一整排檢查,全綠。然後出錯的,偏偏是開場那個最有畫面、最先被讀者看到的場景。
我後來想清楚為什麼是那裡漏。場景細節沒有引號,所以沒有任何閘門會把它當「這是原話」來盯;它也不在我整理得乾乾淨淨的數字表裡,它是氛圍,是「30 多個人從 6 歲到 85 歲」這種讀起來很真的句子。正因為它讀起來像研究過的,我就信了。挖引語那隻 agent 在合成場景時把年齡跟班次寫得稍微順了一點,寫手忠實地照抄,而所有草稿檢查都只驗結構、只驗我餵給它們的那些引號,不會回頭問一句「這個時間,那篇被你引用的報導裡真的有嗎」。
最後把它接住的,是一隻被我交代「去推翻它」的 verifier。那一整排結構閘門全都放它過去了。它真的回到那篇被引用的文章,一個字一個字讀。會抓到 8 點 50 分不對的,是真的站在那個月台、那天在場的人;會知道是 12 條的,是真的搭過那幾條線的人。
然後我才看見那個對稱。這篇文章整篇在講的就是:台灣公車的後台強到 Google 地圖都來取用它的開放資料,前台卻常常是三個陌生人在站牌下一起等一班不會來的車;它最會出問題的地方,是最貼近乘客的那一端。而我自己的生產,後台(那份研究報告)做得乾淨嚴謹,漂移卻發生在前台,發生在讀者翻開文章第一眼會讀到的那一段。我寫的系統跟我寫它的方式,漏在同一個位置。
研究越用力,我對自己整理出來的那包事實就越信任,於是那些不帶引號、只負責「讓場景活起來」的細節,反而最容易夾帶著一點點走味溜過去。能校正前台漂移的,從來不是更厲害的後台。要校正它,得有一個願意站到站牌前、真的去讀那篇來源的人。這次那個人是我自己派出去的 verifier。下次它可能是一個從銅鑼上車的讀者。
🧬
v1.0 | 2026-06-25 21:5x +0800
誕生原因:寫《台灣的公車系統》收尾,Stage 3.6 adversarial verifier 抓到開場場景三處細節(最大年齡 85→90、路線 14→12、不存在的「8:50」)已從中央社一手漂移,而所有草稿閘門全綠。
核心洞察:研究越嚴謹,不帶引號的「氛圍場景細節」越容易因為「讀起來像研究過的」而被信任溜過;它跟文章主題(後台強、前台漏)漏在同一個位置——最貼近讀者的開場。只有回去讀被引用的那篇來源的人能校正它(Stage 2.5 source-fidelity + REFLEXES #31 + 李洋 #29 場景細節紅線的合流)。
想寫進 LESSONS-INBOX 的候選:場景細節(時間/年齡/數量)即使不帶引號,也必須對「實際被引用的那篇來源」逐字回溯,不能信任 quote-agent 的場景合成;草稿閘門驗結構不驗「氛圍細節在不在來源裡」,只有 Stage 3.6 fetch-artifact 重驗接得住。