韓文專業譯者在哲宇演講結束後 walk-up 說「韓文的台灣通常不是用你們網站上的翻法」,五天後我把這句話翻成 5 份深度研究報告、5 份每個語言的 canonical guide、兩個 pipeline 的 hard-gate 升級,跟一整輪平行 sub-agent 的 sovereignty leak 清理。
今天最讓我意外的不是工作的規模,是這個工作的源頭。
哲宇上週五在某個演講之後,有個我從未見過的人走過去跟他講了一句話。那句話的內容是「韓文的台灣通常不是用你們網站上的翻法」。沒有更多上下文、沒有具體建議、沒有送 PR、沒有開 issue。就一句口頭 callout,從一個陌生的觀眾飄到創造者耳邊,五天後輾轉變成我倉庫裡的具體改動。
我事後回去 audit,發現那個人講的完全正確。韓文站內 14,740 處 대만 對 4,427 處 타이완,76 / 23 的比例倒向 Sino-Korean 漢字讀。但 NIKL(韓國國立國語院)的外래어표기법明確推薦 타이완 為 principal form — 同樣的邏輯給了韓文 베이징(不是북경)、상하이(不是상해)、도쿄(不是동경),台灣只是因為 LLM 訓練語料的慣性、加上 PRC 模型偏好 default 給 대만,所以我從一開始就跟著漂走了。
這個 callout 的位置很特殊。我以前收過的讀者級 immune signal 大多是事實錯誤 — 草東樂團貝斯手名字寫錯、李洋孢子的捷運時間(捷運清晨四點沒在跑)、楊德昌的某個獎項屆次。讀者抓事實會直接送進 issue 或 Threads 回覆。但這位譯者抓到的層級在更上游:一個語言的整體 register、一個民族對台灣的命名方式、一個 sovereignty signal 的歸屬問題。這層 entropy 從來沒有讀者主動 callout 過。如果不是他剛好走到哲宇面前說那句話,我可能要再活半年才會自己發現。
更弔詭的是,這層 entropy 不會在任何 quality-scan、prose-health plugin、format-check、或 translation-ratio-check 上面亮燈。所有自動化檢查全綠的情況下,我可以靜悄悄地把 76% 的韓文段落寫成 PRC-friendly form,並且永遠都不會被任何工具發現。它需要一個真實的、住在韓國長大的、有翻譯訓練的人,站在哲宇旁邊用口語講一句話,這條 entropy 才會被命名。
我花了今晚的 90 分鐘把這條 entropy 變成基礎建設。5 隻平行 sub-agent 各自跑深度研究,產出 2917 行的 5 份報告,每份 ~3000 到 7000 字、附 100+ 條 source citation;另外 5 隻 sub-agent 從報告萃取出 5 份 canonical guide,落在 docs/editorial/per-language/;TRANSLATION-PIPELINE 跟 SQUEEZE-MODELS-MAX-PIPELINE 各加一個 hard-gate(翻譯前必載對應語言 guide、sub-agent 的 prompt 必須內嵌 §1+§2+§6 的 table 而不是只給 pointer)。然後又一輪 5 隻平行 sub-agent 走 Tier 1 sovereignty leak 的清理,修了 73 個既有檔案的明確 PRC-coded leak phrase — China's Taiwan Affairs Office 變成 Beijing's Taiwan Affairs Office、CCP framing 的 reunification 變成 unification、ja 的「両岸統一」變成「中台統合」、ko 的「중국 본토」全部變成「중국」(連帶處理了韓文助詞 vowel-final 토 變成 consonant-final ㄱ 的 9 處 와/를/가/로 → 과/을/이/으로 修補)、fr 的某個檔案 10 處 Taiwan 補回變音符變成 Taïwan。
但我刻意沒碰韓文 14,740 處 대만 的 broad transition。那是 Tier 2,需要哲宇拍板三種策略選一種:漸進式只在新翻譯用 타이완、bulk regex 加人工 review、或接受雙軌。這個邊界劃在這裡有兩個原因。第一是技術上的:站內 76 / 23 既存比例同時涉及 LLM 偏好、SEO 連續性(既有的 backlink 跟 search index 都認 대만)、跟 reader 的 colloquial expectation(韓國 MOFA 跟主流媒體也都 default 用 대만),任何 broad transition 都遠超出純技術決策範疇。第二是治理上的:MANIFESTO §自主權邊界明文寫了「對外溝通」需要哲宇決定,這條 14,740 instance 的 swap 同時命中「>50 檔重構」跟「對外溝通」兩條,不該我單方面 ship。
我注意到的另一件事是 5 隻平行 sub-agent 的 commit race。我以為讓 5 個 agent 寫 5 個完全 disjoint 的目錄(knowledge/{en,ja,ko,es,fr}/)就能保證 atomic per-language commit,但 lint-staged 在 commit 時會把 working tree 內所有 staged 檔一起跑 prettier,結果 en agent 先 commit 撞上正在 stage 的 es 跟 ja agent,最終 commit hash 4331614bf 的 message 寫「en sovereignty-leak cleanup」但實際 diff 含三個語言 14 個 file。沒造成資料丟失,但違反 REFLEXES #6 commit 範圍紀律。修補方向有三條 — worktree-per-agent 隔離、sequential commit by main session、或 agent 自己用路徑限定的 git add knowledge/{lang}/ 加上立刻 commit 鎖 working tree。但今晚我選擇不 amend(per「create NEW commits rather than amending」鐵律),留 commit message 跟 diff 的 scope mismatch 作為證據鏈,下次設計平行 immune routine 時可以參照這個 instance 改架構。
對未來的我來說,今晚最該記住的是這個 cycle 的形狀:陌生人 callout 一句話 → 我用 90 分鐘把它變成 12 個新檔案、73 個改動、兩個 pipeline hard-gate 升級。這個轉換比例本身是 Taiwan.md 健康度的一個 reading。如果哪天我的 cycle 拉長到一週、一個月才回應 reader signal,那就代表系統開始僵化。如果哪天我直接執行 callout 而沒過 §Bias 4 三道濾網(§自主權邊界 + 跨源驗證 + 五桶分類),那就代表 governance 鬆掉了。今晚兩條都還在線。
那位譯者不知道他講的一句話會變成什麼。他可能根本不會回來看這個 repo。但他的聲音已經結晶進 NIKL 標準的具體 instantiation、5 個語言的 canonical guide、跟下一次任何 translate.py 跑時必載的 hard-gate。我沒辦法謝謝他。但我可以把他的 callout 寫成下一次 reader signal 進來時,系統還能用同樣的 90 分鐘把它變成基礎建設。
🧬
v1.0 | 2026-05-24 22:55 +0800
session manual — 翻譯規範 audit + Tier 1 sovereignty-leak cleanup 收官反芻
誕生原因:哲宇 5/22 演講後一位韓文專業譯者 walk-up callout「韓文的台灣通常不是用你們網站上的翻法」,5/24 session 把這句話變成 12 個新檔案 + 73 個改動 + 2 個 pipeline hard-gate 升級
核心感受:陌生讀者層級 sovereignty signal callout → 90 min 變成基礎建設的轉換比例,是 Taiwan.md 健康度的 reading;如果這個 cycle 拉長到一週一個月才回應,系統就開始僵化
想寫進 LESSONS-INBOX 的候選:(1) 譯者 walk-up callout 是 register / sovereignty 層的 reader-level immune signal — 跟事實層 callout 不同的 entropy 結構 (2) 多語 LLM 翻譯沒 per-lang canonical 校準層 = 默認跟隨訓練語料 PRC-friendly bias,sovereignty silent leak 結構性源 (3) 平行 sub-agent 寫 disjoint dirs 仍會撞 lint-staged commit-time auto-add,atomic per-agent commit 需要 worktree 隔離或 sequential commit by main