結論

寫文字(文章 / 註解 / doc / prompt / commit message)的 ROI 來自 N 輪不同 frame 的 re-read、不是單次「寫對」。每輪 catch 上一輪 frame miss 的東西:

輪次Frame抓什麼
1生成把 idea 變字、預期會有錯
2對意圖(#67寫出來跟原意對齊嗎、有沒有便利驅動的偏移
3機會成本語氣有沒有「應該」「不行」「正確」絕對主義?是不是該翻成「在 X 情境下 A 較好、Y 情境 B 較好」
4Grep-ability / 命名關鍵字前置嗎?AI 能單次 grep 命中嗎?
5反例 / 邊界「何時不適用」段寫了嗎?反模式列了嗎?

每輪用「跟前一輪不同的眼睛」看同一份文字 — 才能 catch 不同層的問題。第 1 輪的 frame 不可能同時 catch 所有層#82 字面 vs 行為的 ceiling)。


為什麼一輪寫不出全部維度

寫的時候 working memory 有限、必須 collapse 多個維度去專注其中之一:

  • 生成 frame 在意 idea 完整 → 顧不上語氣
  • 語氣 frame 在意「機會成本 vs 絕對主義」→ 顧不上 grep-ability
  • grep frame 在意關鍵字前置 → 顧不上反例

要求一輪同時 catch 所有 = 認知超載。實際結果是「每個維度都做一半」。

多輪設計接受 working memory 限制、用 N 輪解 N 維。每輪只專注一個 frame、效率反而高。


五輪 review 的具體 checklist

輪 1:生成

  • idea 從頭寫到尾、不停下來改
  • 預期會有 typo、結構亂、語氣不對 — 不在這輪修
  • 跑得到結尾比寫得漂亮重要

輪 2:對意圖(#67

  • 開頭一句講清「這段在說什麼」嗎?
  • 有沒有 #67 的「便利驅動偏移」— 寫得順但其實偏題了?
  • 段落順序是不是「好寫」決定的、不是「易讀」決定的?
  • 有沒有「為了補滿格式」寫的廢段?

輪 3:機會成本語氣

  • 跑 grep 抓「應該 / 必須 / 不行 / 不可以 / 正確的方式 / 唯一」這些絕對詞
  • 每個絕對詞檢查:是物理 / 法律 / 安全事實嗎?不是的話翻成「在 X 情境下 A 較好、Y 情境下 B 較好」
  • 反模式表的「為什麼不好」寫到「違反某個原則」、不寫「就是不對」

輪 4:Grep-ability / 命名

  • 關鍵字在段首、不在段中
  • 表格欄位用 grep 友善的分隔(: |
  • 檔名 / slug 跟 title 對應、不要用流水號
  • 命名能用單次 grep 命中、不需要語意推理

輪 5:反例 / 邊界

  • 「何時不適用」段寫了嗎?
  • 反模式表給「為什麼不好 + 修法」嗎、還是只給警告?
  • 跨卡 cross-link 補了嗎?
  • 有沒有 over-claim、把「在多數情境下」說成「總是」?

套用到不同 output 類型

每類有特化的輪次組合:

文章(content/posts、content/report)

完整跑 1-5 輪。額外加:

  • 輪 6:跨卡 cross-link 健康度(單向引用 vs 雙向)
  • 輪 7:放回 _index.md 的索引條描述對應到內容嗎

程式註解(doc comment / inline)

跑 1-3 輪 + 額外:

  • 輪 4’:grep-ability 改成「介面 vs 實作分層」— doc comment 不洩漏 impl、inline comment 講 why 不講 what
  • 輪 5’:反例改成「這個註解 5 個月後讀還看得懂嗎」(時間軸 robust)

Naming(變數 / 函式 / 檔名 / slug)

→ 見 #84 Naming 是 iterated artifact、有特化的 4 輪設計。

Prompt(給 LLM 的指令)

跑 1-3 輪 + 額外:

  • 輪 4’’:模糊指令(clarifying-ambiguous-instructions)— 「對齊」「靠近」這類詞翻成具體數字 / 條件
  • 輪 5’’:「邊界 case 預期行為」明示了嗎

Stakes-conditional 追加輪:Epistemic Rigor

5 輪基本 frame 是 frame 軸(生成 / 意圖 / 語氣 / grep / 反例);高 stakes 內容(reader 照做後錯誤不可逆 / 系統層 / 不可分批 ship 修正)追加 stakes 軸的 輪 E:epistemic rigor——比照學術 peer review 的 claim / evidence / method / threats / citation 五個 sub-check、確認論述強度足以承擔 reader 直接 implement 的下游風險。

啟動條件(opt-in、不污染預設)

內容類型是否跑輪 E
一般技術文章(layout / refactor / debug 教學)不跑(5 輪夠)
資安 / cryptography / 防護 mitigation 教學
Concurrency 正確性 / memory model claims
Distributed consistency / consensus 演算法
Financial 計算 / accounting / settlement
Medical / safety-critical 計算
任何「reader 照做後錯誤不可逆 / 系統層」的內容

判別啟動的核心問題:「reader 照這段實作會不會在生產系統留 silent gap、且不能靠後續 ship 修補?」——會 → 跑輪 E、不會 → 5 輪即可。動機論證見 #99 資安教學審查標準對應風險不對稱

輪 E:Epistemic Rigor 的 5 個 sub-check

Sub-check問題對應 audit 維度
E.1 Claim每個結論可拆 falsifiable 子句嗎?#100 false sense of security
E.2 Evidenceclaim → evidence 推論鏈完整、有 mechanism 嗎?#102 mitigation 對位
E.3 Methodreader 照 method 做能反向驗證嗎?#101 threat model 明確性 + #102
E.4 Threats什麼前提失效會 invalidate?#103 context-dependence
E.5 Citation版本 / 句意 / current best practice 都對嗎?#104 citation 時效精確

輪 E 的產出格式

跑完輪 E、每個 weakness 對應到一個 dimension + tier、見 #105 audit recommendation 層級

  • Accept:無 weakness 或在容忍範圍
  • Minor revise:補 boundary / contrast / 版本標記類小改、不阻擋 ship
  • Major revise:結構性 false sense、需重寫、ship 前必須修
  • Withdraw:教錯主動誤導 reader(過時 crypto 沒標 deprecated / 扭曲 citation 反向違反現行標準 / defense theater 當示範),保留 = 增加生產系統 risk、必須移除或全換

withdraw tier 是高 stakes 內容跟一般內容的關鍵差異——一般內容 review 沒有「保留 = 增加 risk」的硬決策、高 stakes 必須有。

跟 5 輪基本 frame 的分工

5 輪基本 frame輪 E(高 stakes 追加)
軸定位Frame 軸:每輪換一個寫作品質視角Stakes 軸:論述強度檢查
觸發預設全跑(依 output 類型可跳少數輪)高 stakes 內容才 opt-in
找的問題typo / 偏題 / 絕對主義 / grep / 邊界缺claim 空降 / 對位失效 / context 缺 / citation 過時 / withdraw-level 教錯
失敗後果文字品質低、reader 用力讀reader 照做後實作出生產破口、silent failure

兩軸正交、不取代——高 stakes 內容兩軸都跑(5 輪 frame + 輪 E stakes)、一般內容只跑 5 輪。輪 E 不在 5 輪裡是因為:把 epistemic rigor 設為預設會讓一般文章 over-audit、稀釋 review 紀律;設為 conditional opt-in 才能讓高 stakes 場景拉到學術級而不污染日常寫作。

→ 詳細維度展開(threat model 對稱 / mitigation 對位 mechanism / context-dependence / citation 時效)跟 audit recommendation tier 判準、見 #99#100#101-104#105 系列。


反模式:跳輪的代價

反模式後果
寫完直接 ship、跳過所有 review 輪第 1 輪生成 frame 沒抓到的全部漏
每輪用同個 frame review角度沒換、重複 catch 同類錯、新類錯不會浮現
「我邊寫邊改」融合多輪working memory 超載、每維都做一半
跳過輪 3 機會成本語氣絕對主義教讀者規則、不教思考
跳過輪 4 grepAI 找不到、文字變孤兒
跳過輪 5 反例看起來是教條、不是 trade-off
「下次寫的時候多注意」當 review 取代#72 高 ROI 無觸發 紀律失效

何時可以跳某些輪

情境可跳的輪
內部 quick note、不會有人看跳 4 + 5(grep + 反例)
Commit message跳 4 + 5、留 1-3
Slack / chat 即時對話只跑輪 1
引言 / 標題1-4 都跑、5 可省
摘要 / TL;DR1-3 + 5(反例不適用、但語氣很重要)
純資料填寫(schema / config)跳 3、其他都跑

四類共通:ROI 不同、輪次組合不同。Production 文件 / 卡片 / 註解 全跑、即時通訊只跑核心。


跟其他抽象層原則的關係

原則關係
#67 寫作便利度輪 2 的核心判準 — 為什麼便利寫法 ≠ 對齊意圖
#82 字面攔截 vs 行為精煉本卡是 #82 在「寫」這個動作的具體實例 — review 是 multi-pass、不是 hook
#81 卡片系統的迭代浮現spiral 浮現本身就是寫作的 multi-pass 範例(卡片 → meta → reference)
#79 決策對話的五維度寫決策呈現要用 #79 self-check + 本卡的輪 2 一起跑
#84 Naming 是 iterated artifact本卡的輪 4 在 naming 場景的特化
#85 Methodology 的 multi-pass 該 embed 在 pillar本卡的 5 輪設計就是 compositional-writing 該 embed 為「第 6 原則」的內容

判讀徵兆

訊號該做的事
寫完直接 commit、覺得「OK 應該夠」跑五輪、每輪都會抓到東西
每次 review 都「看不出哪裡可改」Frame 沒換、改用下一輪的 frame 看
「這次先這樣、下次寫好一點」#72 結構性跳過、補 trigger(pre-commit / template / pair)
反模式段空白跳了輪 5、補
找不到自己寫過的卡輪 4 沒做、grep-ability 漏掉
文字看起來像教條輪 3 的絕對主義詞沒翻、補
段落開頭看不出在說什麼輪 2 的意圖顯性沒做

核心:Writing 的 ROI 來自多輪不同 frame、不是單次「寫得仔細」。要寫得仔細的部分太多、超過 working memory、必須分輪。跳輪的代價是某維度永遠做一半、累積成「看起來都對但其實有漏」的低品質文字