<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Case-First-Workflow on Tarragon</title><link>https://tarrragon.github.io/blog/tags/case-first-workflow/</link><description>Recent content in Case-First-Workflow on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/case-first-workflow/index.xml" rel="self" type="application/rss+xml"/><item><title>案例引用深度跟著 case 類型走</title><link>https://tarrragon.github.io/blog/report/case-type-graded-citation-depth/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/case-type-graded-citation-depth/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>案例引用深度是寫作層的紀律工具：把 case 分成 skeleton / medium / rich 三類、各類對應不同承接句型、讓引用斷言能反向 trace 回 case 原文。誤判類型會引發 over-extrapolation（編造 case 沒寫的細節）或 under-citation（漏掉 case 揭露的 mechanism）、reviewer 抓出後修正成本高。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Case 類型&lt;/th>
 &lt;th>行數&lt;/th>
 &lt;th>內容密度&lt;/th>
 &lt;th>承接句型&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Skeleton case&lt;/td>
 &lt;td>10-30 行&lt;/td>
 &lt;td>只給方向、無具體數字 / taxonomy&lt;/td>
 &lt;td>「揭露 X 方向、以下基於通用工程知識補充」&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Medium case&lt;/td>
 &lt;td>30-50 行&lt;/td>
 &lt;td>結構化 mechanism + 訊號名稱、無具體數字&lt;/td>
 &lt;td>「揭露 N 個機制 — A、B、C、D」用 mechanism 名稱精準引用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Rich case&lt;/td>
 &lt;td>50-200 行&lt;/td>
 &lt;td>含具體數字（RPS / 延遲 / TPS）、設計細節&lt;/td>
 &lt;td>「揭露 X 觀察 + 作者判讀 Y（明示分層）」&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>跨類型混合引用要分層處理 — 同段內若引兩類 case、先寫 rich case fact 作為支撐、再用 skeleton case 補方向、不混合成單一斷言。&lt;/p>
&lt;hr>
&lt;h2 id="為什麼這層紀律重要">為什麼這層紀律重要&lt;/h2>
&lt;p>LLM 從 case 反推內容時、訓練資料的「通用知識」會自動補進章節。當 case 沒寫的 mechanism / 數字 / taxonomy 被寫成「對應 [case]：揭露 X」斷言、讀者回查 case 時會發現章節說的「揭露」實際是 LLM 編造。&lt;/p>
&lt;p>backend/01-07 七模組驗證（&lt;a href="../../posts/case-first-agent-team-review-workflow/">case-first workflow&lt;/a> 的 case fidelity reviewer 抓的數據）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>模組&lt;/th>
 &lt;th>主要 case 類型&lt;/th>
 &lt;th>Case fidelity&lt;/th>
 &lt;th>主要失分類型&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>backend/02 cache&lt;/td>
 &lt;td>Skeleton&lt;/td>
 &lt;td>78%&lt;/td>
 &lt;td>三層 cache latency 編造、ops/sec 編造&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backend/03 msgq&lt;/td>
 &lt;td>Skeleton&lt;/td>
 &lt;td>70%（最低）&lt;/td>
 &lt;td>三方向擴寫成「4 個誤配場景」&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backend/04 obs&lt;/td>
 &lt;td>Skeleton&lt;/td>
 &lt;td>92.9%（最高）&lt;/td>
 &lt;td>嚴守「揭露方向、通用補充」紀律&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backend/05 deploy&lt;/td>
 &lt;td>Skeleton + Rich&lt;/td>
 &lt;td>80%&lt;/td>
 &lt;td>Rich case 判讀層被當 fact 引用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backend/06 reliability&lt;/td>
 &lt;td>Medium 全套&lt;/td>
 &lt;td>88%&lt;/td>
 &lt;td>Medium case 實作層擴寫過頭&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>backend/07 batch 1&lt;/td>
 &lt;td>Medium + Skeleton&lt;/td>
 &lt;td>81%&lt;/td>
 &lt;td>跨 case 合成 frame 升級成 case 揭露&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>最高的 92.9% 跟最低的 70% 差 23 個百分點 — 關鍵變數是引用紀律、案例品質本身只佔次要因素。Skeleton case 嚴守「揭露方向」、不擴寫成 rich case 樣式、就能達到 90%+。&lt;/p>
&lt;hr>
&lt;h2 id="三類-case-的判讀條件">三類 case 的判讀條件&lt;/h2>
&lt;h3 id="skeleton-case揭露-x-方向通用補充">Skeleton case：「揭露 X 方向、通用補充」&lt;/h3>
&lt;p>典型：模組內部 N.Cx 案例庫中只有 frame、無具體數字的短篇 case。內容深度 10-30 行、給「議題」「視角」、不給「實作細節」。&lt;/p>
&lt;p>承接紀律：&lt;/p>
&lt;ul>
&lt;li>引用為「揭露 X 方向」、不引用為「揭露 N 個具體場景數量」&lt;/li>
&lt;li>後面補「以下展開基於通用工程知識補充」明示分層&lt;/li>
&lt;li>不為了「整齊的 4 個攻擊面」「3 個攻擊向量」這種數字感、把 case 沒寫的 taxonomy 寫成 case 揭露&lt;/li>
&lt;/ul>
&lt;p>例：Meta Cache Consistency case 只給「promotion、shard move、故障恢復」三個方向 → 引用為「揭露三個方向」、不引用為「揭露具體 inconsistency window 數字」。&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>案例引用深度是寫作層的紀律工具：把 case 分成 skeleton / medium / rich 三類、各類對應不同承接句型、讓引用斷言能反向 trace 回 case 原文。誤判類型會引發 over-extrapolation（編造 case 沒寫的細節）或 under-citation（漏掉 case 揭露的 mechanism）、reviewer 抓出後修正成本高。</p>
<table>
  <thead>
      <tr>
          <th>Case 類型</th>
          <th>行數</th>
          <th>內容密度</th>
          <th>承接句型</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Skeleton case</td>
          <td>10-30 行</td>
          <td>只給方向、無具體數字 / taxonomy</td>
          <td>「揭露 X 方向、以下基於通用工程知識補充」</td>
      </tr>
      <tr>
          <td>Medium case</td>
          <td>30-50 行</td>
          <td>結構化 mechanism + 訊號名稱、無具體數字</td>
          <td>「揭露 N 個機制 — A、B、C、D」用 mechanism 名稱精準引用</td>
      </tr>
      <tr>
          <td>Rich case</td>
          <td>50-200 行</td>
          <td>含具體數字（RPS / 延遲 / TPS）、設計細節</td>
          <td>「揭露 X 觀察 + 作者判讀 Y（明示分層）」</td>
      </tr>
  </tbody>
</table>
<p>跨類型混合引用要分層處理 — 同段內若引兩類 case、先寫 rich case fact 作為支撐、再用 skeleton case 補方向、不混合成單一斷言。</p>
<hr>
<h2 id="為什麼這層紀律重要">為什麼這層紀律重要</h2>
<p>LLM 從 case 反推內容時、訓練資料的「通用知識」會自動補進章節。當 case 沒寫的 mechanism / 數字 / taxonomy 被寫成「對應 [case]：揭露 X」斷言、讀者回查 case 時會發現章節說的「揭露」實際是 LLM 編造。</p>
<p>backend/01-07 七模組驗證（<a href="../../posts/case-first-agent-team-review-workflow/">case-first workflow</a> 的 case fidelity reviewer 抓的數據）：</p>
<table>
  <thead>
      <tr>
          <th>模組</th>
          <th>主要 case 類型</th>
          <th>Case fidelity</th>
          <th>主要失分類型</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>backend/02 cache</td>
          <td>Skeleton</td>
          <td>78%</td>
          <td>三層 cache latency 編造、ops/sec 編造</td>
      </tr>
      <tr>
          <td>backend/03 msgq</td>
          <td>Skeleton</td>
          <td>70%（最低）</td>
          <td>三方向擴寫成「4 個誤配場景」</td>
      </tr>
      <tr>
          <td>backend/04 obs</td>
          <td>Skeleton</td>
          <td>92.9%（最高）</td>
          <td>嚴守「揭露方向、通用補充」紀律</td>
      </tr>
      <tr>
          <td>backend/05 deploy</td>
          <td>Skeleton + Rich</td>
          <td>80%</td>
          <td>Rich case 判讀層被當 fact 引用</td>
      </tr>
      <tr>
          <td>backend/06 reliability</td>
          <td>Medium 全套</td>
          <td>88%</td>
          <td>Medium case 實作層擴寫過頭</td>
      </tr>
      <tr>
          <td>backend/07 batch 1</td>
          <td>Medium + Skeleton</td>
          <td>81%</td>
          <td>跨 case 合成 frame 升級成 case 揭露</td>
      </tr>
  </tbody>
</table>
<p>最高的 92.9% 跟最低的 70% 差 23 個百分點 — 關鍵變數是引用紀律、案例品質本身只佔次要因素。Skeleton case 嚴守「揭露方向」、不擴寫成 rich case 樣式、就能達到 90%+。</p>
<hr>
<h2 id="三類-case-的判讀條件">三類 case 的判讀條件</h2>
<h3 id="skeleton-case揭露-x-方向通用補充">Skeleton case：「揭露 X 方向、通用補充」</h3>
<p>典型：模組內部 N.Cx 案例庫中只有 frame、無具體數字的短篇 case。內容深度 10-30 行、給「議題」「視角」、不給「實作細節」。</p>
<p>承接紀律：</p>
<ul>
<li>引用為「揭露 X 方向」、不引用為「揭露 N 個具體場景數量」</li>
<li>後面補「以下展開基於通用工程知識補充」明示分層</li>
<li>不為了「整齊的 4 個攻擊面」「3 個攻擊向量」這種數字感、把 case 沒寫的 taxonomy 寫成 case 揭露</li>
</ul>
<p>例：Meta Cache Consistency case 只給「promotion、shard move、故障恢復」三個方向 → 引用為「揭露三個方向」、不引用為「揭露具體 inconsistency window 數字」。</p>
<h3 id="medium-case揭露-n-個機制--abc">Medium case：「揭露 N 個機制 — A、B、C」</h3>
<p>典型：模組內部 case 庫中、含結構化「決策機制」+「可觀測訊號」表、但無具體數字的中篇 case。內容深度 30-50 行、含 mechanism 名稱 + 訊號名稱、但不給 RPS / 延遲數字。</p>
<p>承接紀律：</p>
<ul>
<li>用 case 直接列出的 <em>mechanism 名稱</em> 精準引用、比 skeleton 精準、比 rich 保守</li>
<li>不擴寫到 case 沒提的具體實作層（會踩「實作層擴寫過頭」失分）</li>
<li>「決策機制」段通常是 fact 層、「常見陷阱」段可能含作者判讀層、引用時也要分層</li>
</ul>
<p>例：Amazon Shuffle Sharding case 揭露 cell boundary / shuffle sharding / static stability / constant work 四機制 → 引用四機制名稱、但不擴寫到「具體 shard 數量」「具體 cell 大小」等 case 沒提的細節。</p>
<h3 id="rich-case揭露具體-x-數字--設計">Rich case：「揭露具體 X 數字 / 設計」</h3>
<p>典型：跨模組 case 庫中含具體數字、設計細節、遷移路徑的長篇 case。內容深度 50-200 行、含具體 fact + 引用源。</p>
<p>承接紀律：</p>
<ul>
<li>可直接引用為事實、case 揭露的具體數字（RPS、延遲、TPS、stale window）可放進章節</li>
<li>但 rich case 內常含「觀察層」（具體 fact）跟「判讀層」（作者推論）、引用時要分層（見 <a href="../fact-vs-derive-citation-layering/">#116 fact-vs-derive 分層引用</a>）</li>
<li>引用判讀層時用「揭露 X 觀察 + 作者判讀 Y」明示分層、避免把推論寫成 fact</li>
</ul>
<p>例：Amazon Ads case「90M RPS + 5M writes/sec + 99.999%」 → 可直接寫進 KV 章節作為 reference。</p>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Skeleton case 引用寫成「揭露 4 個具體場景」</td>
          <td>編造 case 沒寫的 taxonomy、reviewer B 抓 critical</td>
      </tr>
      <tr>
          <td>Skeleton case 引用補具體數字（從通用知識補進去）</td>
          <td>「Tubi 三層 cache L1 &lt; 1ms / L2 &lt; 10ms / L3 10-100ms」這類編造數字</td>
      </tr>
      <tr>
          <td>Medium case 引用擴寫到 case 沒提的實作細節</td>
          <td>「具體 shard 數量」「具體 partition key 數量」這類 over-extrapolation</td>
      </tr>
      <tr>
          <td>Rich case 引用合併觀察 + 判讀層</td>
          <td>「揭露 35ms latency 反推 region 部署」（35ms 是觀察、reasoning 是判讀）</td>
      </tr>
      <tr>
          <td>引用時不標 case 類型、寫稿時憑感覺承接深度</td>
          <td>跨章累積失分、reviewer 抓出後修正成本高</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="stage-1-抽-findings-時的判讀步驟">Stage 1 抽 findings 時的判讀步驟</h2>
<p>寫教學內容前、stage 1 audit case 庫時要 <em>標明 case 類型</em>：</p>
<ol>
<li>看 case 行數 + 內容密度、初判類型</li>
<li>看是否有具體數字 / 設計細節、確認 Rich case</li>
<li>看是否只給方向 / 議題、確認 Skeleton case</li>
<li>介於中間時、傾向保守判讀為 Skeleton（避免過度承接）</li>
<li>把類型寫進 findings 列表、stage 2 寫作時依類型決定承接深度</li>
</ol>
<p>跨類型混合引用：</p>
<ul>
<li>同一段內若引兩類 case、先寫 rich case fact 作為支撐、再用 skeleton case 補方向</li>
<li>不要把 skeleton case 的方向跟 rich case 的數字混合成單一斷言</li>
<li>跨類型引用時 disclaimer 要明示哪段屬通用、哪段屬 case fact</li>
</ul>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../fact-vs-derive-citation-layering/">#116 Fact vs Derive 分層引用</a></td>
          <td>case 內部 fact / derive 分層 — 本卡看 case 整體類型、#116 看 case 內部結構</td>
      </tr>
      <tr>
          <td><a href="../cross-case-synthesized-frame-must-be-labeled/">#117 跨 case 合成 frame 必須標明</a></td>
          <td>第三類失分 — 章節抽象 frame 不能升級成 case 揭露</td>
      </tr>
      <tr>
          <td><a href="../security-citation-currency-and-precision/">#104 security citation 時效精確</a></td>
          <td>Citation 三大 surface 中的 standard surface — 本卡跟 #116/#117 是 case citation surface、三者並列為 citation 紀律的不同 surface</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>case fidelity 是輪 5（反例 / 邊界）+ stakes 軸（輪 E.5 citation）的具體實作</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>同骨 pattern 在 case 引用 surface 的展現 — 便利的引用句型（補通用知識、不分層）跟 case fidelity 反向</td>
      </tr>
      <tr>
          <td><a href="../single-source-of-truth/">#44 Single Source of Truth</a></td>
          <td>同骨 pattern 在不同 surface 的展現 — #44 處理 engineering value 的住址、本卡處理 narrative attribution 的住址</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>寫到「揭露 N 個」時不確定 N 是不是 case 真的列了</td>
          <td>回 case 原文 grep、不確定就降級為「揭露 X 方向」</td>
      </tr>
      <tr>
          <td>Skeleton case 引用突然出現具體數字（從 LLM 記憶湧現）</td>
          <td>數字幾乎一定是編造、立即刪掉或標 disclaimer</td>
      </tr>
      <tr>
          <td>Rich case 引用句含「才是 / 必須 / 一定 / 關鍵是」</td>
          <td>通常是把作者判讀升級成 fact、退回 case 原文找條件性表述</td>
      </tr>
      <tr>
          <td>同段引用兩類 case 但語氣一致</td>
          <td>分層遺失、重寫成「rich case 補 fact + skeleton case 補方向」</td>
      </tr>
      <tr>
          <td>Findings 列表沒標 case 類型</td>
          <td>Stage 1 紀律失效、回 case 補類型再寫</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：誤判 case 類型 = 引用深度錯位 = case fidelity 失分。Stage 1 抽 findings 時花 30 秒判類型、能省 stage 4 修正 5-10 分鐘 / 案例。</p>
]]></content:encoded></item><item><title>引用案例要分觀察層 / 判讀層、強化詞是錯位訊號</title><link>https://tarrragon.github.io/blog/report/fact-vs-derive-citation-layering/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/fact-vs-derive-citation-layering/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>Fact vs Derive 分層是 rich case 引用的內部紀律：case 內容分成觀察層（具體事實）跟判讀層（作者推論）兩層、章節引用時要各自標明來源、避免把作者判讀升級為 case fact。具體分層：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>層別&lt;/th>
 &lt;th>來源&lt;/th>
 &lt;th>引用紀律&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>觀察層（Fact）&lt;/td>
 &lt;td>case 直接寫的具體事實、數字、設計細節&lt;/td>
 &lt;td>直接引用為事實、可放章節作為支撐&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>判讀層（Derive）&lt;/td>
 &lt;td>case 作者的推論段、「我們判讀」「這意味著」「關鍵是」「核心是」「才是」等詞引出&lt;/td>
 &lt;td>用「作者判讀」「（case 中 X 屬作者推論層、本章引用此推論）」明示分層&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>兩層在章節引用時要分層標明 — 一旦把判讀升級為 fact、章節就失去 case 支撐、讀者回查 case 時會發現章節說的「揭露」實際是作者推論。&lt;/p>
&lt;hr>
&lt;h2 id="跟case-類型決定引用深度的差別">跟「Case 類型決定引用深度」的差別&lt;/h2>
&lt;p>&lt;a href="../case-type-graded-citation-depth/">#115 case 類型決定引用深度&lt;/a> 看 case 整體類型（skeleton / medium / rich）、決定承接深度。本卡看 case 內部結構（觀察 vs 判讀）、決定引用時要不要分層。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>#115 case 類型決定引用深度&lt;/th>
 &lt;th>#116 fact vs derive 分層（本卡）&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>看什麼&lt;/td>
 &lt;td>case 整體（行數 + 內容密度）&lt;/td>
 &lt;td>case 內部結構（觀察段 vs 判讀段）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>主要風險&lt;/td>
 &lt;td>Skeleton 擴寫成 rich case（編造數字）&lt;/td>
 &lt;td>Rich case 內判讀層被當 fact 引用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>應用範圍&lt;/td>
 &lt;td>所有 case 引用都要先判類型&lt;/td>
 &lt;td>主要適用 rich case + medium case 的判讀段&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>對應的失分類型&lt;/td>
 &lt;td>over-extrapolation（編造）&lt;/td>
 &lt;td>fact-derive 錯位（強化詞 / 漏條件）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>兩者互補：&lt;/p>
&lt;ul>
&lt;li>Skeleton case：主要是前者風險（擴寫成 fact）&lt;/li>
&lt;li>Rich case：兩個風險都要防（先判類型、再分層引用）&lt;/li>
&lt;li>Medium case：前者風險低（mechanism 名稱明確）、後者風險中（「常見陷阱」段可能含判讀）&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="為什麼這層紀律重要">為什麼這層紀律重要&lt;/h2>
&lt;p>LLM 寫作引用 rich case 時、容易把兩層壓縮成「揭露 X」、把作者判讀升級為 case fact。讀者回查 case 時會發現章節說的「fact」實際是作者判讀、章節的論述失去 case 支撐。&lt;/p>
&lt;p>backend/05 deployment 模組驗證、case fidelity reviewer 抓出 4 個 high issue 都屬此類：&lt;/p>
&lt;h3 id="實證-1riot-games-35ms-延遲">實證 1：Riot Games 35ms 延遲&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Case 觀察段&lt;/strong>：「35ms 是競技遊戲（VALORANT、League）的可接受上限」&lt;/li>
&lt;li>&lt;strong>Case 判讀段&lt;/strong>：「從這個門檻反推：玩家所在 region 不能跨洲、需要區域 cluster」&lt;/li>
&lt;li>&lt;strong>章節（錯）&lt;/strong>：「揭露 35ms latency 反推 region 部署」← 合併兩層、把判讀寫成揭露&lt;/li>
&lt;li>&lt;strong>章節（對）&lt;/strong>：「揭露 35ms 延遲門檻 + Local Zones / Outposts 區域部署、可推得『延遲門檻反推 region 部署數量』」← 分層標明&lt;/li>
&lt;/ul>
&lt;h3 id="實證-2gcp-k8s-130k-scale">實證 2：GCP K8s 130K scale&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Case 觀察段&lt;/strong>：「control plane 極限取決於 storage backend」+「GCP 用 Spanner 替換 etcd」（兩個分開的點）&lt;/li>
&lt;li>&lt;strong>Case 判讀段&lt;/strong>：「把 storage 從瓶頸變成『showed no signs of not being able to support higher scales』」&lt;/li>
&lt;li>&lt;strong>章節（錯）&lt;/strong>：「揭露 Spanner 替 etcd 才是 K8s 規模極限的關鍵」← 把判讀升級成硬性結論、強化詞「才是」是訊號&lt;/li>
&lt;li>&lt;strong>章節（對）&lt;/strong>：「揭露 control plane vs data plane 容量規劃要分開、storage backend（GCP 用 Spanner 替代 etcd）是 K8s 規模極限的核心瓶頸層」← 保留條件性表述&lt;/li>
&lt;/ul>
&lt;h3 id="實證-3riot-games-漏歷史轉折">實證 3：Riot Games 漏歷史轉折&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Case 觀察段&lt;/strong>：「關鍵架構決策：從 multi-tenant cluster 模型改成 single-tenant per game」&lt;/li>
&lt;li>&lt;strong>章節（錯）&lt;/strong>：「揭露 single-tenant per game 的多 cluster 策略」← 漏掉轉折、只保留終態&lt;/li>
&lt;li>&lt;strong>章節（對）&lt;/strong>：「揭露架構決策從 multi-tenant cluster 改成 single-tenant per game」← 保留 case 揭露的關鍵歷史&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="引用句型對照">引用句型對照&lt;/h2>
&lt;h3 id="skeleton-case-引用">Skeleton case 引用&lt;/h3>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">對應 [X.CN case-title]：揭露 X / Y / Z 三個方向（case 直接列出）；
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">以下展開基於通用工程知識補充。&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="rich-case-引用單層純觀察">Rich case 引用（單層、純觀察）&lt;/h3>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">對應 [X.CN case-title]：揭露 X 具體數字 / 設計（case 觀察層）。&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="rich-case-引用含作者判讀">Rich case 引用（含作者判讀）&lt;/h3>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">對應 [X.CN case-title]：揭露 X 觀察 + 作者判讀 Y（case 中 Y 屬判讀層、
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">本章引用此推論）。&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="rich-case-引用避免硬性結論">Rich case 引用（避免硬性結論）&lt;/h3>
&lt;p>避免使用「才是 / 必須 / 一定 / 關鍵是」這類強化詞、保留 case 原文的條件性表述（「取決於」「核心瓶頸」「主要驅動」）。&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>Fact vs Derive 分層是 rich case 引用的內部紀律：case 內容分成觀察層（具體事實）跟判讀層（作者推論）兩層、章節引用時要各自標明來源、避免把作者判讀升級為 case fact。具體分層：</p>
<table>
  <thead>
      <tr>
          <th>層別</th>
          <th>來源</th>
          <th>引用紀律</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>觀察層（Fact）</td>
          <td>case 直接寫的具體事實、數字、設計細節</td>
          <td>直接引用為事實、可放章節作為支撐</td>
      </tr>
      <tr>
          <td>判讀層（Derive）</td>
          <td>case 作者的推論段、「我們判讀」「這意味著」「關鍵是」「核心是」「才是」等詞引出</td>
          <td>用「作者判讀」「（case 中 X 屬作者推論層、本章引用此推論）」明示分層</td>
      </tr>
  </tbody>
</table>
<p>兩層在章節引用時要分層標明 — 一旦把判讀升級為 fact、章節就失去 case 支撐、讀者回查 case 時會發現章節說的「揭露」實際是作者推論。</p>
<hr>
<h2 id="跟case-類型決定引用深度的差別">跟「Case 類型決定引用深度」的差別</h2>
<p><a href="../case-type-graded-citation-depth/">#115 case 類型決定引用深度</a> 看 case 整體類型（skeleton / medium / rich）、決定承接深度。本卡看 case 內部結構（觀察 vs 判讀）、決定引用時要不要分層。</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>#115 case 類型決定引用深度</th>
          <th>#116 fact vs derive 分層（本卡）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>看什麼</td>
          <td>case 整體（行數 + 內容密度）</td>
          <td>case 內部結構（觀察段 vs 判讀段）</td>
      </tr>
      <tr>
          <td>主要風險</td>
          <td>Skeleton 擴寫成 rich case（編造數字）</td>
          <td>Rich case 內判讀層被當 fact 引用</td>
      </tr>
      <tr>
          <td>應用範圍</td>
          <td>所有 case 引用都要先判類型</td>
          <td>主要適用 rich case + medium case 的判讀段</td>
      </tr>
      <tr>
          <td>對應的失分類型</td>
          <td>over-extrapolation（編造）</td>
          <td>fact-derive 錯位（強化詞 / 漏條件）</td>
      </tr>
  </tbody>
</table>
<p>兩者互補：</p>
<ul>
<li>Skeleton case：主要是前者風險（擴寫成 fact）</li>
<li>Rich case：兩個風險都要防（先判類型、再分層引用）</li>
<li>Medium case：前者風險低（mechanism 名稱明確）、後者風險中（「常見陷阱」段可能含判讀）</li>
</ul>
<hr>
<h2 id="為什麼這層紀律重要">為什麼這層紀律重要</h2>
<p>LLM 寫作引用 rich case 時、容易把兩層壓縮成「揭露 X」、把作者判讀升級為 case fact。讀者回查 case 時會發現章節說的「fact」實際是作者判讀、章節的論述失去 case 支撐。</p>
<p>backend/05 deployment 模組驗證、case fidelity reviewer 抓出 4 個 high issue 都屬此類：</p>
<h3 id="實證-1riot-games-35ms-延遲">實證 1：Riot Games 35ms 延遲</h3>
<ul>
<li><strong>Case 觀察段</strong>：「35ms 是競技遊戲（VALORANT、League）的可接受上限」</li>
<li><strong>Case 判讀段</strong>：「從這個門檻反推：玩家所在 region 不能跨洲、需要區域 cluster」</li>
<li><strong>章節（錯）</strong>：「揭露 35ms latency 反推 region 部署」← 合併兩層、把判讀寫成揭露</li>
<li><strong>章節（對）</strong>：「揭露 35ms 延遲門檻 + Local Zones / Outposts 區域部署、可推得『延遲門檻反推 region 部署數量』」← 分層標明</li>
</ul>
<h3 id="實證-2gcp-k8s-130k-scale">實證 2：GCP K8s 130K scale</h3>
<ul>
<li><strong>Case 觀察段</strong>：「control plane 極限取決於 storage backend」+「GCP 用 Spanner 替換 etcd」（兩個分開的點）</li>
<li><strong>Case 判讀段</strong>：「把 storage 從瓶頸變成『showed no signs of not being able to support higher scales』」</li>
<li><strong>章節（錯）</strong>：「揭露 Spanner 替 etcd 才是 K8s 規模極限的關鍵」← 把判讀升級成硬性結論、強化詞「才是」是訊號</li>
<li><strong>章節（對）</strong>：「揭露 control plane vs data plane 容量規劃要分開、storage backend（GCP 用 Spanner 替代 etcd）是 K8s 規模極限的核心瓶頸層」← 保留條件性表述</li>
</ul>
<h3 id="實證-3riot-games-漏歷史轉折">實證 3：Riot Games 漏歷史轉折</h3>
<ul>
<li><strong>Case 觀察段</strong>：「關鍵架構決策：從 multi-tenant cluster 模型改成 single-tenant per game」</li>
<li><strong>章節（錯）</strong>：「揭露 single-tenant per game 的多 cluster 策略」← 漏掉轉折、只保留終態</li>
<li><strong>章節（對）</strong>：「揭露架構決策從 multi-tenant cluster 改成 single-tenant per game」← 保留 case 揭露的關鍵歷史</li>
</ul>
<hr>
<h2 id="引用句型對照">引用句型對照</h2>
<h3 id="skeleton-case-引用">Skeleton case 引用</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">對應 [X.CN case-title]：揭露 X / Y / Z 三個方向（case 直接列出）；
</span></span><span class="line"><span class="ln">2</span><span class="cl">以下展開基於通用工程知識補充。</span></span></code></pre></div><h3 id="rich-case-引用單層純觀察">Rich case 引用（單層、純觀察）</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">對應 [X.CN case-title]：揭露 X 具體數字 / 設計（case 觀察層）。</span></span></code></pre></div><h3 id="rich-case-引用含作者判讀">Rich case 引用（含作者判讀）</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">對應 [X.CN case-title]：揭露 X 觀察 + 作者判讀 Y（case 中 Y 屬判讀層、
</span></span><span class="line"><span class="ln">2</span><span class="cl">本章引用此推論）。</span></span></code></pre></div><h3 id="rich-case-引用避免硬性結論">Rich case 引用（避免硬性結論）</h3>
<p>避免使用「才是 / 必須 / 一定 / 關鍵是」這類強化詞、保留 case 原文的條件性表述（「取決於」「核心瓶頸」「主要驅動」）。</p>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>引用句含「才是 / 必須 / 一定 / 關鍵是 / 唯一」這類絕對詞</td>
          <td>通常是把作者判讀升級成 fact</td>
      </tr>
      <tr>
          <td>跨越兩段 case 內容（觀察 + 判讀）寫成單一斷言</td>
          <td>應分層、否則 reviewer B 抓 high issue</td>
      </tr>
      <tr>
          <td>引用後直接展開細節、沒給「以下基於通用工程知識補充」承接</td>
          <td>容易把通用知識掛到 case 名下</td>
      </tr>
      <tr>
          <td>漏掉 case 揭露的歷史轉折、只保留終態</td>
          <td>把 case 的「決策轉折」教訓抹平、讀者失去歷史 context</td>
      </tr>
      <tr>
          <td>Stage 1 抽 findings 不標來源層（觀察 / 判讀）</td>
          <td>Stage 2 寫作時無 mark、必踩 fact-derive 錯位</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="stage-1-抽-findings-的標明格式">Stage 1 抽 findings 的標明格式</h2>
<p>抽 findings 時、rich case 的 finding 要標明來源層：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">Finding: 線性擴展是 OLTP 設計最高目標、coordinator 是傳統 OLTP 的擴展瓶頸
</span></span><span class="line"><span class="ln">2</span><span class="cl">來源: 9.C10 Spanner 案例
</span></span><span class="line"><span class="ln">3</span><span class="cl">- 觀察層：「2 nodes → 45K reads/sec, 4 nodes → 90K reads/sec」段（case fact）
</span></span><span class="line"><span class="ln">4</span><span class="cl">- 判讀層：作者「線性擴展是最高目標」是推論（case 中標為判讀）
</span></span><span class="line"><span class="ln">5</span><span class="cl">章節: 1.11 全球分散式 OLTP
</span></span><span class="line"><span class="ln">6</span><span class="cl">引用方式: 觀察層直接引用、判讀層用「作者判讀」明示</span></span></code></pre></div><p>Stage 2 寫作時依照 finding 列表的層別標記決定引用句型。</p>
<hr>
<h2 id="自掃描提示">自掃描提示</h2>
<p>寫作完後、檢查每處 rich case 引用是否：</p>
<ol>
<li>用了「才是 / 必須 / 一定 / 關鍵是 / 唯一」等強化詞 → 通常是把判讀升級成 fact</li>
<li>跨越兩段 case 內容（觀察 + 判讀）卻寫成單一斷言 → 應分層</li>
<li>引用後直接展開細節、沒給「以下基於通用工程知識補充」承接 → 容易把通用知識掛到 case 名下</li>
<li>漏掉 case 揭露的歷史轉折 / 條件 / 邊界 → 重讀 case「決策段」補回</li>
</ol>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../case-type-graded-citation-depth/">#115 案例引用深度跟著 case 類型走</a></td>
          <td>互補 — #115 看 case 整體類型、本卡看 case 內部結構</td>
      </tr>
      <tr>
          <td><a href="../cross-case-synthesized-frame-must-be-labeled/">#117 跨 case 合成 frame 必須標明</a></td>
          <td>第三類失分 — 章節 derive 升級成 case 揭露（07 新發現）</td>
      </tr>
      <tr>
          <td><a href="../security-citation-currency-and-precision/">#104 security citation 時效精確</a></td>
          <td>Citation 三大 surface 中的 standard surface — 本卡是 case citation surface、兩者並列為 citation 紀律的不同 surface（standard / internal-link / case）</td>
      </tr>
      <tr>
          <td><a href="../colloquial-rhetoric-erodes-technical-precision/">#111 口語化修辭稀釋技術精度</a></td>
          <td>強化詞屬「結局描述代替契約描述」、跟本卡的判讀層升級為 fact 同類</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>高 stakes 內容輪 E.5 citation 精確度檢查包含本卡紀律</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>同骨 pattern — 便利的引用句型（壓縮兩層成「揭露 X」、補強化詞）跟 case fidelity 紀律反向</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>引用句含強化詞（才是 / 必須 / 一定）</td>
          <td>回 case 原文確認是 fact 還是 derive、derive 要降級或標明</td>
      </tr>
      <tr>
          <td>找不到 case 原文的對應段</td>
          <td>引用是 LLM 推論、不是 case 揭露、退回「揭露 X 方向」</td>
      </tr>
      <tr>
          <td>Rich case 引用沒分層、整段平鋪</td>
          <td>用「揭露 X 觀察 + 作者判讀 Y」重寫</td>
      </tr>
      <tr>
          <td>章節 + 通用工程知識段沒明確分隔</td>
          <td>補「以下基於通用工程知識補充」承接</td>
      </tr>
      <tr>
          <td>Reviewer B 抓 high issue 集中在 rich case</td>
          <td>紀律失效、整章節重審所有 rich case 引用</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：Fact 跟 derive 的差別在「來源是 case 還是作者」、跟內容對錯無關。讀者回查 case 時、要能反向 trace 章節的每個斷言到 case 原文的對應段、找不到的就是錯位。</p>
]]></content:encoded></item><item><title>跨多個 case 合成的 frame 必須標為章節合成、非 case 原文</title><link>https://tarrragon.github.io/blog/report/cross-case-synthesized-frame-must-be-labeled/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/cross-case-synthesized-frame-must-be-labeled/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>跨 case 合成 frame 必須標為章節合成、非 case 原文揭露。這層紀律規範「章節把多個 case 的失效訊號抽象為更高層概念」時的引用語氣 — 抽象 frame 在 case 原文 grep 不到時、要 explicit 標「本章合成」、避免讀者把章節 derive 當 case fact。兩種寫法的差別：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>情境&lt;/th>
 &lt;th>引用紀律&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Case 原文段直接寫此 frame&lt;/td>
 &lt;td>「兩 case 共同標明 X」&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>章節從多個 case 失效訊號抽象&lt;/td>
 &lt;td>「本章把兩者抽象為 X 是 YYY 視角的合成 frame、非 case 原文框架」&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>兩種寫法的差別在 case fidelity 紀律 — 不只是修辭層的選擇 — reviewer B 對照原文時、會抓「揭露 X」斷言是否有 case 原文支撐。&lt;/p>
&lt;hr>
&lt;h2 id="跟既有-fact-vs-derive-分層的差別">跟既有 fact-vs-derive 分層的差別&lt;/h2>
&lt;p>&lt;a href="../fact-vs-derive-citation-layering/">#116 fact vs derive 分層&lt;/a> 處理 &lt;em>單一 case 內部&lt;/em> 的觀察層 vs 判讀層分層。本卡處理 &lt;em>跨多個 case&lt;/em> 抽象出更高層 frame 的失分類型 — 屬於 fact-derive 紀律的第三類風險：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>類型&lt;/th>
 &lt;th>風險&lt;/th>
 &lt;th>範例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Skeleton 擴寫&lt;/td>
 &lt;td>case 沒提的細節（具體數字、taxonomy）被寫成 case 揭露&lt;/td>
 &lt;td>case 說「異常查詢偵測維度」、章節寫「query 體積 1MB → 10GB / 天」（編造）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Rich case fact-derive 混淆&lt;/td>
 &lt;td>case 有提、但屬作者判讀層的內容被寫成 case fact&lt;/td>
 &lt;td>case 把「35ms」放觀察、「反推 region 部署」放判讀；章節合併（升級判讀）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>跨 case 合成 frame&lt;/strong>（本卡）&lt;/td>
 &lt;td>case &lt;em>單獨&lt;/em> 寫的訊號被章節 &lt;em>跨 case 合成&lt;/em> 抽象為更高層 frame、frame 本身不在任一 case 原文&lt;/td>
 &lt;td>Uber 寫「告警串接不足」、Slack 寫「訊號未匯流」、章節合成「跨工具回查壓力」&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="為什麼這層紀律重要">為什麼這層紀律重要&lt;/h2>
&lt;p>LLM 寫教學內容時容易把多個 case 的相似訊號抽象成 frame、讓段落結構更清楚。但 &lt;em>標明 frame 來源&lt;/em> 直接決定 case fidelity：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Case 真的揭露 frame&lt;/strong>：case 原文段直接寫此 frame、可寫「兩 case 共同標明 X」（屬合法 fact 引用）&lt;/li>
&lt;li>&lt;strong>章節從 case 失效訊號抽象&lt;/strong>：case 寫的是 &lt;em>單獨&lt;/em> 訊號、章節把多個訊號抽象成更高層 frame、要明示「本章合成、非 case 原文」&lt;/li>
&lt;/ul>
&lt;p>漏掉這層 disclaimer、讀者把章節 derive 當成 case fact、回查 case 時會找不到 frame、章節失去 case 支撐。&lt;/p>
&lt;hr>
&lt;h2 id="實證案例">實證案例&lt;/h2>
&lt;p>backend/07 batch 1 模組驗證、case fidelity reviewer 抓的 2 個 high issue 都屬此類：&lt;/p>
&lt;h3 id="實證-177-跨工具回查壓力">實證 1：7.7 跨工具回查壓力&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>章節（錯）&lt;/strong>：「對應 [Uber 2022] 跟 [Slack 2022]：兩個案例都揭露『身分事件後的跨工具回查壓力』」&lt;/li>
&lt;li>&lt;strong>Case 原文&lt;/strong>：Uber 失效控制面寫「身分異常事件與值班告警串接不足」、Slack 寫「程式碼資產存取異常訊號未快速匯流」— 都是 &lt;em>單工具內&lt;/em> 的訊號失效、「跨工具」這個 axis 是章節合成&lt;/li>
&lt;li>&lt;strong>章節（對）&lt;/strong>：「兩個案例分別在身分監控層揭露同類失效訊號 — Uber 標明 X、Slack 標明 Y。本章把兩者抽象為『跨工具回查壓力』是稽核視角的合成 frame、非 case 原文框架。」&lt;/li>
&lt;/ul>
&lt;h3 id="實證-277-平台責任切分">實證 2：7.7 平台責任切分&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>章節（錯）&lt;/strong>：「對應 [SolarWinds 2020]：揭露的『供應鏈事件中的平台責任切分』是稽核層的代表壓力場景」&lt;/li>
&lt;li>&lt;strong>Case 原文&lt;/strong>：失效控制面寫「更新來源信任過於單點」「行為監測難以區分合法元件」「供應鏈異常缺隔離流程」— 都是供應鏈信任議題、不是「平台 vs 產品的 audit 責任分離」&lt;/li>
&lt;li>&lt;strong>章節（對）&lt;/strong>：「案例的失效控制面標明 X / Y / Z。本章把這幾條失效面從供應鏈信任視角延伸到稽核視角、抽象為『平台 vs 產品的責任邊界判讀壓力』— 此 frame 為本章合成、非 case 原文。」&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="反例case-真的揭露-frame不需-disclaimer">反例：case 真的揭露 frame（不需 disclaimer）&lt;/h2>
&lt;p>跨 case 引用是否要標「本章合成」、取決於 frame 在 case 原文是否能 grep 找到。當 case 原文段直接寫此 frame、可直接引用：&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>跨 case 合成 frame 必須標為章節合成、非 case 原文揭露。這層紀律規範「章節把多個 case 的失效訊號抽象為更高層概念」時的引用語氣 — 抽象 frame 在 case 原文 grep 不到時、要 explicit 標「本章合成」、避免讀者把章節 derive 當 case fact。兩種寫法的差別：</p>
<table>
  <thead>
      <tr>
          <th>情境</th>
          <th>引用紀律</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Case 原文段直接寫此 frame</td>
          <td>「兩 case 共同標明 X」</td>
      </tr>
      <tr>
          <td>章節從多個 case 失效訊號抽象</td>
          <td>「本章把兩者抽象為 X 是 YYY 視角的合成 frame、非 case 原文框架」</td>
      </tr>
  </tbody>
</table>
<p>兩種寫法的差別在 case fidelity 紀律 — 不只是修辭層的選擇 — reviewer B 對照原文時、會抓「揭露 X」斷言是否有 case 原文支撐。</p>
<hr>
<h2 id="跟既有-fact-vs-derive-分層的差別">跟既有 fact-vs-derive 分層的差別</h2>
<p><a href="../fact-vs-derive-citation-layering/">#116 fact vs derive 分層</a> 處理 <em>單一 case 內部</em> 的觀察層 vs 判讀層分層。本卡處理 <em>跨多個 case</em> 抽象出更高層 frame 的失分類型 — 屬於 fact-derive 紀律的第三類風險：</p>
<table>
  <thead>
      <tr>
          <th>類型</th>
          <th>風險</th>
          <th>範例</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Skeleton 擴寫</td>
          <td>case 沒提的細節（具體數字、taxonomy）被寫成 case 揭露</td>
          <td>case 說「異常查詢偵測維度」、章節寫「query 體積 1MB → 10GB / 天」（編造）</td>
      </tr>
      <tr>
          <td>Rich case fact-derive 混淆</td>
          <td>case 有提、但屬作者判讀層的內容被寫成 case fact</td>
          <td>case 把「35ms」放觀察、「反推 region 部署」放判讀；章節合併（升級判讀）</td>
      </tr>
      <tr>
          <td><strong>跨 case 合成 frame</strong>（本卡）</td>
          <td>case <em>單獨</em> 寫的訊號被章節 <em>跨 case 合成</em> 抽象為更高層 frame、frame 本身不在任一 case 原文</td>
          <td>Uber 寫「告警串接不足」、Slack 寫「訊號未匯流」、章節合成「跨工具回查壓力」</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="為什麼這層紀律重要">為什麼這層紀律重要</h2>
<p>LLM 寫教學內容時容易把多個 case 的相似訊號抽象成 frame、讓段落結構更清楚。但 <em>標明 frame 來源</em> 直接決定 case fidelity：</p>
<ul>
<li><strong>Case 真的揭露 frame</strong>：case 原文段直接寫此 frame、可寫「兩 case 共同標明 X」（屬合法 fact 引用）</li>
<li><strong>章節從 case 失效訊號抽象</strong>：case 寫的是 <em>單獨</em> 訊號、章節把多個訊號抽象成更高層 frame、要明示「本章合成、非 case 原文」</li>
</ul>
<p>漏掉這層 disclaimer、讀者把章節 derive 當成 case fact、回查 case 時會找不到 frame、章節失去 case 支撐。</p>
<hr>
<h2 id="實證案例">實證案例</h2>
<p>backend/07 batch 1 模組驗證、case fidelity reviewer 抓的 2 個 high issue 都屬此類：</p>
<h3 id="實證-177-跨工具回查壓力">實證 1：7.7 跨工具回查壓力</h3>
<ul>
<li><strong>章節（錯）</strong>：「對應 [Uber 2022] 跟 [Slack 2022]：兩個案例都揭露『身分事件後的跨工具回查壓力』」</li>
<li><strong>Case 原文</strong>：Uber 失效控制面寫「身分異常事件與值班告警串接不足」、Slack 寫「程式碼資產存取異常訊號未快速匯流」— 都是 <em>單工具內</em> 的訊號失效、「跨工具」這個 axis 是章節合成</li>
<li><strong>章節（對）</strong>：「兩個案例分別在身分監控層揭露同類失效訊號 — Uber 標明 X、Slack 標明 Y。本章把兩者抽象為『跨工具回查壓力』是稽核視角的合成 frame、非 case 原文框架。」</li>
</ul>
<h3 id="實證-277-平台責任切分">實證 2：7.7 平台責任切分</h3>
<ul>
<li><strong>章節（錯）</strong>：「對應 [SolarWinds 2020]：揭露的『供應鏈事件中的平台責任切分』是稽核層的代表壓力場景」</li>
<li><strong>Case 原文</strong>：失效控制面寫「更新來源信任過於單點」「行為監測難以區分合法元件」「供應鏈異常缺隔離流程」— 都是供應鏈信任議題、不是「平台 vs 產品的 audit 責任分離」</li>
<li><strong>章節（對）</strong>：「案例的失效控制面標明 X / Y / Z。本章把這幾條失效面從供應鏈信任視角延伸到稽核視角、抽象為『平台 vs 產品的責任邊界判讀壓力』— 此 frame 為本章合成、非 case 原文。」</li>
</ul>
<hr>
<h2 id="反例case-真的揭露-frame不需-disclaimer">反例：case 真的揭露 frame（不需 disclaimer）</h2>
<p>跨 case 引用是否要標「本章合成」、取決於 frame 在 case 原文是否能 grep 找到。當 case 原文段直接寫此 frame、可直接引用：</p>
<h3 id="反例-1邊界設備三同步-mechanism">反例 1：邊界設備三同步 mechanism</h3>
<ul>
<li><strong>章節</strong>：「對應 [Citrix Bleed 2023] 跟 [PAN-OS 2024]：兩個案例的『mechanism 總綱』段共同標明這個三同步原則」</li>
<li><strong>Case 原文</strong>：兩個 case 文末「mechanism 總綱」段確實寫「邊界事件的核心是讓『漏洞修補』『會話 / 憑證失效』『異常痕跡清查』三件事同步發生」</li>
<li><strong>判讀</strong>：frame 在 case 原文、可引用「兩 case 共同標明」、不需 disclaimer</li>
</ul>
<p>差別判斷：</p>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該怎麼寫</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Frame 文字在 case 原文 grep 找得到</td>
          <td>「兩 case 共同標明 X」</td>
      </tr>
      <tr>
          <td>Frame 是章節從 case 失效訊號抽象出</td>
          <td>「本章把 X 抽象為 Y 是 Z 視角的合成 frame」</td>
      </tr>
      <tr>
          <td>部分 case 揭露 frame、部分章節抽象</td>
          <td>兩段拆開、各自標明</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="為什麼-llm-容易踩">為什麼 LLM 容易踩</h2>
<p>從 LLM 寫教學內容的視角看、跨 case 合成 frame 是「自然湧現」的模式：</p>
<ol>
<li>LLM 讀完多個 case 後、會自動抽象出共通 pattern（這是 LLM 的訓練優勢）</li>
<li>寫章節時、章節結構需要 frame 把多個 case 組織起來（教學結構需求）</li>
<li>合成 frame 寫成「兩 case 都揭露 X」最順、不寫 disclaimer 最省字數</li>
<li>結果是 <em>frame 本身不在 case 原文</em>、但章節寫得像 case 揭露</li>
</ol>
<p>LLM 沒辦法 self-detect 這個盲點 — 因為從 LLM 視角、「合成」跟「揭露」在語意上很接近、需要對照 case 原文才能分辨。</p>
<hr>
<h2 id="防範路徑">防範路徑</h2>
<h3 id="stage-2-寫作時主動防範">Stage 2 寫作時主動防範</h3>
<p>每寫一個跨 case 合成 frame、跑「frame 在 case 原文 grep 得到嗎」檢查：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl">rg <span class="s2">&#34;&lt;frame 文字&gt;&#34;</span> &lt;<span class="k">case</span> file&gt;</span></span></code></pre></div><p>抓不到 → 用「本章合成、非 case 原文」disclaimer
抓得到 → 直接引用「兩 case 共同標明」</p>
<h3 id="stage-3-reviewer-b-prompt-補強">Stage 3 reviewer B prompt 補強</h3>
<p>設計 reviewer B prompt 時、要明示「跨 case 合成 frame 必須標為本章合成、非 case 原文」是 high 級 issue 抓取項。沒明示時、reviewer B 容易把這類問題降級為 medium、累積失分。</p>
<p>prompt 應包含：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">特別檢查：當引用句說「兩個 case 都揭露 X」時、確認 X 是 case 原文寫的、
</span></span><span class="line"><span class="ln">2</span><span class="cl">還是章節跨 case 合成的。後者要在引用句明示「本章合成 / 非 case 原文框架」。</span></span></code></pre></div><hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>「兩個案例都揭露 X」但 X 在原文 grep 不到</td>
          <td>章節 derive 升級成 case fact、reviewer B 抓 high issue</td>
      </tr>
      <tr>
          <td>跨 case 引用沒 disclaimer、直接寫「揭露」</td>
          <td>讀者回查 case 找不到對應、章節失去支撐</td>
      </tr>
      <tr>
          <td>Case 失效訊號是單獨 mechanism、章節抽象成上位 frame 但寫得像 case 揭露</td>
          <td>把「合成」包裝成「揭露」、案例驅動寫作的紀律失效</td>
      </tr>
      <tr>
          <td>Stage 3 reviewer B prompt 沒明示此類為 high</td>
          <td>reviewer 容易降級為 medium、累積失分不被優先處理</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../case-type-graded-citation-depth/">#115 案例引用深度跟著 case 類型走</a></td>
          <td>上游卡 — 先判 case 類型、再判跨 case 合成 frame 是否成立</td>
      </tr>
      <tr>
          <td><a href="../fact-vs-derive-citation-layering/">#116 Fact vs Derive 分層引用</a></td>
          <td>同類紀律 — case 內部 fact-derive 分層的延伸、應用到跨 case 情境</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>輪 5（反例 / 邊界）跟輪 E.2（claim → evidence 推論鏈完整）的具體實作</td>
      </tr>
      <tr>
          <td><a href="../multi-pass-review-frame-granularity-blindspot/">#114 Multi-pass frame 顆粒度盲點</a></td>
          <td>同類盲點 — 一個是同 reviewer 多輪 catch 同類錯、本卡是跨 case 合成的章節盲點</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>同骨 pattern — 合成 frame 寫成「兩 case 都揭露 X」最順、不寫 disclaimer 最省字數、便利跟 fidelity 反向</td>
      </tr>
      <tr>
          <td><a href="../security-citation-currency-and-precision/">#104 security citation 時效精確</a></td>
          <td>Citation 三大 surface 中的 standard surface — 本卡跟 #116 是 case citation surface、三者並列為 citation 紀律的不同 surface</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>引用句說「兩個 case 都揭露 X」</td>
          <td>grep case 原文、X 沒寫的話補「本章合成」disclaimer</td>
      </tr>
      <tr>
          <td>Frame 寫得很順但 case 原文沒這個詞</td>
          <td>章節 derive、改成「本章把 X 抽象為 Y」</td>
      </tr>
      <tr>
          <td>Reviewer B 抓 high issue 集中在「跨 case 引用」</td>
          <td>紀律失效、整章節重審跨 case 引用</td>
      </tr>
      <tr>
          <td>寫多 case 比較時想用「兩個都揭露 X」結構</td>
          <td>先 grep 確認、抓不到的話改用「兩個分別揭露 X1 / X2、本章合成 Y」</td>
      </tr>
      <tr>
          <td>Case 是 medium / rich 類型但「揭露 frame」是抽象詞</td>
          <td>通常是合成、不是 case 原文 frame</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：跨 case 合成 frame 本身是合法的寫作技巧、問題在 <em>不標明</em>。一句 disclaimer（「本章合成、非 case 原文」）就能把 fact-derive 紀律補回來、修法成本極低。</p>
]]></content:encoded></item><item><title>Standard-driven 取代 Case-driven 適用 standard framework 比 case 庫成熟的領域</title><link>https://tarrragon.github.io/blog/report/standard-driven-vs-case-driven-domain-judgment/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/standard-driven-vs-case-driven-domain-judgment/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>Standard-driven 是 case-first 的替代策略、適用 standard framework 比 case 庫成熟的領域（如 LLM 安全）。判斷該用哪種策略看四維度：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>Case-driven 適用&lt;/th>
 &lt;th>Standard-driven 適用&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>議題穩定度&lt;/td>
 &lt;td>高（5+ 年穩定）&lt;/td>
 &lt;td>低（&amp;lt; 1 年快速演進）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Case 公開度&lt;/td>
 &lt;td>高（充分的事故公告）&lt;/td>
 &lt;td>中或低（vendor disclosure 偏 marketing）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Standard 成熟度&lt;/td>
 &lt;td>中（多用 case 而非 standard）&lt;/td>
 &lt;td>高（standard framework 已成型）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>維護半衰期&lt;/td>
 &lt;td>長&lt;/td>
 &lt;td>短（6 個月過時）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>典型對照&lt;/strong>：&lt;/p>
&lt;ul>
&lt;li>&lt;em>Case-driven 領域&lt;/em>：分散式系統 / 安全控制面 / 可靠性 / 訊息佇列（案例公開充分、半衰期 5+ 年）&lt;/li>
&lt;li>&lt;em>Standard-driven 領域&lt;/em>：LLM 安全（OWASP LLM Top 10 / MITRE ATLAS 已成型、案例 6 個月過時）、新興 compliance（NIST AI RMF）、cloud-native 標準（CNCF baseline）&lt;/li>
&lt;/ul>
&lt;p>Standard-driven 跟 case-driven 是平行的選項、依領域特性選用 — 兩者各自有適用情境、沒有退化 / 進階關係。誤套會導致 case 庫過早建構（standard-driven 領域）或章節停在教科書級（case-driven 領域）。&lt;/p>
&lt;hr>
&lt;h2 id="為什麼這個-axis-重要">為什麼這個 axis 重要&lt;/h2>
&lt;p>之前的 case-first workflow 預設「沒 case 庫的新主題、要先建 case 庫」— 這暗示缺 case 庫一定要先補。LLM 安全章節驗證了 &lt;em>第三條路&lt;/em>：&lt;/p>
&lt;p>當該領域的 &lt;em>標準框架&lt;/em>（如 OWASP LLM Top 10 2025 / NIST AI RMF 1.0 / MITRE ATLAS）已涵蓋 threat 分類、且 case 維護半衰期短於 standard、章節應 &lt;em>用 standard-driven 取代 case-driven&lt;/em>。&lt;/p>
&lt;p>誤套的代價：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>誤套 case-driven 到 standard-driven 領域&lt;/strong>：建 case 庫 8-12 小時、6 個月後 case 過時、變成維護負擔&lt;/li>
&lt;li>&lt;strong>誤套 standard-driven 到 case-driven 領域&lt;/strong>：章節停留在標準引用、漏掉真實事故才會浮現的議題、scope 盲點&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="standard-driven-章節的寫作策略">Standard-driven 章節的寫作策略&lt;/h2>
&lt;p>當判讀領域屬 standard-driven、章節採以下策略：&lt;/p>
&lt;h3 id="1-章節對齊-standard-framework-分類">1. 章節對齊 standard framework 分類&lt;/h3>
&lt;p>用 framework 章節 ID 標明（如 OWASP LLM01 / NIST AI-1.1）取代「對應 [case] —」斷言。&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">本章的 threat scope 對應 OWASP LLM Top 10 LLM01（Prompt Injection）+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">LLM02（Insecure Output Handling）、NIST AI RMF 1.0 MEASURE-2.7。&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-加-last-reviewed-cadence">2. 加 Last reviewed cadence&lt;/h3>
&lt;p>每 quarter 重評估 standard 版本跟章節對應、寫進 frontmatter：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="nn">---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">title&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;...&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">date&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="ld">2026-05-12&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">description&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;...&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">tags&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;backend&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;security&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;llm&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nn">---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">8&lt;/span>&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">&amp;gt; Last reviewed&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="ld">2026-05-12&lt;/span>&lt;span class="l">（對齊 OWASP LLM Top 10 2025）&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="3案例觸發參考段標明公開案例累積中值得追蹤的方向">3.「案例觸發參考」段標明「公開案例累積中、值得追蹤的方向」&lt;/h3>
&lt;p>不寫「對應 [case] 揭露」斷言、避免引用源不穩定：&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>Standard-driven 是 case-first 的替代策略、適用 standard framework 比 case 庫成熟的領域（如 LLM 安全）。判斷該用哪種策略看四維度：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>Case-driven 適用</th>
          <th>Standard-driven 適用</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>議題穩定度</td>
          <td>高（5+ 年穩定）</td>
          <td>低（&lt; 1 年快速演進）</td>
      </tr>
      <tr>
          <td>Case 公開度</td>
          <td>高（充分的事故公告）</td>
          <td>中或低（vendor disclosure 偏 marketing）</td>
      </tr>
      <tr>
          <td>Standard 成熟度</td>
          <td>中（多用 case 而非 standard）</td>
          <td>高（standard framework 已成型）</td>
      </tr>
      <tr>
          <td>維護半衰期</td>
          <td>長</td>
          <td>短（6 個月過時）</td>
      </tr>
  </tbody>
</table>
<p><strong>典型對照</strong>：</p>
<ul>
<li><em>Case-driven 領域</em>：分散式系統 / 安全控制面 / 可靠性 / 訊息佇列（案例公開充分、半衰期 5+ 年）</li>
<li><em>Standard-driven 領域</em>：LLM 安全（OWASP LLM Top 10 / MITRE ATLAS 已成型、案例 6 個月過時）、新興 compliance（NIST AI RMF）、cloud-native 標準（CNCF baseline）</li>
</ul>
<p>Standard-driven 跟 case-driven 是平行的選項、依領域特性選用 — 兩者各自有適用情境、沒有退化 / 進階關係。誤套會導致 case 庫過早建構（standard-driven 領域）或章節停在教科書級（case-driven 領域）。</p>
<hr>
<h2 id="為什麼這個-axis-重要">為什麼這個 axis 重要</h2>
<p>之前的 case-first workflow 預設「沒 case 庫的新主題、要先建 case 庫」— 這暗示缺 case 庫一定要先補。LLM 安全章節驗證了 <em>第三條路</em>：</p>
<p>當該領域的 <em>標準框架</em>（如 OWASP LLM Top 10 2025 / NIST AI RMF 1.0 / MITRE ATLAS）已涵蓋 threat 分類、且 case 維護半衰期短於 standard、章節應 <em>用 standard-driven 取代 case-driven</em>。</p>
<p>誤套的代價：</p>
<ul>
<li><strong>誤套 case-driven 到 standard-driven 領域</strong>：建 case 庫 8-12 小時、6 個月後 case 過時、變成維護負擔</li>
<li><strong>誤套 standard-driven 到 case-driven 領域</strong>：章節停留在標準引用、漏掉真實事故才會浮現的議題、scope 盲點</li>
</ul>
<hr>
<h2 id="standard-driven-章節的寫作策略">Standard-driven 章節的寫作策略</h2>
<p>當判讀領域屬 standard-driven、章節採以下策略：</p>
<h3 id="1-章節對齊-standard-framework-分類">1. 章節對齊 standard framework 分類</h3>
<p>用 framework 章節 ID 標明（如 OWASP LLM01 / NIST AI-1.1）取代「對應 [case] —」斷言。</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">本章的 threat scope 對應 OWASP LLM Top 10 LLM01（Prompt Injection）+
</span></span><span class="line"><span class="ln">2</span><span class="cl">LLM02（Insecure Output Handling）、NIST AI RMF 1.0 MEASURE-2.7。</span></span></code></pre></div><h3 id="2-加-last-reviewed-cadence">2. 加 Last reviewed cadence</h3>
<p>每 quarter 重評估 standard 版本跟章節對應、寫進 frontmatter：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln">1</span><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w"></span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;...&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w"></span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2026-05-12</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w"></span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;...&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w"></span><span class="nt">tags</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;backend&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;security&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;llm&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="w"></span><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">8</span><span class="cl"><span class="w"></span><span class="nt">&gt; Last reviewed</span><span class="p">:</span><span class="w"> </span><span class="ld">2026-05-12</span><span class="l">（對齊 OWASP LLM Top 10 2025）</span></span></span></code></pre></div><h3 id="3案例觸發參考段標明公開案例累積中值得追蹤的方向">3.「案例觸發參考」段標明「公開案例累積中、值得追蹤的方向」</h3>
<p>不寫「對應 [case] 揭露」斷言、避免引用源不穩定：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="gu">## 案例觸發參考
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">LLM agent prompt injection 的公開案例累積中、值得追蹤的方向：
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="k">-</span> email assistant 場景：閱讀含 injection 的郵件、誘導 agent 觸發外送或洩漏
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="k">-</span> coding agent 場景：讀含 injection 的 PR / issue、誘導 agent 修改非預期檔案
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="k">-</span> 跨 agent chain：injection 在 sub-agent 累積、影響 parent agent 決策
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="k">&gt; </span><span class="ge">**事實查核註**：LLM agent prompt injection 是 2024-2025 快速演進的研究領域、
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="ge"></span><span class="k">&gt; </span><span class="ge">攻擊形態、防禦模式、公開案例都在累積中。建議引用前以 OWASP LLM Top 10、
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="ge"></span>&gt; 近期論文跟主流 vendor 的 incident 公告為準。</span></span></code></pre></div><h3 id="4-引用標準時用版本號">4. 引用標準時用版本號</h3>
<p>OWASP LLM Top 10 <strong>2025</strong> / NIST AI RMF <strong>1.0</strong> / MITRE ATLAS <strong>continuous</strong> — framework 改版要 trigger 章節重審。</p>
<p>引用源規範見 <a href="../security-citation-currency-and-precision/">#104 security citation 時效精確</a>。</p>
<hr>
<h2 id="何時要從-standard-driven-轉回-case-driven">何時要從 standard-driven 轉回 case-driven</h2>
<p>下列 tripwire 出現時、重新評估：</p>
<table>
  <thead>
      <tr>
          <th>Tripwire</th>
          <th>行動</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>該領域累積 5+ 個高可信度 case（vendor + academic + CVE 三來源交叉）</td>
          <td>補完整 case 庫、走 case-first workflow</td>
      </tr>
      <tr>
          <td>跨章 frame 重複出現、SSoT 衝突明顯</td>
          <td>case-driven mechanism 深化能解 SSoT 衝突</td>
      </tr>
      <tr>
          <td>出現「等級類似 SolarWinds」的 incident</td>
          <td>補單個 case、視為 high-impact reference</td>
      </tr>
      <tr>
          <td>讀者反饋章節太抽象、需要具體 case 才能理解 mechanism</td>
          <td>補 single high-impact case、不全建庫</td>
      </tr>
  </tbody>
</table>
<p>不滿足任一條件時、繼續走 standard-driven、不勉強建 case 庫。</p>
<hr>
<h2 id="07-llm-章節實證">07 LLM 章節實證</h2>
<p>backend/07 batch 2（LLM 安全 5 章）驗證 standard-driven 策略：</p>
<ul>
<li>章節 113-137 行、含完整 threat scope + 問題節點表 + 風險邊界</li>
<li>引用 OWASP LLM Top 10 + NIST AI RMF + MITRE ATLAS 取代個別 case 引用</li>
<li>加 <code>Last reviewed: 2026-05-12</code> cadence</li>
<li>「案例觸發參考」段寫「公開案例累積中、值得追蹤的方向」+「事實查核註」</li>
<li>完全不寫「對應 [case] —」斷言、不存在 case fidelity reviewer 該抓的準確性問題</li>
</ul>
<p>對照 backend/01-07 batch 1 的 case-driven 章節、LLM 章節是 <em>用不同方法達到同樣品質</em> — scope 涵蓋真實 production 議題（KV cache 跨租戶、shared prefix optimization、batch 推論順序敏感）、不停在教科書級內容。</p>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>假設「沒 case 庫一定要先建」</td>
          <td>在 standard-driven 領域過早投入建 case 庫、6 個月後過時</td>
      </tr>
      <tr>
          <td>Standard-driven 章節沒加 Last reviewed cadence</td>
          <td>Standard 改版時章節未更新、引用變過時</td>
      </tr>
      <tr>
          <td>Standard-driven 章節寫「對應 [case] —」斷言</td>
          <td>引用源不穩定（vendor disclosure 偏 marketing）、case fidelity 風險高</td>
      </tr>
      <tr>
          <td>Case-driven 領域只用 framework 引用、不用案例</td>
          <td>漏掉真實事故議題、章節停在教科書級</td>
      </tr>
      <tr>
          <td>沒判讀領域類型、直接套 case-first workflow</td>
          <td>浪費 8-12 小時建 case 庫、得不到對應 ROI</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../case-type-graded-citation-depth/">#115 案例引用深度跟著 case 類型走</a></td>
          <td>Case-driven 適用時的 prerequisite — 先判 case 類型再決定承接深度</td>
      </tr>
      <tr>
          <td><a href="../routing-layer-chapter-recognition/">#119 章節已有 routing skeleton 走補強段</a></td>
          <td>本卡的下游 — 領域判為 case-driven 後、單章還要再判結構類型（routing layer / 空白 / 導讀）</td>
      </tr>
      <tr>
          <td><a href="../security-citation-currency-and-precision/">#104 security citation 時效精確</a></td>
          <td>Standard-driven 章節的 citation 紀律核心</td>
      </tr>
      <tr>
          <td><a href="../security-teaching-rigor-asymmetry/">#99 security teaching 嚴格度對應風險不對稱</a></td>
          <td>高 stakes 內容（含 LLM 安全）的審查標準</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>Standard-driven 章節跑輪 E（高 stakes）+ standard 版本對齊（輪 E.5）</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>想寫某領域章節、找不到合適 case 庫</td>
          <td>先判四維度、可能該走 standard-driven、不是先建 case 庫</td>
      </tr>
      <tr>
          <td>Case 引用 6 個月後發現過時、要重寫</td>
          <td>領域屬 standard-driven、改用 framework + Last reviewed cadence</td>
      </tr>
      <tr>
          <td>Standard framework 改版（OWASP 出新版）</td>
          <td>章節 Last reviewed 重審、補對應 framework ID</td>
      </tr>
      <tr>
          <td>該領域累積 5+ 個高可信度 case</td>
          <td>Tripwire 觸發、考慮從 standard-driven 轉回 case-driven</td>
      </tr>
      <tr>
          <td>Vendor disclosure 多偏 marketing、case fidelity 低</td>
          <td>該領域 case 可信度不足、走 standard-driven 更穩定</td>
      </tr>
      <tr>
          <td>想引用 case 但找不到 academic / CVE 三來源交叉</td>
          <td>Case 公開度不足、改用 standard framework</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：寫教學內容的策略要依領域性質選擇 — case-driven 適合議題穩定 + case 公開的領域、standard-driven 適合 framework 比 case 庫成熟的領域。沒有預設策略。</p>
]]></content:encoded></item><item><title>章節已有 routing skeleton 走補強段、不空白擴章</title><link>https://tarrragon.github.io/blog/report/routing-layer-chapter-recognition/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/routing-layer-chapter-recognition/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>Routing layer 章節辨識是擴章策略選擇的前置紀律。章節分三類、各對應不同擴章策略：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>章節類型&lt;/th>
 &lt;th>訊號&lt;/th>
 &lt;th>擴章策略&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>空白章節&lt;/td>
 &lt;td>缺 threat scope / 問題節點表 / 風險邊界、structure 待建&lt;/td>
 &lt;td>走 case-driven 大幅擴章、建完整結構&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Routing layer 章節&lt;/td>
 &lt;td>已有 threat scope + 問題節點表 + 風險邊界 + 案例觸發段&lt;/td>
 &lt;td>走 &lt;em>補強段&lt;/em> 策略（在現有結構內補 mechanism 深化）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>導讀 / 標準引用章節&lt;/td>
 &lt;td>用 framework（OWASP / NIST）為主、案例為輔&lt;/td>
 &lt;td>走 standard-driven、加 Last reviewed cadence、不擴章&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>擴章策略要對應章節結構 — 在 routing layer 章節空白擴章會引發 frame 重複展開或章節失衡。誤判章節類型是 backend/07 batch 1 三個 H issue 的共同根因。&lt;/p>
&lt;hr>
&lt;h2 id="跟-standard-driven-領域判讀的差別">跟 standard-driven 領域判讀的差別&lt;/h2>
&lt;p>&lt;a href="../standard-driven-vs-case-driven-domain-judgment/">#118 standard-driven vs case-driven 領域判讀&lt;/a> 看 &lt;em>領域整體&lt;/em> 該用哪種策略。本卡看 &lt;em>單一章節&lt;/em> 的結構類型決定擴章策略。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>#118 領域判讀（領域級別）&lt;/th>
 &lt;th>#119 章節辨識（章節級別、本卡）&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>看什麼&lt;/td>
 &lt;td>領域整體性質（議題穩定度 / standard 成熟度）&lt;/td>
 &lt;td>單一章節的結構（routing layer / 空白 / 標準引用）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>影響範圍&lt;/td>
 &lt;td>整個模組的寫作策略&lt;/td>
 &lt;td>單章的擴章方式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>互動關係&lt;/td>
 &lt;td>領域判讀為 standard-driven 時、所有章節走 standard-driven&lt;/td>
 &lt;td>領域判讀為 case-driven 時、章節仍可能是 routing layer（走補強段）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>兩者互補：&lt;/p>
&lt;ul>
&lt;li>領域 + 章節同 case-driven：走完整 case-first workflow（空白擴章）&lt;/li>
&lt;li>領域 case-driven + 章節 routing layer：走補強段（在現有結構內補深化）&lt;/li>
&lt;li>領域 standard-driven：所有章節用 standard 引用 + Last reviewed cadence&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="為什麼章節結構決定擴章策略">為什麼章節結構決定擴章策略&lt;/h2>
&lt;p>case-first workflow 之前預設「章節空白、case 庫驅動擴章」— 但實務中常遇到 &lt;em>章節已有 routing layer skeleton&lt;/em> 的情境（如 backend/07 batch 1 紅隊核心安全 7 章）：&lt;/p>
&lt;ul>
&lt;li>章節已有 &lt;em>threat scope&lt;/em>（In-scope / Out-of-scope 路由）&lt;/li>
&lt;li>已有 &lt;em>問題節點表&lt;/em>（4-6 個問題節點 + 判讀訊號 + 風險後果 + 前置控制面）&lt;/li>
&lt;li>已有 &lt;em>風險邊界&lt;/em>（4-6 條升級條件）&lt;/li>
&lt;li>已有 &lt;em>案例觸發參考&lt;/em>（已 link 3-5 個 case）&lt;/li>
&lt;/ul>
&lt;p>這種章節屬 &lt;em>routing layer&lt;/em> 結構 — 完整 skeleton 已存在、case 引用段已 link 既有 case。空白擴章會：&lt;/p>
&lt;ul>
&lt;li>跟既有問題節點表結構衝突&lt;/li>
&lt;li>把章節擴成厚重 case-driven 章節、失衡 routing 性質&lt;/li>
&lt;li>引發 frame 重複展開（既有節點 + 新擴章節點都寫一遍）&lt;/li>
&lt;/ul>
&lt;p>正確策略：&lt;em>補強段&lt;/em> — 在現有結構內補 mechanism 深化段、不重建結構。&lt;/p>
&lt;hr>
&lt;h2 id="routing-layer-章節的判讀訊號">Routing layer 章節的判讀訊號&lt;/h2>
&lt;p>掃描章節時、看以下訊號判斷是否為 routing layer：&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>Routing layer 章節辨識是擴章策略選擇的前置紀律。章節分三類、各對應不同擴章策略：</p>
<table>
  <thead>
      <tr>
          <th>章節類型</th>
          <th>訊號</th>
          <th>擴章策略</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>空白章節</td>
          <td>缺 threat scope / 問題節點表 / 風險邊界、structure 待建</td>
          <td>走 case-driven 大幅擴章、建完整結構</td>
      </tr>
      <tr>
          <td>Routing layer 章節</td>
          <td>已有 threat scope + 問題節點表 + 風險邊界 + 案例觸發段</td>
          <td>走 <em>補強段</em> 策略（在現有結構內補 mechanism 深化）</td>
      </tr>
      <tr>
          <td>導讀 / 標準引用章節</td>
          <td>用 framework（OWASP / NIST）為主、案例為輔</td>
          <td>走 standard-driven、加 Last reviewed cadence、不擴章</td>
      </tr>
  </tbody>
</table>
<p>擴章策略要對應章節結構 — 在 routing layer 章節空白擴章會引發 frame 重複展開或章節失衡。誤判章節類型是 backend/07 batch 1 三個 H issue 的共同根因。</p>
<hr>
<h2 id="跟-standard-driven-領域判讀的差別">跟 standard-driven 領域判讀的差別</h2>
<p><a href="../standard-driven-vs-case-driven-domain-judgment/">#118 standard-driven vs case-driven 領域判讀</a> 看 <em>領域整體</em> 該用哪種策略。本卡看 <em>單一章節</em> 的結構類型決定擴章策略。</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>#118 領域判讀（領域級別）</th>
          <th>#119 章節辨識（章節級別、本卡）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>看什麼</td>
          <td>領域整體性質（議題穩定度 / standard 成熟度）</td>
          <td>單一章節的結構（routing layer / 空白 / 標準引用）</td>
      </tr>
      <tr>
          <td>影響範圍</td>
          <td>整個模組的寫作策略</td>
          <td>單章的擴章方式</td>
      </tr>
      <tr>
          <td>互動關係</td>
          <td>領域判讀為 standard-driven 時、所有章節走 standard-driven</td>
          <td>領域判讀為 case-driven 時、章節仍可能是 routing layer（走補強段）</td>
      </tr>
  </tbody>
</table>
<p>兩者互補：</p>
<ul>
<li>領域 + 章節同 case-driven：走完整 case-first workflow（空白擴章）</li>
<li>領域 case-driven + 章節 routing layer：走補強段（在現有結構內補深化）</li>
<li>領域 standard-driven：所有章節用 standard 引用 + Last reviewed cadence</li>
</ul>
<hr>
<h2 id="為什麼章節結構決定擴章策略">為什麼章節結構決定擴章策略</h2>
<p>case-first workflow 之前預設「章節空白、case 庫驅動擴章」— 但實務中常遇到 <em>章節已有 routing layer skeleton</em> 的情境（如 backend/07 batch 1 紅隊核心安全 7 章）：</p>
<ul>
<li>章節已有 <em>threat scope</em>（In-scope / Out-of-scope 路由）</li>
<li>已有 <em>問題節點表</em>（4-6 個問題節點 + 判讀訊號 + 風險後果 + 前置控制面）</li>
<li>已有 <em>風險邊界</em>（4-6 條升級條件）</li>
<li>已有 <em>案例觸發參考</em>（已 link 3-5 個 case）</li>
</ul>
<p>這種章節屬 <em>routing layer</em> 結構 — 完整 skeleton 已存在、case 引用段已 link 既有 case。空白擴章會：</p>
<ul>
<li>跟既有問題節點表結構衝突</li>
<li>把章節擴成厚重 case-driven 章節、失衡 routing 性質</li>
<li>引發 frame 重複展開（既有節點 + 新擴章節點都寫一遍）</li>
</ul>
<p>正確策略：<em>補強段</em> — 在現有結構內補 mechanism 深化段、不重建結構。</p>
<hr>
<h2 id="routing-layer-章節的判讀訊號">Routing layer 章節的判讀訊號</h2>
<p>掃描章節時、看以下訊號判斷是否為 routing layer：</p>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>屬 routing layer 章節</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>含「## 本章寫作邊界」段</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 本章 threat scope」段（In-scope / Out-of-scope）</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 從本章到實作」段（Mechanism + Delivery chain）</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 問題節點（案例觸發式）」表格</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 跨章議題交叉引用」段</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 常見風險邊界」段</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 案例觸發參考」段</td>
          <td>是</td>
      </tr>
      <tr>
          <td>含「## 下一步路由」段</td>
          <td>是</td>
      </tr>
      <tr>
          <td>章節行數 80-120 行（已有完整結構但不厚重）</td>
          <td>是</td>
      </tr>
  </tbody>
</table>
<p>含 4+ 個訊號 → 屬 routing layer 章節、走補強段策略。</p>
<hr>
<h2 id="補強段策略">補強段策略</h2>
<p>在 routing layer 章節內補 case-driven 深化段、遵守以下紀律：</p>
<h3 id="1-補強段位置">1. 補強段位置</h3>
<p>通常放在「問題節點表」後、「常見風險邊界」前：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln">1</span><span class="cl"><span class="gu">## 問題節點（案例觸發式）
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">| 問題節點 | ... | ... |
</span></span><span class="line"><span class="ln">4</span><span class="cl">
</span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="gu">## [新增補強段：對應某問題節點的 mechanism 深化]
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">7</span><span class="cl">[補強內容、case 引用三段式]
</span></span><span class="line"><span class="ln">8</span><span class="cl">
</span></span><span class="line"><span class="ln">9</span><span class="cl">## 常見風險邊界</span></span></code></pre></div><h3 id="2-補強段的範圍紀律">2. 補強段的範圍紀律</h3>
<ul>
<li>每個補強段對應 1-2 個既有問題節點、不擴新議題</li>
<li>不重建 threat scope / 問題節點表（保留 routing 性質）</li>
<li>補的 mechanism 深化要明示「本節聚焦 X 視角、canonical 在 Y 章」（避免 frame 重複）</li>
</ul>
<h3 id="3-cross-link-密度上升">3. Cross-link 密度上升</h3>
<p>補強段要明示「跟其他章節的視角分工」、否則 reviewer C 會抓 frame 重複展開：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln">1</span><span class="cl"><span class="gu">## 高權限工具的會話收斂節奏
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">身分被取得後、token 撤銷跟 session kill 的時間窗口直接決定攻擊者可觸及的
</span></span><span class="line"><span class="ln">4</span><span class="cl">資產面積、是初始落點橫向擴散的關鍵節流點。會話收斂節奏的 canonical 在
</span></span><span class="line"><span class="ln">5</span><span class="cl">[<span class="nt">7.5 § 會話重放跟全域失效</span>](<span class="na">../transport-trust-and-certificate-lifecycle/#會話重放跟全域失效canonical</span>)、
</span></span><span class="line"><span class="ln">6</span><span class="cl">本節從身分層補 token 撤銷窗口的 specific 訊號。
</span></span><span class="line"><span class="ln">7</span><span class="cl">
</span></span><span class="line"><span class="ln">8</span><span class="cl">對應 [Slack 2022 case]：...</span></span></code></pre></div><hr>
<h2 id="07-batch-1-實證">07 batch 1 實證</h2>
<p>backend/07 batch 1 七章節（identity-access / secrets / entrypoint / transport / credential-rotation / audit / workload-identity）走補強段策略：</p>
<ul>
<li>章節原本 80-100 行、補強後 100-140 行（+20-40 行 / 章）</li>
<li>每章補 2-3 個 mechanism 深化段、對應既有問題節點</li>
<li>三個 H issue（C-H1/H2/H3）都是 frame 重複展開、補強段紀律失效引起</li>
<li>修正後加 cross-link 明示「canonical 在 X 章、本節補 Y 視角」、frame 重複收斂</li>
</ul>
<p>對照 backend/06 reliability 模組（章節空白擴章）：</p>
<ul>
<li>章節原本 30-50 行、擴章後 80-90 行</li>
<li>每章建 mechanism + 訊號 + 反模式完整結構</li>
<li>沒有 routing skeleton 衝突問題</li>
</ul>
<p>兩種策略對應不同章節初始狀態、不互斥。</p>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>在 routing layer 章節空白擴章、忽略既有問題節點表</td>
          <td>Frame 重複展開、章節失衡</td>
      </tr>
      <tr>
          <td>補強段沒明示「canonical 在 X 章、本節補 Y 視角」</td>
          <td>Reviewer C 抓 H issue、SSoT 不清</td>
      </tr>
      <tr>
          <td>補強段重建 threat scope / 問題節點表</td>
          <td>章節結構衝突、原 routing 性質被破壞</td>
      </tr>
      <tr>
          <td>沒先判章節類型、直接套 stage 2 寫作</td>
          <td>走錯策略、擴章失敗</td>
      </tr>
      <tr>
          <td>Routing layer 章節擴成厚重 case-driven 章節</td>
          <td>失衡 routing 性質、跨章導讀路徑斷掉</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../standard-driven-vs-case-driven-domain-judgment/">#118 Standard-driven vs Case-driven 領域判讀</a></td>
          <td>本卡的上游 — 先判讀領域為 case-driven、本卡才適用（standard-driven 領域走 standard 引用、不需章節結構判讀）</td>
      </tr>
      <tr>
          <td><a href="../single-source-of-truth/">#44 Single Source of Truth</a></td>
          <td>同骨 pattern 在不同 surface 的展現 — #44 處理 engineering value 的住址、本卡處理 narrative frame 的章節住址（補強段要明示「canonical 在 X 章」）</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>空白擴章比補強段便利、但便利會偏離意圖（routing 性質）</td>
      </tr>
      <tr>
          <td><a href="../case-type-graded-citation-depth/">#115 案例引用深度跟著 case 類型走</a></td>
          <td>補強段內 case 引用紀律的 prerequisite</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>輪 2（對意圖）的具體實作 — 寫補強段時要對齊章節原有 routing 意圖</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>章節已有完整 threat scope / 問題節點表 / 風險邊界</td>
          <td>走補強段、不空白擴章</td>
      </tr>
      <tr>
          <td>章節 80-120 行、結構完整但內容不厚重</td>
          <td>Routing layer 章節、補強段策略</td>
      </tr>
      <tr>
          <td>章節 30-50 行、缺結構</td>
          <td>空白章節、走 case-driven 大幅擴章</td>
      </tr>
      <tr>
          <td>Reviewer C 抓 frame 重複展開 H issue</td>
          <td>補強段紀律失效、補「canonical 在 X 章」cross-link</td>
      </tr>
      <tr>
          <td>章節擴章後失衡 routing 性質</td>
          <td>退回原章節、補強段重寫、保留 routing layer 結構</td>
      </tr>
      <tr>
          <td>想在 routing layer 章節重建 threat scope</td>
          <td>紀律失效訊號、改用補強段策略</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：擴章策略對應章節結構 — 空白章節走 case-driven 擴章、routing layer 章節走補強段、導讀章節走 standard-driven。三類策略各自有適用情境、選錯會引發 frame 重複展開或章節失衡。</p>
]]></content:encoded></item><item><title>案例引用三段式段落結構：概念定義 → case 引用 → 通用展開</title><link>https://tarrragon.github.io/blog/report/case-citation-three-part-structure/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/case-citation-three-part-structure/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>Case 引用段落要走三段式結構紀律 — 段首是概念定義句、case 引用退到第二位置、最後通用工程知識展開。讓段落結構反映「概念 → 案例 → 操作」的論證流、不是「案例 → 概念 → 操作」的反向流。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>段位&lt;/th>
 &lt;th>內容&lt;/th>
 &lt;th>反模式&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>段首&lt;/td>
 &lt;td>概念定義句：該概念是什麼、承擔什麼責任&lt;/td>
 &lt;td>「對應 [case] 揭露 X」段首取代核心概念&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>第二位置&lt;/td>
 &lt;td>Case 引用：「對應 [case]：揭露 N 個機制 — &amp;hellip;」&lt;/td>
 &lt;td>跨章 13+ 段同句構、case 引用變儀式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>通用展開&lt;/td>
 &lt;td>「以下基於通用工程知識補充」+ 具體操作&lt;/td>
 &lt;td>通用知識直接掛在 case 名下、沒明示分層&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>違反三段式最常見的形式是「概念定義句缺位、case 引用直接當段首」— 讀者尚未理解概念就被丟入案例細節。&lt;/p>
&lt;hr>
&lt;h2 id="跟其他-case-引用紀律的差別">跟其他 case 引用紀律的差別&lt;/h2>
&lt;p>本卡跟 #115 / #116 / #117 是 case 引用紀律的不同 axis、互相正交：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>卡&lt;/th>
 &lt;th>Axis&lt;/th>
 &lt;th>看什麼&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>#115 案例引用深度跟著 case 類型走&lt;/td>
 &lt;td>引用「深度」&lt;/td>
 &lt;td>Case 整體類型（skeleton / medium / rich）決定承接深度&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>#116 Fact vs Derive 分層引用&lt;/td>
 &lt;td>引用「分層」&lt;/td>
 &lt;td>Case 內部結構（觀察層 / 判讀層）決定要不要分層標明&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>#117 跨 case 合成 frame 必須標明&lt;/td>
 &lt;td>引用「合成」&lt;/td>
 &lt;td>跨多 case 抽象 frame 時要 explicit 標「本章合成」&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>#120 案例引用三段式（本卡）&lt;/strong>&lt;/td>
 &lt;td>&lt;strong>引用「結構」&lt;/strong>&lt;/td>
 &lt;td>&lt;strong>段落順序：概念 → case → 通用&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>四 axis 組合起來覆蓋 case 引用的完整紀律。寫每段 case 引用時、四個 axis 都要過一遍。&lt;/p>
&lt;hr>
&lt;h2 id="為什麼這層紀律重要">為什麼這層紀律重要&lt;/h2>
&lt;p>backend/06 模組 reviewer 抓出 11/12 新段都犯「case 引用取代概念定義」的問題、屬最大宗 systemic 違規。原因：&lt;/p>
&lt;ol>
&lt;li>LLM 從 case 反推內容時、容易把 case 揭露當概念出發點&lt;/li>
&lt;li>Case 引用句構單一（「對應 [X]：揭露 N 個機制」）、跨章讀感同質&lt;/li>
&lt;li>概念定義被推到第二段、商業邏輯先於 case 的原則被推翻&lt;/li>
&lt;/ol>
&lt;p>三段式紀律的價值是把「概念」「案例」「展開」三層分離、讓讀者依層級理解。&lt;/p>
&lt;hr>
&lt;h2 id="三段式範例">三段式範例&lt;/h2>
&lt;h3 id="正確結構">正確結構&lt;/h3>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">&lt;span class="gu">## 失效局部化：cell 邊界跟 shuffle sharding
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl">&lt;span class="gu">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl">失效局部化是把單一依賴退化限制在最小可影響範圍的能力。把「依賴 budget」
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl">從統一全域帳本拆成 per-cell 可用度結構、是這層治理的核心責任。失效局部
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl">化要解四個子問題：擴散邊界、熱點重疊、控制面解耦、失敗模式工作量恆定。
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl">對應 [&lt;span class="nt">A1 Amazon Shuffle Sharding 與 Cell 邊界&lt;/span>](&lt;span class="na">.../shuffle-sharding-and-cell-boundary/&lt;/span>)：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl">揭露四個機制對應上述四個子問題 — cell 邊界（擴散邊界）、shuffle sharding
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl">（熱點重疊）、static stability（控制面解耦）、constant work（失敗模式工作
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl">量恆定）。這四個機制把恢復策略從「全域搶救」轉為「分批收斂」。
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl">以下基於通用工程知識補充的具體操作 ...&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="錯誤結構">錯誤結構&lt;/h3>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="gu">## 失效局部化：cell 邊界跟 shuffle sharding
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">&lt;span class="gu">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">依賴 budget 的另一個面向是把失效影響限制在局部、不擴散到全域。多租戶
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">服務跟共享資源服務若沒有明確邊界，單一依賴退化會觸發整體退化。
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">對應 [A1 Amazon Shuffle Sharding 與 Cell 邊界]：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">揭露四個機制 — cell 邊界、shuffle sharding、static stability、constant work。&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>差異：&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>Case 引用段落要走三段式結構紀律 — 段首是概念定義句、case 引用退到第二位置、最後通用工程知識展開。讓段落結構反映「概念 → 案例 → 操作」的論證流、不是「案例 → 概念 → 操作」的反向流。</p>
<table>
  <thead>
      <tr>
          <th>段位</th>
          <th>內容</th>
          <th>反模式</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>段首</td>
          <td>概念定義句：該概念是什麼、承擔什麼責任</td>
          <td>「對應 [case] 揭露 X」段首取代核心概念</td>
      </tr>
      <tr>
          <td>第二位置</td>
          <td>Case 引用：「對應 [case]：揭露 N 個機制 — &hellip;」</td>
          <td>跨章 13+ 段同句構、case 引用變儀式</td>
      </tr>
      <tr>
          <td>通用展開</td>
          <td>「以下基於通用工程知識補充」+ 具體操作</td>
          <td>通用知識直接掛在 case 名下、沒明示分層</td>
      </tr>
  </tbody>
</table>
<p>違反三段式最常見的形式是「概念定義句缺位、case 引用直接當段首」— 讀者尚未理解概念就被丟入案例細節。</p>
<hr>
<h2 id="跟其他-case-引用紀律的差別">跟其他 case 引用紀律的差別</h2>
<p>本卡跟 #115 / #116 / #117 是 case 引用紀律的不同 axis、互相正交：</p>
<table>
  <thead>
      <tr>
          <th>卡</th>
          <th>Axis</th>
          <th>看什麼</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>#115 案例引用深度跟著 case 類型走</td>
          <td>引用「深度」</td>
          <td>Case 整體類型（skeleton / medium / rich）決定承接深度</td>
      </tr>
      <tr>
          <td>#116 Fact vs Derive 分層引用</td>
          <td>引用「分層」</td>
          <td>Case 內部結構（觀察層 / 判讀層）決定要不要分層標明</td>
      </tr>
      <tr>
          <td>#117 跨 case 合成 frame 必須標明</td>
          <td>引用「合成」</td>
          <td>跨多 case 抽象 frame 時要 explicit 標「本章合成」</td>
      </tr>
      <tr>
          <td><strong>#120 案例引用三段式（本卡）</strong></td>
          <td><strong>引用「結構」</strong></td>
          <td><strong>段落順序：概念 → case → 通用</strong></td>
      </tr>
  </tbody>
</table>
<p>四 axis 組合起來覆蓋 case 引用的完整紀律。寫每段 case 引用時、四個 axis 都要過一遍。</p>
<hr>
<h2 id="為什麼這層紀律重要">為什麼這層紀律重要</h2>
<p>backend/06 模組 reviewer 抓出 11/12 新段都犯「case 引用取代概念定義」的問題、屬最大宗 systemic 違規。原因：</p>
<ol>
<li>LLM 從 case 反推內容時、容易把 case 揭露當概念出發點</li>
<li>Case 引用句構單一（「對應 [X]：揭露 N 個機制」）、跨章讀感同質</li>
<li>概念定義被推到第二段、商業邏輯先於 case 的原則被推翻</li>
</ol>
<p>三段式紀律的價值是把「概念」「案例」「展開」三層分離、讓讀者依層級理解。</p>
<hr>
<h2 id="三段式範例">三段式範例</h2>
<h3 id="正確結構">正確結構</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="gu">## 失效局部化：cell 邊界跟 shuffle sharding
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">失效局部化是把單一依賴退化限制在最小可影響範圍的能力。把「依賴 budget」
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">從統一全域帳本拆成 per-cell 可用度結構、是這層治理的核心責任。失效局部
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">化要解四個子問題：擴散邊界、熱點重疊、控制面解耦、失敗模式工作量恆定。
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">對應 [<span class="nt">A1 Amazon Shuffle Sharding 與 Cell 邊界</span>](<span class="na">.../shuffle-sharding-and-cell-boundary/</span>)：
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">揭露四個機制對應上述四個子問題 — cell 邊界（擴散邊界）、shuffle sharding
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">（熱點重疊）、static stability（控制面解耦）、constant work（失敗模式工作
</span></span><span class="line"><span class="ln">10</span><span class="cl">量恆定）。這四個機制把恢復策略從「全域搶救」轉為「分批收斂」。
</span></span><span class="line"><span class="ln">11</span><span class="cl">
</span></span><span class="line"><span class="ln">12</span><span class="cl">以下基於通用工程知識補充的具體操作 ...</span></span></code></pre></div><h3 id="錯誤結構">錯誤結構</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln">1</span><span class="cl"><span class="gu">## 失效局部化：cell 邊界跟 shuffle sharding
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">依賴 budget 的另一個面向是把失效影響限制在局部、不擴散到全域。多租戶
</span></span><span class="line"><span class="ln">4</span><span class="cl">服務跟共享資源服務若沒有明確邊界，單一依賴退化會觸發整體退化。
</span></span><span class="line"><span class="ln">5</span><span class="cl">
</span></span><span class="line"><span class="ln">6</span><span class="cl">對應 [A1 Amazon Shuffle Sharding 與 Cell 邊界]：
</span></span><span class="line"><span class="ln">7</span><span class="cl">揭露四個機制 — cell 邊界、shuffle sharding、static stability、constant work。</span></span></code></pre></div><p>差異：</p>
<ul>
<li><strong>正確</strong>：段首「失效局部化是&hellip;的能力」直接給概念定義、case 揭露的四機制對應到「四個子問題」、讀者懂概念才看到案例</li>
<li><strong>錯誤</strong>：段首用「另一個面向」鋪墊、case 直接列四機制、讀者尚未理解就被丟入案例細節</li>
</ul>
<hr>
<h2 id="案例引用句構分流07-模組強化">案例引用句構分流（07 模組強化）</h2>
<p>即使遵守三段式紀律、跨章 case 引用句構仍會同質化。07 batch 1 驗證 13 處 case 引用 11 處用同一句構「揭露 N 層失效控制面 — A、B、C」、讀者跨章連讀時把 case 引用當儀式而非論證。</p>
<p>分流原則：句構跟著 case 類型走、用 case 自身結構決定引用方式：</p>
<table>
  <thead>
      <tr>
          <th>Case 結構</th>
          <th>適用句構</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Case 直接列 N 個 mechanism</td>
          <td>「揭露 N 層失效控制面 — A、B、C」</td>
      </tr>
      <tr>
          <td>Case 主寫單一壓力場景</td>
          <td>「補的失效訊號是 X、mechanism 是 Y」</td>
      </tr>
      <tr>
          <td>Case 揭露歷史轉折</td>
          <td>「從 X 改成 Y 的關鍵架構決策」</td>
      </tr>
      <tr>
          <td>Case 揭露對比結構</td>
          <td>「揭露兩個層次的對照：A vs B」</td>
      </tr>
      <tr>
          <td>多 case 並列補不同層</td>
          <td>「A case 補 X、B case 補 Y」</td>
      </tr>
      <tr>
          <td>Case 揭露 mechanism 可引用範圍</td>
          <td>「案例『可落地檢查點』直接列出 mechanism 屬可引用範圍」</td>
      </tr>
  </tbody>
</table>
<p>寫多章時刻意變化句構、避免讀者連讀數章感「每段開頭都長一樣」。</p>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>段首直接是「對應 [case]」、沒概念定義句</td>
          <td>商業邏輯先於 case 原則被推翻、讀者尚未理解就被丟入案例細節</td>
      </tr>
      <tr>
          <td>段首用「另一個面向」「不只是 X、是 Y」鋪墊取代概念定義</td>
          <td>推進論證骨架取代概念先行</td>
      </tr>
      <tr>
          <td>三段式中段（case 引用）擴寫成具體實作細節</td>
          <td>把通用工程知識掛在 case 名下、case fidelity 失分</td>
      </tr>
      <tr>
          <td>通用展開段沒明示「以下基於通用工程知識補充」</td>
          <td>讀者誤以為展開內容也來自 case</td>
      </tr>
      <tr>
          <td>跨章 5+ 段用同一句構「揭露 N 層失效控制面」</td>
          <td>Case 引用變儀式、讀者連讀感同質</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="stage-2-自查清單">Stage 2 自查清單</h2>
<p>寫完每章 case 引用後、檢查：</p>
<ol>
<li><strong>段首是否是概念定義句</strong>？（不是 case 引用、不是「另一個面向」鋪墊）</li>
<li><strong>Case 引用是否在第二位置</strong>？（不是段首）</li>
<li><strong>通用展開是否有「以下基於通用工程知識補充」承接</strong>？</li>
<li><strong>句構是否跟前面章節相同</strong>？（同模組超過 3 章用同句構就該變化）</li>
</ol>
<p>掃描指令：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 找段首是 case 引用的段（最嚴格）</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">rg -n <span class="s2">&#34;^對應 \[&#34;</span> &lt;module-paths&gt;
</span></span><span class="line"><span class="ln">3</span><span class="cl">
</span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="c1"># 找 ## 標題後緊接 case 引用的段（要手動 review）</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">rg -B0 -A3 -n <span class="s2">&#34;^## &#34;</span> &lt;file&gt; <span class="p">|</span> rg <span class="s2">&#34;對應 \[&#34;</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl">
</span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="c1"># 找句構同質化（跨檔抓「揭露 N 層失效控制面」出現次數）</span>
</span></span><span class="line"><span class="ln">8</span><span class="cl">rg -c <span class="s2">&#34;揭露[^。]*失效控制面&#34;</span> &lt;module-paths&gt;</span></span></code></pre></div><p><strong>False positive 警示</strong>：<code>^對應 \[</code> 在三段分離結構（概念定義段 → 空行 → case 引用獨立段）下會 false positive、要用 awk 看 prev line 是否為實質概念段：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl">awk <span class="s1">&#39;/^對應 \[/{prev_blank=(prev==&#34;&#34;); print FILENAME &#34;:&#34; NR &#34;: prev_blank=&#34; prev_blank} {prev=$0}&#39;</span> &lt;file&gt;</span></span></code></pre></div><p>prev_blank=1 + 前段有實質概念定義 → 屬規範允許（三段分離）。</p>
<hr>
<h2 id="polish-pass-修法">Polish pass 修法</h2>
<p>如果 stage 3 reviewer 抓出大量「case 引用段首」issue、polish pass 的修法：</p>
<ol>
<li>每個有 issue 的段、在 case 引用前補一句「概念定義 + 核心責任」</li>
<li>不重寫整段、只加 lead sentence（保留 case 引用本身）</li>
<li>變化 case 引用句構：把 11/12 段同一句構打散成 3-4 種變化</li>
<li>修完跑自掃描確認段首不再是 case 引用</li>
</ol>
<p>修法成本：每段補 1-2 句概念定義、單章約 5-10 分鐘、整模組 1-2 小時。</p>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../case-type-graded-citation-depth/">#115 案例引用深度跟著 case 類型走</a></td>
          <td>互補 — 不同 axis、#115 看引用深度、本卡看引用結構</td>
      </tr>
      <tr>
          <td><a href="../fact-vs-derive-citation-layering/">#116 Fact vs Derive 分層引用</a></td>
          <td>互補 — 不同 axis、#116 看 case 內部分層、本卡看段落順序</td>
      </tr>
      <tr>
          <td><a href="../cross-case-synthesized-frame-must-be-labeled/">#117 跨 case 合成 frame 必須標明</a></td>
          <td>互補 — 不同 axis、#117 看跨 case 合成、本卡看單段結構</td>
      </tr>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>互補 — #83 是 review 流程跨輪 frame、本卡是寫作當下段落順序</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>同骨 pattern — 「對應 [case]」當段首最順、不寫概念定義最省字、便利跟意圖對齊反向</td>
      </tr>
      <tr>
          <td><a href="../multi-pass-review-frame-granularity-blindspot/">#114 Multi-pass review 的 frame 顆粒度盲點</a></td>
          <td>句構同質化是 #114 在 case 引用 surface 的具體展現</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>段首是「對應 [case] 揭露 X」</td>
          <td>補概念定義句、case 引用退到第二位置</td>
      </tr>
      <tr>
          <td>段首用「另一個面向」「不只是 X、是 Y」鋪墊</td>
          <td>改成概念定義先行、不用對比骨架推進</td>
      </tr>
      <tr>
          <td>跨章 5+ 段用同句構「揭露 N 層失效控制面」</td>
          <td>Stage 5 polish pass 句構分流</td>
      </tr>
      <tr>
          <td>Reviewer A 抓出「case 引用段首」issue 多</td>
          <td>三段式紀律失效、整模組重審</td>
      </tr>
      <tr>
          <td>通用展開段沒明示「以下基於通用工程知識補充」</td>
          <td>補承接句、讓讀者知道展開內容是通用知識</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：三段式紀律的價值是把「概念 → 案例 → 操作」三層分離、讓讀者依層級理解。段首被 case 引用取代會推翻商業邏輯先於 case 的原則、是 LLM 寫教學內容的系統性傾向。</p>
]]></content:encoded></item><item><title>Agent team context 隔離設計：用不同 instance 換 frame、平行 background 保護主 context</title><link>https://tarrragon.github.io/blog/report/agent-team-context-isolation/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/agent-team-context-isolation/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>Agent team context 隔離是 LLM-era review 工具設計的核心模式 — 用 N 個獨立 reviewer instance 各自跑 background、各自寫 output file、主 context 只接精煉摘要、不被 reviewer 細節污染。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>設計面&lt;/th>
 &lt;th>紀律&lt;/th>
 &lt;th>效果&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Instance 隔離&lt;/td>
 &lt;td>N 個專責 reviewer 各自獨立 context&lt;/td>
 &lt;td>維度盲點分開處理、不互相干擾&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Background 平行&lt;/td>
 &lt;td>不阻塞主 context、可同時跑 3-5 個 reviewer&lt;/td>
 &lt;td>時間從序列 30 分鐘縮到平行 10 分鐘&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>輸出檔案隔離&lt;/td>
 &lt;td>Reviewer 寫 output file、不污染主 conversation&lt;/td>
 &lt;td>主 context 增量 ~3K token、節省 ~80% context&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>主 context 只接摘要&lt;/td>
 &lt;td>Reviewer 完成後回傳精煉彙整&lt;/td>
 &lt;td>修正循環時 context 留給判讀、不被 raw issue 列表佔滿&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>跟 multi-pass review（#83）的差別：#83 是 &lt;em>同一 reviewer 換輪次 frame&lt;/em>（生成 / 對意圖 / 機會成本 / grep / 反例）；本卡是 &lt;em>不同 reviewer instance 各自獨立&lt;/em>（規範 / 案例準確 / 跨章一致 / compositional-writing 等）。兩者正交、可疊加。&lt;/p>
&lt;hr>
&lt;h2 id="跟-multi-pass-review-的差別">跟 multi-pass review 的差別&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>#83 Multi-pass review&lt;/th>
 &lt;th>#121 Agent team context 隔離（本卡）&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>軸定位&lt;/td>
 &lt;td>Frame 軸（一個 reviewer N 輪不同 frame）&lt;/td>
 &lt;td>Instance 軸（N 個 reviewer 各自獨立）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>解決問題&lt;/td>
 &lt;td>Working memory 限制（一輪 catch 不到所有層）&lt;/td>
 &lt;td>Context 污染（單一 reviewer context 被 raw input 佔滿）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>適用對象&lt;/td>
 &lt;td>Author / 單一 reviewer 跑多輪&lt;/td>
 &lt;td>Agent team / 自動化平行 review&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>失敗模式&lt;/td>
 &lt;td>跳輪 → 某維度永遠做一半&lt;/td>
 &lt;td>Instance 數量不足 → 維度覆蓋不全&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>兩軸正交、可疊加 — 同一 reviewer instance 內跑 multi-pass（#83）、跨 reviewer instance 各自獨立（本卡）。Case-first stage 3 設計同時用兩軸：3 個 reviewer instance 各自獨立 + 每個 reviewer 內部跑多輪 frame check。&lt;/p>
&lt;hr>
&lt;h2 id="為什麼這層設計重要">為什麼這層設計重要&lt;/h2>
&lt;p>單一 reviewer 同時處理多維度有兩個限制：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>維度盲點&lt;/strong>：一個 reviewer 同時看寫作規範 + 案例準確性 + 跨章一致性、容易維度互相干擾、最後每個維度都看不深&lt;/li>
&lt;li>&lt;strong>Context 污染&lt;/strong>：reviewer 讀完整 commit + 所有案例 + 所有章節後、自身 context 被佔滿、給的建議也對應主 context 跟著沉重&lt;/li>
&lt;/ol>
&lt;p>Context 隔離解這兩個問題：&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>Agent team context 隔離是 LLM-era review 工具設計的核心模式 — 用 N 個獨立 reviewer instance 各自跑 background、各自寫 output file、主 context 只接精煉摘要、不被 reviewer 細節污染。</p>
<table>
  <thead>
      <tr>
          <th>設計面</th>
          <th>紀律</th>
          <th>效果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Instance 隔離</td>
          <td>N 個專責 reviewer 各自獨立 context</td>
          <td>維度盲點分開處理、不互相干擾</td>
      </tr>
      <tr>
          <td>Background 平行</td>
          <td>不阻塞主 context、可同時跑 3-5 個 reviewer</td>
          <td>時間從序列 30 分鐘縮到平行 10 分鐘</td>
      </tr>
      <tr>
          <td>輸出檔案隔離</td>
          <td>Reviewer 寫 output file、不污染主 conversation</td>
          <td>主 context 增量 ~3K token、節省 ~80% context</td>
      </tr>
      <tr>
          <td>主 context 只接摘要</td>
          <td>Reviewer 完成後回傳精煉彙整</td>
          <td>修正循環時 context 留給判讀、不被 raw issue 列表佔滿</td>
      </tr>
  </tbody>
</table>
<p>跟 multi-pass review（#83）的差別：#83 是 <em>同一 reviewer 換輪次 frame</em>（生成 / 對意圖 / 機會成本 / grep / 反例）；本卡是 <em>不同 reviewer instance 各自獨立</em>（規範 / 案例準確 / 跨章一致 / compositional-writing 等）。兩者正交、可疊加。</p>
<hr>
<h2 id="跟-multi-pass-review-的差別">跟 multi-pass review 的差別</h2>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>#83 Multi-pass review</th>
          <th>#121 Agent team context 隔離（本卡）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>軸定位</td>
          <td>Frame 軸（一個 reviewer N 輪不同 frame）</td>
          <td>Instance 軸（N 個 reviewer 各自獨立）</td>
      </tr>
      <tr>
          <td>解決問題</td>
          <td>Working memory 限制（一輪 catch 不到所有層）</td>
          <td>Context 污染（單一 reviewer context 被 raw input 佔滿）</td>
      </tr>
      <tr>
          <td>適用對象</td>
          <td>Author / 單一 reviewer 跑多輪</td>
          <td>Agent team / 自動化平行 review</td>
      </tr>
      <tr>
          <td>失敗模式</td>
          <td>跳輪 → 某維度永遠做一半</td>
          <td>Instance 數量不足 → 維度覆蓋不全</td>
      </tr>
  </tbody>
</table>
<p>兩軸正交、可疊加 — 同一 reviewer instance 內跑 multi-pass（#83）、跨 reviewer instance 各自獨立（本卡）。Case-first stage 3 設計同時用兩軸：3 個 reviewer instance 各自獨立 + 每個 reviewer 內部跑多輪 frame check。</p>
<hr>
<h2 id="為什麼這層設計重要">為什麼這層設計重要</h2>
<p>單一 reviewer 同時處理多維度有兩個限制：</p>
<ol>
<li><strong>維度盲點</strong>：一個 reviewer 同時看寫作規範 + 案例準確性 + 跨章一致性、容易維度互相干擾、最後每個維度都看不深</li>
<li><strong>Context 污染</strong>：reviewer 讀完整 commit + 所有案例 + 所有章節後、自身 context 被佔滿、給的建議也對應主 context 跟著沉重</li>
</ol>
<p>Context 隔離解這兩個問題：</p>
<ul>
<li>用 N 個專責 reviewer、各自只處理一個維度 → 維度深度提升</li>
<li>Reviewer 各自 background、不污染主 context → 主 context 保留判讀空間</li>
<li>Reviewer 寫 output file、不傳 raw 內容到主 context → 主 context 增量極少</li>
</ul>
<hr>
<h2 id="設計紀律何時用幾個-reviewer">設計紀律：何時用幾個 reviewer</h2>
<p>Reviewer 數量決定取決於審查對象的維度複雜度：</p>
<table>
  <thead>
      <tr>
          <th>審查對象</th>
          <th>Reviewer 數</th>
          <th>維度分配</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Case-driven 章節擴章</td>
          <td>3 個</td>
          <td>A 寫作規範 / B 案例引用準確性 / C 跨章一致性</td>
      </tr>
      <tr>
          <td>方法論 / 自我審查</td>
          <td>4 個</td>
          <td>A 寫作規範 / B 三方自一致性 / C 概念邊界 / D compositional-writing 6 原則</td>
      </tr>
      <tr>
          <td>一般 PR review</td>
          <td>1-2 個</td>
          <td>規範 + correctness、不需要 case fidelity 維度</td>
      </tr>
      <tr>
          <td>高 stakes 內容（資安 / financial）</td>
          <td>4-5 個</td>
          <td>加 epistemic rigor reviewer（claim / evidence / threats）</td>
      </tr>
  </tbody>
</table>
<p>維度設計要對審查對象客製、不要固定一套維度套所有任務。</p>
<hr>
<h2 id="平行-background-的具體實作">平行 background 的具體實作</h2>
<p>Case-first stage 3 的實作 pattern：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1"># Agent tool spawn 平行 background</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="k">for</span> <span class="n">reviewer_id</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;A&#39;</span><span class="p">,</span> <span class="s1">&#39;B&#39;</span><span class="p">,</span> <span class="s1">&#39;C&#39;</span><span class="p">]:</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="n">Agent</span><span class="p">({</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">        <span class="n">description</span><span class="p">:</span> <span class="sa">f</span><span class="s2">&#34;Reviewer </span><span class="si">{</span><span class="n">reviewer_id</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">dimension</span><span class="si">}</span><span class="s2">&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">        <span class="n">subagent_type</span><span class="p">:</span> <span class="s2">&#34;general-purpose&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">        <span class="n">run_in_background</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">        <span class="n">prompt</span><span class="p">:</span> <span class="n">get_reviewer_prompt</span><span class="p">(</span><span class="n">reviewer_id</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="p">})</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="c1"># 主 context 不阻塞、繼續其他工作</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="c1"># Reviewer 完成時主 context 接通知（task-notification）</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="c1"># Reviewer 各自寫 output 到 /tmp/reviewer-{id}-report.md</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="c1"># 主 context 讀 output 彙整、不讀 raw conversation transcript</span></span></span></code></pre></div><p>關鍵設計選擇：</p>
<ol>
<li><strong><code>run_in_background: true</code></strong>：平行跑、不阻塞</li>
<li><strong>Reviewer 寫 output file</strong>：報告寫 <code>/tmp/...</code> 不污染主 conversation</li>
<li><strong>主 context 不讀 reviewer transcript</strong>：只讀 task-notification 的 summary + 最後讀 output file</li>
<li><strong>Reviewer prompt 含「不要佔我主 context、報告寫進檔即可」明示</strong>：避免 reviewer 把 raw issue 都吐回主 conversation</li>
</ol>
<hr>
<h2 id="reviewer-維度設計跟著任務客製化">Reviewer 維度設計：跟著任務客製化</h2>
<p>Reviewer 維度不該固定 — backend/07 batch 1 案例驅動章節用「規範 / 案例 / 跨章一致」三維度、方法論審查用「規範 / 三方自一致 / 概念邊界 / compositional-writing」四維度。</p>
<p>設計原則：</p>
<ul>
<li><strong>拆 axis 不重疊</strong>：每個 reviewer 的維度跟其他 reviewer 互斥（如「規範」vs「案例準確性」是不同 axis）</li>
<li><strong>覆蓋審查對象的關鍵風險</strong>：審查 case-driven 章節要 case fidelity reviewer、審查方法論要三方自一致性 reviewer</li>
<li><strong>預期 issue baseline 設好</strong>：每 reviewer 給 prompt 預期數量、reviewer 不要過度抓 / 漏抓</li>
<li><strong>prompt 含主 context 保護指令</strong>：「報告寫到 /tmp/X-report.md、不要在主 conversation 吐 raw issue」</li>
</ul>
<hr>
<h2 id="反模式">反模式</h2>
<table>
  <thead>
      <tr>
          <th>反模式</th>
          <th>後果</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>單一 reviewer 處理所有維度</td>
          <td>維度盲點 + context 污染、品質下降</td>
      </tr>
      <tr>
          <td>Reviewer 不寫 output file、直接在 conversation 吐 raw issue</td>
          <td>主 context 被 issue 列表佔滿、修正循環沒空間</td>
      </tr>
      <tr>
          <td>Reviewer 維度固定不變、套所有任務</td>
          <td>維度跟審查對象不對齊、漏抓關鍵風險</td>
      </tr>
      <tr>
          <td>Reviewer 不平行、序列跑</td>
          <td>時間成本高、序列 30 分鐘 vs 平行 10 分鐘</td>
      </tr>
      <tr>
          <td>Reviewer prompt 沒明示 baseline</td>
          <td>Reviewer 抓 5 個或 50 個都「完成」、無法判讀品質</td>
      </tr>
      <tr>
          <td>主 context 直接 Read reviewer transcript</td>
          <td>把 raw conversation 拉進主 context、context 污染</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="跟其他抽象層原則的關係">跟其他抽象層原則的關係</h2>
<table>
  <thead>
      <tr>
          <th>原則</th>
          <th>關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="../writing-multi-pass-review/">#83 Writing multi-pass review</a></td>
          <td>互補 — #83 是 frame 軸（一個 reviewer N 輪）、本卡是 instance 軸（N 個 reviewer 各自獨立）、兩軸正交可疊加</td>
      </tr>
      <tr>
          <td><a href="../multi-pass-review-frame-granularity-blindspot/">#114 Multi-pass review 的 frame 顆粒度盲點</a></td>
          <td>解同類問題的不同手法 — #114 用「keyword bank / reader simulation / self-criticism」三機制擴大覆蓋、本卡用 instance 隔離擴大覆蓋</td>
      </tr>
      <tr>
          <td><a href="../ease-of-writing-vs-intent-alignment/">#67 寫作便利度跟意圖對齊反相關</a></td>
          <td>同骨 pattern — 單一 reviewer 處理多維度最便利（不用 spawn / coordinate）、但意圖（深度 review）失準</td>
      </tr>
      <tr>
          <td><a href="../two-occurrence-threshold/">#42 兩次門檻</a></td>
          <td>跨機制 — 同 reviewer 多輪 catch 同類錯（#114）跟跨 reviewer instance（本卡）都是「換工具」的具體實作</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="判讀徵兆">判讀徵兆</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>該做的事</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Reviewer 給的建議「對應主 context 也沉重」</td>
          <td>Reviewer context 被污染、改 background instance 隔離</td>
      </tr>
      <tr>
          <td>主 context 修正循環時、不知道從哪個 issue 開始</td>
          <td>Reviewer 報告沒精煉、補 reviewer prompt 要求 summary 開頭</td>
      </tr>
      <tr>
          <td>多個 reviewer 抓到同類 issue</td>
          <td>維度設計重疊、調整 reviewer 維度分配</td>
      </tr>
      <tr>
          <td>Reviewer 序列跑、單次 review 30 分鐘以上</td>
          <td>改平行 background、預期縮到 10 分鐘</td>
      </tr>
      <tr>
          <td>主 context tokens 在 review 階段增長過快</td>
          <td>Reviewer 沒用 output file、改 prompt 明示「報告寫進檔」</td>
      </tr>
      <tr>
          <td>想複用 reviewer prompt 到不同任務</td>
          <td>維度該重新設計、不是固定一套</td>
      </tr>
  </tbody>
</table>
<p><strong>核心</strong>：Agent team context 隔離是 LLM-era review 工具的設計模式 — 用 instance 隔離換維度深度跟 context 保護。維度設計要對任務客製化、不要固定不變。</p>
]]></content:encoded></item><item><title>案例庫不對齊章節主題時用反向追問取代強掛</title><link>https://tarrragon.github.io/blog/report/case-misalignment-reverse-inquiry/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/report/case-misalignment-reverse-inquiry/</guid><description>&lt;h2 id="結論">結論&lt;/h2>
&lt;p>案例庫主軸跟章節主題不在同一維度時、引用框架要從「正向掛入」切換到「反向追問」。正向掛入適用於「案例直接示範章節主題」、反向追問適用於「案例庫主軸是 A、章節主題是 B、A 與 B 雖正交但 A 可作為 B 重要性的反證」。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>引用框架&lt;/th>
 &lt;th>適用情境&lt;/th>
 &lt;th>句型骨架&lt;/th>
 &lt;th>典型風險&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>正向掛入&lt;/td>
 &lt;td>案例直接示範章節主題&lt;/td>
 &lt;td>「[case]：看 X 如何展示 Y、對照本章 Z 段」&lt;/td>
 &lt;td>對齊時無風險&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>反向追問&lt;/td>
 &lt;td>案例主軸不對應、有反向對照價值&lt;/td>
 &lt;td>「[case] 主軸是 A、不直接示範 B；反問『這條撞牆是否被 B 放大』」&lt;/td>
 &lt;td>仍可能像強掛、要明示分層&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>強掛&lt;/td>
 &lt;td>不對齊時硬用正向句型（誤用）&lt;/td>
 &lt;td>「[case]：看 X 如何決定 Y」、X、Y 在 case 中無具體段落支撐&lt;/td>
 &lt;td>reviewer fact-check 一查就抓出&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>不對齊情境下若硬用正向句型、就會落到強掛。Reviewer 第一輪 audit 抓出後、修正成本是「全段重寫 + 重做案例對照」。先判讀對不對齊、再決定框架、比事後重寫便宜。&lt;/p>
&lt;h2 id="為什麼強掛會發生">為什麼強掛會發生&lt;/h2>
&lt;p>寫作者面對「案例回寫」段時、預設「每章都該有 3-5 個 case 引用」、案例庫實際只有 1-2 個直接相關時、剩下會用 stretch 句型硬掛。stretch 的徵兆通常有三個：&lt;/p>
&lt;ul>
&lt;li>用案例提到的 vendor / 服務名稱掛、不用案例揭露的機制掛&lt;/li>
&lt;li>描述句型抽象、避免具體斷言：「看 X 如何決定 Y」、回查 case 找不到「怎麼決定」&lt;/li>
&lt;li>把案例次要訊息當主軸：case 主軸是 A、引用句只提 B、B 在 case 是一筆帶過&lt;/li>
&lt;/ul>
&lt;p>背後動機是「想讓段落看起來完整」、而非「想讓讀者看到證據」。3-5 個 bullet 變成內在配額、引用變成填空、不是工具。這條動機跟 &lt;a href="https://tarrragon.github.io/blog/report/cadence-homogenization-in-batch-writing/" data-link-title="Cadence 同質化是模板的隱形維度" data-link-desc="規範定義「模板」時通常只指內容欄位（規模對照、tripwire、失敗模式），忽略句型骨架 / 段首語 / 段末收尾語 / 表格前導句 / 過渡詞同樣是模板的一種；批量寫作時最易讓 cadence 同質化、單篇看起來都合規、連讀多篇才浮現預期化；51 vendor 都用「四件事 → 任一缺失就是 X 邊界的待補項目」是案例；自檢要 grep 首句 / 段末句 / 表格前導句、不是只看欄位">#122 Cadence 同質化是模板的隱形維度&lt;/a> 的成因同源 — 模板從「輔助結構」滑落為「強制配額」。&lt;/p>
&lt;h2 id="反向追問步驟">反向追問步驟&lt;/h2>
&lt;p>不對齊時、反向追問的標準操作分三步：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>誠實標示案例庫主軸差異&lt;/strong>：開段直接寫明「本案例庫主軸是 A、直接以 B 為主題的案例較少」、把案例庫的限制當 first-class 訊息傳給讀者。讀者知道後續引用會用反向讀法、而非把它當成直接示範。&lt;/li>
&lt;li>&lt;strong>把案例當「沒做 B 的後果」&lt;/strong>：每個 case 改寫成「在沒有先用 B 收回壓力的前提下、團隊走了哪條路（遷移 / scale-out / vendor 升級）」、case 因此變成 B 重要性的反證。寫作意圖從「示範 B」轉成「示範沒做 B 的代價」。&lt;/li>
&lt;li>&lt;strong>明示分層追問&lt;/strong>：在引用描述句裡寫明追問 — 讀者讀完 case 應主動問「這條撞牆是否被 B 放大」。把追問句寫進引用、讓讀者知道這是反向讀法、而非把 case 當對齊。&lt;/li>
&lt;/ol>
&lt;p>三步驟做完、案例段仍保留同樣多的引用、但語意誠實、reviewer fact-check 不會抓出不符。&lt;/p>
&lt;h2 id="case">Case&lt;/h2>
&lt;p>backend/01.13 &lt;a href="https://tarrragon.github.io/blog/backend/01-database/query-anti-patterns/" data-link-title="1.13 應用層查詢反模式與 Query 預算" data-link-desc="整理 N&amp;#43;1、select *、缺索引、ORM lazy load、long transaction 等查詢反模式與每請求的 query 預算判讀">查詢反模式章節&lt;/a> 在 reviewer audit 階段的具體經驗：&lt;/p>
&lt;p>原寫法：3 個 09 模組 case（DoorDash / Zomato / Standard Chartered）被強掛在「Long-Running Transaction」「Query 預算」這類 application-layer query 反模式主題上。&lt;/p>
&lt;p>Reviewer fact-check 結果：&lt;/p>
&lt;ul>
&lt;li>DoorDash case 主軸是 single-primary 寫入吞吐瓶頸、跟 long transaction 無關&lt;/li>
&lt;li>Zomato case 主軸是 TiDB → DynamoDB 遷移、case 完全沒有 query budget 討論&lt;/li>
&lt;li>Standard Chartered case 主軸是合規驅動容量規劃、跟 N+1 / query 預算 stretch&lt;/li>
&lt;/ul>
&lt;p>2.5 / 3 case 的引用描述跟 case 原文不符。&lt;/p></description><content:encoded><![CDATA[<h2 id="結論">結論</h2>
<p>案例庫主軸跟章節主題不在同一維度時、引用框架要從「正向掛入」切換到「反向追問」。正向掛入適用於「案例直接示範章節主題」、反向追問適用於「案例庫主軸是 A、章節主題是 B、A 與 B 雖正交但 A 可作為 B 重要性的反證」。</p>
<table>
  <thead>
      <tr>
          <th>引用框架</th>
          <th>適用情境</th>
          <th>句型骨架</th>
          <th>典型風險</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>正向掛入</td>
          <td>案例直接示範章節主題</td>
          <td>「[case]：看 X 如何展示 Y、對照本章 Z 段」</td>
          <td>對齊時無風險</td>
      </tr>
      <tr>
          <td>反向追問</td>
          <td>案例主軸不對應、有反向對照價值</td>
          <td>「[case] 主軸是 A、不直接示範 B；反問『這條撞牆是否被 B 放大』」</td>
          <td>仍可能像強掛、要明示分層</td>
      </tr>
      <tr>
          <td>強掛</td>
          <td>不對齊時硬用正向句型（誤用）</td>
          <td>「[case]：看 X 如何決定 Y」、X、Y 在 case 中無具體段落支撐</td>
          <td>reviewer fact-check 一查就抓出</td>
      </tr>
  </tbody>
</table>
<p>不對齊情境下若硬用正向句型、就會落到強掛。Reviewer 第一輪 audit 抓出後、修正成本是「全段重寫 + 重做案例對照」。先判讀對不對齊、再決定框架、比事後重寫便宜。</p>
<h2 id="為什麼強掛會發生">為什麼強掛會發生</h2>
<p>寫作者面對「案例回寫」段時、預設「每章都該有 3-5 個 case 引用」、案例庫實際只有 1-2 個直接相關時、剩下會用 stretch 句型硬掛。stretch 的徵兆通常有三個：</p>
<ul>
<li>用案例提到的 vendor / 服務名稱掛、不用案例揭露的機制掛</li>
<li>描述句型抽象、避免具體斷言：「看 X 如何決定 Y」、回查 case 找不到「怎麼決定」</li>
<li>把案例次要訊息當主軸：case 主軸是 A、引用句只提 B、B 在 case 是一筆帶過</li>
</ul>
<p>背後動機是「想讓段落看起來完整」、而非「想讓讀者看到證據」。3-5 個 bullet 變成內在配額、引用變成填空、不是工具。這條動機跟 <a href="/blog/report/cadence-homogenization-in-batch-writing/" data-link-title="Cadence 同質化是模板的隱形維度" data-link-desc="規範定義「模板」時通常只指內容欄位（規模對照、tripwire、失敗模式），忽略句型骨架 / 段首語 / 段末收尾語 / 表格前導句 / 過渡詞同樣是模板的一種；批量寫作時最易讓 cadence 同質化、單篇看起來都合規、連讀多篇才浮現預期化；51 vendor 都用「四件事 → 任一缺失就是 X 邊界的待補項目」是案例；自檢要 grep 首句 / 段末句 / 表格前導句、不是只看欄位">#122 Cadence 同質化是模板的隱形維度</a> 的成因同源 — 模板從「輔助結構」滑落為「強制配額」。</p>
<h2 id="反向追問步驟">反向追問步驟</h2>
<p>不對齊時、反向追問的標準操作分三步：</p>
<ol>
<li><strong>誠實標示案例庫主軸差異</strong>：開段直接寫明「本案例庫主軸是 A、直接以 B 為主題的案例較少」、把案例庫的限制當 first-class 訊息傳給讀者。讀者知道後續引用會用反向讀法、而非把它當成直接示範。</li>
<li><strong>把案例當「沒做 B 的後果」</strong>：每個 case 改寫成「在沒有先用 B 收回壓力的前提下、團隊走了哪條路（遷移 / scale-out / vendor 升級）」、case 因此變成 B 重要性的反證。寫作意圖從「示範 B」轉成「示範沒做 B 的代價」。</li>
<li><strong>明示分層追問</strong>：在引用描述句裡寫明追問 — 讀者讀完 case 應主動問「這條撞牆是否被 B 放大」。把追問句寫進引用、讓讀者知道這是反向讀法、而非把 case 當對齊。</li>
</ol>
<p>三步驟做完、案例段仍保留同樣多的引用、但語意誠實、reviewer fact-check 不會抓出不符。</p>
<h2 id="case">Case</h2>
<p>backend/01.13 <a href="/blog/backend/01-database/query-anti-patterns/" data-link-title="1.13 應用層查詢反模式與 Query 預算" data-link-desc="整理 N&#43;1、select *、缺索引、ORM lazy load、long transaction 等查詢反模式與每請求的 query 預算判讀">查詢反模式章節</a> 在 reviewer audit 階段的具體經驗：</p>
<p>原寫法：3 個 09 模組 case（DoorDash / Zomato / Standard Chartered）被強掛在「Long-Running Transaction」「Query 預算」這類 application-layer query 反模式主題上。</p>
<p>Reviewer fact-check 結果：</p>
<ul>
<li>DoorDash case 主軸是 single-primary 寫入吞吐瓶頸、跟 long transaction 無關</li>
<li>Zomato case 主軸是 TiDB → DynamoDB 遷移、case 完全沒有 query budget 討論</li>
<li>Standard Chartered case 主軸是合規驅動容量規劃、跟 N+1 / query 預算 stretch</li>
</ul>
<p>2.5 / 3 case 的引用描述跟 case 原文不符。</p>
<p>修正：改用反向追問框架。開段標示「09 案例庫主軸是規模、vendor 與容量壓力、直接以 query 反模式為主題的案例較少」、三個 case 重寫成「遷移 / scale-out / 合規容量規劃前、是否該先用 query 反模式收回單機容量」的反向追問。Reviewer 二輪通過、3 個 case 全保留、語意誠實。</p>
<p>這個 case 揭露的核心：reviewer 抓到的不是「引用太多」、是「引用方向錯」。改框架後同樣 3 個 case、reviewer 滿意。</p>
<h2 id="跟其他卡的關係">跟其他卡的關係</h2>
<p>本卡跟以下三張卡正交、各自處理 case 引用的不同層問題：</p>
<ul>
<li><a href="/blog/report/case-type-graded-citation-depth/" data-link-title="案例引用深度跟著 case 類型走" data-link-desc="skeleton / medium / rich case 各有不同承接深度；誤判類型 → 編造數字 / taxonomy（over-extrapolation）或漏掉 case 揭露的 mechanism（under-citation）；引用前先看 case 行數 &#43; 內容密度判類型、決定該寫『揭露 X 方向』還是『揭露 N 個機制』還是『揭露具體數字 / 設計』">#115 案例引用深度跟著 case 類型走</a> — 處理「case 類型決定引用深度」（skeleton / medium / rich）。本卡處理「case 主軸不對應時的引用框架選擇」、是更上游的問題：先判斷對不對齊、再決定引用深度。</li>
<li><a href="/blog/report/case-citation-three-part-structure/" data-link-title="案例引用三段式段落結構：概念定義 → case 引用 → 通用展開" data-link-desc="Case 引用段落要走三段式結構：(1) 段首概念定義句先寫『該概念是什麼、承擔什麼責任』、(2) 第二位置 case 引用、(3) 通用工程知識展開；段首被 case 引用取代是 06 模組最大宗 systemic 違規（11/12 段都犯）；本卡跟 #115（引用深度）/ #116（內部分層）/ #117（跨 case 合成）正交、處理段落結構順序">#120 案例引用三段式段落結構</a> — 處理「段落結構順序」（概念 → case → 通用展開）。本卡補 #120 的特殊情境：當 case 主軸不對應時、第二段位置的 case 引用該寫什麼。</li>
<li><a href="/blog/report/cadence-homogenization-in-batch-writing/" data-link-title="Cadence 同質化是模板的隱形維度" data-link-desc="規範定義「模板」時通常只指內容欄位（規模對照、tripwire、失敗模式），忽略句型骨架 / 段首語 / 段末收尾語 / 表格前導句 / 過渡詞同樣是模板的一種；批量寫作時最易讓 cadence 同質化、單篇看起來都合規、連讀多篇才浮現預期化；51 vendor 都用「四件事 → 任一缺失就是 X 邊界的待補項目」是案例；自檢要 grep 首句 / 段末句 / 表格前導句、不是只看欄位">#122 Cadence 同質化是模板的隱形維度</a> — 處理「cadence 模板化」。本卡的「強掛」現象背後就是 cadence 模板化的內在動機之一 — 想讓每段都「看起來合規」、結果犧牲語意誠實度。本卡是 #122 在「案例引用」surface 的具體成因 + 修法。</li>
</ul>
<p>跟 <a href="/blog/report/fact-vs-derive-citation-layering/" data-link-title="引用案例要分觀察層 / 判讀層、強化詞是錯位訊號" data-link-desc="引用案例（特別是 rich case）時、case 內容分兩層：觀察層（具體 fact）跟判讀層（作者推論）；兩層在章節引用時要分層標明、避免把作者判讀升級成 case fact；強化詞（才是 / 必須 / 一定 / 關鍵是）通常是錯位訊號、保留 case 原文的條件性表述（取決於 / 核心瓶頸 / 主要驅動）">#116 引用案例要分觀察層 / 判讀層</a> 也有張力：#116 強調觀察層 / 判讀層分明、本卡的反向追問可以視為一種「明示分層」的特殊型 — 把整個引用標為「反向讀法」、相當於把整段都歸到判讀層。</p>
<p>補兩張上位卡：</p>
<ul>
<li><a href="/blog/report/multi-pass-review-frame-granularity-blindspot/" data-link-title="Multi-pass review 的 frame 顆粒度盲點：抽象規則 → 具體訊號的轉譯不完整" data-link-desc="Multi-pass review 跑了 4 輪、字句層問題（口語修辭 / 地區用語 / 依賴 code / 廢話前綴）仍漏 catch——揭露 frame 顆粒度盲點：抽象規則（如「機會成本語氣」「正向陳述」「最重要的話優先說」）沒被轉譯成具體訊號（如 grep keyword bank：「一輩子 / 碰巧 / 撞牆 / 下次 X 時 / 不是 A 而是 B」）。修法是把每條規則展開成可 grep 的 keyword bank、加 reader simulation 輪、加 self-criticism 輪。">#114 Multi-pass review 的 frame 顆粒度盲點</a> — #146 的「抽象斷言訊號」（「看 X 如何 Y」）就是 #114「keyword bank」機制的具體 keyword 條目。本卡是 #114 機制 1 的應用實例 — 給作者一份可直接 grep 的關鍵字清單。</li>
<li><a href="/blog/report/cross-case-synthesized-frame-must-be-labeled/" data-link-title="跨多個 case 合成的 frame 必須標為章節合成、非 case 原文" data-link-desc="當段落把多個 case 的失效訊號抽象為更高層 frame（如『跨工具回查壓力』『平台責任切分』）、要 explicit 標為『本章合成、非 case 原文』；否則章節 derive 會被讀者當成 case fact、回查 case 時發現章節說的『揭露』實際是章節抽象、不是 case 原文框架">#117 跨多 case 合成的 frame 必須標為章節合成</a> — #117 處理「合成必須明示標示」、本卡的「反向追問」也是明示標示的一種 — 把「我用反向讀法解釋案例」明確告知讀者、避免讀者誤以為 case 直接示範了主題。兩者都處理引用層的誠實標示、是姊妹卡。</li>
</ul>
<h2 id="沒這樣做的麻煩">沒這樣做的麻煩</h2>
<p>強掛 case 在以下節點會引爆：</p>
<ul>
<li><strong>Reviewer 第一輪 audit</strong>：fact-check 案例內容 vs 引用描述、不對齊馬上抓出。修正要全段重寫。</li>
<li><strong>讀者回頭追查</strong>：讀者點進 case 看不到引用句宣稱的內容、會懷疑整章其他斷言的可信度。</li>
<li><strong>長期 SSoT 漂移</strong>：案例 case 內容後續更新時、強掛的引用不會跟著更新、變成 stale reference。</li>
</ul>
<p>更深的代價：強掛 case 違反 AGENTS.md 原則八「情境優先於模板」— 把不同案例塞進同一段落模板、抹平案例的真實主軸。Reviewer 抓到的是表面（描述不符）、根因是寫作者讓模板配額凌駕語意誠實度。</p>
<h2 id="判讀徵兆">判讀徵兆</h2>
<p>寫完案例段時、用以下訊號自檢、出現任一就考慮切換到反向追問：</p>
<ul>
<li><strong>抽象句型訊號</strong>：引用句寫成「看 X 如何決定 Y」這種無具體斷言的句型、回查 case 找不到「怎麼決定」的具體段落。</li>
<li><strong>句型雷同訊號</strong>：多個 case 引用句型雷同（都是「看 X、對照 Y 段」）、跟 <a href="/blog/report/cadence-homogenization-in-batch-writing/" data-link-title="Cadence 同質化是模板的隱形維度" data-link-desc="規範定義「模板」時通常只指內容欄位（規模對照、tripwire、失敗模式），忽略句型骨架 / 段首語 / 段末收尾語 / 表格前導句 / 過渡詞同樣是模板的一種；批量寫作時最易讓 cadence 同質化、單篇看起來都合規、連讀多篇才浮現預期化；51 vendor 都用「四件事 → 任一缺失就是 X 邊界的待補項目」是案例；自檢要 grep 首句 / 段末句 / 表格前導句、不是只看欄位">#122 cadence 同質化</a> 重疊。</li>
<li><strong>維度錯位訊號</strong>：章節主題是 application-layer（query 反模式 / 應用層快取設計）、case 庫主軸是 vendor / 規模 / 容量壓力 — 兩者在不同抽象維度。</li>
<li><strong>配額膨脹訊號</strong>：引用句數 ≥ 3 但每個都「邊際相關」、沒有任一個「直接相關」。</li>
</ul>
<p>四個訊號中出現任一、優先切換到反向追問、別把不對齊強寫成對齊。寫作意圖從「填滿段落」轉成「給讀者誠實證據」、case 段才能撐住 reviewer fact-check。</p>
]]></content:encoded></item></channel></rss>