CLAUDE.md 規則範圍判讀可靠性(Harness Engineering 角度)

任務型捕捉檔,記錄一次真實發生的 AI 錯誤案例,以及使用者指出的結構性問題,供後續決定是否需要調整 CLAUDE.md 的規則寫法或引入機械化檢查。

案例

Ingest 西風「向上交換」文章討論主題命名時,使用者提議主題名稱「成功」,AI 直接引用「連結慣例」段落下「頁面名稱應盡量唯一且具體,避免使用 研究 這類泛稱」這條規則,否決「成功」這個提案。但這條規則管的是個別 wiki 頁面命名(因為頁面要被精確 wikilink 到),CLAUDE.md 並沒有對 topics/<topic-name>/ 這層主題名稱設下同樣的限制。AI 把管「頁面」的規則跨層級套用到「主題」,用一個不存在的規則權威否決了使用者合理的提案,且語氣篤定(「我要直接反對」)。使用者指出後 AI 才承認搞混。

使用者指出的深層問題

單次修正(例如存一則 memory 提醒「以後引用規則前先確認段落」)治標不治本:規則適用範圍的判讀,本質上是 AI 在對話當下讀 prose、自行解讀歸屬層級,這個解讀動作是機率性的,不會因為「這次被抓到了」就保證下次不會在其他規則上重犯同樣的錯。

使用者提出的框架是 harness engineering:不追求讓 AI 這次記得、讀對,而是在 AI 外面搭建可驗證、機械化的骨架,讓系統整體的可靠性不依賴模型單次推理表現的好壞。

與現有 CLAUDE.md 原則的關係

這個問題其實呼應 CLAUDE.md「CLAUDE.md 寫作準則」第一條:「觸發條件應能明確判斷,不依賴 AI 自行猜測是否適用」。目前「頁面名稱規則」與「主題名稱規則」寫在同一份 prose 文件的不同段落,段落本身沒有明確標示規則的適用對象(頁面/主題/專案等),要靠 AI 在當下自行判斷歸屬層級——這正是這條準則原本想避免的情況,但目前沒有被套用在這兩條規則上。

待決、尚未收斂

  • 是否要把規則適用對象(頁面/主題/專案/…)在 CLAUDE.md 結構上明確標示出來,讓歸屬判斷不再依賴 AI 當場解讀。
  • 是否有一部分可以交給機械化檢查(Lint)處理,或者這類「規則引用是否符合其宣告範圍」本質上仍需要語意理解、不適合 Lint(參照 chaos/Lint 重新思考 捕捉.md 對 Lint 定位「機械可判斷、不需要語意或脈絡理解」的判準)。
  • 這個問題是否只限於這一組規則,還是 CLAUDE.md 裡其他 prose 規則也有類似的跨層級歧義風險,需要系統性盤點還是個案處理。