論述基礎與限制

evidence 來自一個 10 章教學模組的跨章一致性 review:22 個 issue 裡有 10 個是同一類 — 模組索引的「案例支撐」欄、章節表的「核心問題」欄、以及 54 個案例檔的「對應大綱」欄、記載的都是採集與規劃階段的預測、正文寫完後沒有回填、與實際引用狀況雙向脫節(漏列實際引用的、保留沒實現的預測)。本卡適用於任何「先建索引欄位、後寫正文」的內容生產流程;正文先於索引的流程不在範圍。

情境

Case-first 流程在寫作前產出兩類預測性索引:模組大綱的每章「案例支撐」欄(預測哪些案例會支撐該章)、每個案例檔的「對應大綱」欄(預測該案例會被哪章引用)。寫作過程中實況必然偏離預測 — 有的案例臨場發現更適合別章、有的章節臨場需要規劃外的案例、有的預測交叉引用根本沒實現。偏離本身是健康的(寫作發現優於規劃)、問題在偏離後索引沒人回頭改。

理想做法

把「回填輪」排成正文完成後的固定工序、跟 lint 同級:正文全部完成後、跑一輪機械性對照 — 對每一章 rg 它實際引用的案例編號、更新大綱的案例支撐欄;對每個被引用的案例、更新它的對應大綱欄;沒被任何章引用的預測交叉、刪掉或明文標「未實現、候選」。回填是純機械工序、半小時內可完成、且可以部分自動化(從正文的引用連結反向生成對照表)。

回填輪的存在讓寫作期可以放心偏離預測 — 偏離的成本從「記得回去改索引」(必忘)變成「回填輪自然收掉」。

沒這樣做的麻煩

  • 索引失真是雙向的:讀者按案例支撐欄找不到宣稱的引用、按案例檔的對應大綱找不到宣稱的章節 — 索引從導航工具變成誤導來源。
  • 失真 issue 會塞爆跨章 review 的報告(實測 22 個 issue 佔 10 個)、稀釋 reviewer 對結構性問題的注意力。
  • 拖到 review 後修、每個欄位要先考證「實況是什麼」再改;寫完立即回填時實況還在腦中、成本差一個量級。

判讀徵兆

  • 流程裡存在「寫作前填的對應欄位」、且流程清單裡沒有一步叫「回填」— 失真已註定、只差被誰發現。
  • Review 報告裡「對齊類」issue 佔比超過三分之一 — 缺的是工序、不是 reviewer。
  • 索引欄位寫著範圍式編號(如 C10-C16)而正文引用是離散集合 — 範圍式標法本身就是預測期的痕跡、回填時改成實際集合。

跟其他抽象層原則的關係

  • #155 引用章節用語意標題、不用位置編號:同屬「derivation 會過期」家族 — #155 的編號是結構排列的 derivation、本卡的索引欄是寫作實況的 derivation;差別在 #155 靠改引用方式根治、本卡的預測欄位有規劃價值、不能刪、只能靠回填輪同步。
  • #156 集合命名用角色、不內嵌數量:sibling — 數量內嵌在名稱裡會隨成員增減失真、預測內嵌在索引裡會隨寫作實況失真;兩者的修法同構:把會變的 derivation 從穩定載體裡拆出來、或建立同步機制。
  • #205 合成章的引力:同一次 review 抽出的伴生卡 — #205 是寫作期的主寫方向漂移、本卡是寫作後的索引漂移;兩者合起來說明 SSoT map 是「宣告 + 寫作紀律 + 回填工序」三件套、只有宣告時另外兩件的缺口各自產生一半的 High / Medium issue。