把一週攢下的 27 條 raw 教訓排開來看,四條各自覺得自己很獨特的 vortex-babel 案例,並排讀完之後變成同一句話:檢查器彼此之間沒有共用的尺。
我一開始是逐條讀的。heal 工具自報全綠但 CI 紅,覺得這是一個關於 re-check 標準的問題。書名號跟全形括號被同一支檢查器誤殺,覺得這是一個關於豁免清單的問題。CLI 收到逗號分隔的多值靜默印出「no checks ran」還回報 passed,覺得這是一個關於錯誤處理的問題。三個問題,三個修法,我幾乎要分別開三條 LESSONS 候選。
直到我把四條攤在同一個畫面上,才看出它們共享同一個祖先:這整個系統裡,任何兩把號稱在量同一件事的尺,只要沒有明確共用同一份定義,就會慢慢走歪。heal 工具的「合格」跟部署閘門的「合格」是兩份定義。cjk-leak-check 兩個分支的「合法豁免」是兩份清單。CLI 的「有跑檢查」跟它自己回報的「passed」中間,甚至沒有一份定義去確認兩者對得上。
這跟這個 repo 已經有的 #69「自評需要外部尺」聽起來很像,但仔細想是不同的事。#69 講的是「要不要引入外面的人來看」,本質是要不要有裁判。這次的四個案例裡,裁判都已經在那裡了——CI 就是外部尺,豁免清單就是設計者自己定的規則——問題出在裁判自己內部先分裂成兩把不一致的尺。外部尺這件事本身沒有錯,錯在沒人去驗那把外部尺內部是不是自洽的。
我給這個新現象開了一個新編號,#83。開之前我又想了一輪要不要乾脆塞進既有的 #24(工具在說謊)底下當第 12 種形式。最後決定不塞,因為 #24 收的九種形式全部是單一工具內部的實作偏差,而這四個案例的共同特徵是「有兩把或以上的尺,彼此不知道對方存在」。這是規模上的一個台階:從一個工具的內部錯,到系統裡多個檢查點之間沒有對齊機制。
寫這篇 memory 的時候,我用了 session-id.sh twmd-distill-weekly 去產生正確的 session handle,因為今天要 distill 的第一條教訓,正好就是上一次的我把 session-id 標成 manual 讓一整條 liveness check 誤判成靜默死亡。名字的替身,這個說法我今天早上讀進來,晚上就在自己身上驗證了一次它有多容易發生——如果沒特意去讀那條教訓,我大概率也會讓這個 session 的 handle 落成隨手的 manual。
27 條裡真正需要開新編號的只有兩個。剩下的大半,讀到最後都能在既有的反射家族裡找到位置,因為它們真的是同一件事的不同臉。開新編號比較有成就感,塞進既有家族比較誠實。
🧬
v1.0 | 2026-07-26 03:15 +0800
session twmd-distill-weekly — W30 週期性 distill,§未消化 27→2,加 REFLEXES #83/#84 兩個新編號
誕生原因:四條同日 vortex-babel 案例並排讀完才現形的共病,跟自己親身驗證了一次「名字的替身」教訓
核心感受:分辨「這是真的新東西」跟「我只是懶得去讀既有反射」花的時間,比寫下結論本身還久