寫好 CLAUDE.md 的 8 條實戰經驗 (8 Practical Rules for Writing an Effective CLAUDE.md)

原始來源與檔名:20260512_2026-05-12T092949+0800-写好 CLAUDE.md 的 8 条经验:让 Claude Code 更懂你的项目.md

來源:[[@vincemask]] / X (Twitter) — 2026-05-07 原始檔名:2026-05-12T092949+0800-写好 CLAUDE.md 的 8 条经验:让 Claude Code 更懂你的项目.md


NAPKIN | 餐巾紙

餐巾紙公式

Bad CLAUDE.md = 2000 lines of history + Vague Wishes (“Write clean code”) Good CLAUDE.md = < 200 lines + “Do NOT” lists + Pointer to Docs + Automated Hooks + MEMORY.md loop

把 CLAUDE.md 當作垃圾桶,塞進所有的公司歷史和技術文件,只會讓 Claude 在冗長的上下文中迷失。頂級玩家的 CLAUDE.md 是一份精簡的路由器與防護網。它告訴 AI 絕對不要碰什麼(禁止清單)、去哪裡找詳細資料(文件指標),並用自動化腳本(Hooks)來強制執行紀律。

一句話

這篇文章總結了在專案中撰寫 CLAUDE.md 的 8 條反直覺經驗。作者指出,CLAUDE.md 的上限是 200 行,其核心價值不在於儲存所有知識,而在於提供「具體可操作的規範」與「明確的禁止清單」。進階技巧包含了:將 CLAUDE.md 作為指向其他架構文檔的指針、在敏感目錄設置區域性 CLAUDE.md、透過 Hooks 腳本強制執行規則,以及設立 MEMORY.md 來建立長期記憶迴圈。

餐巾紙草圖

[The CLAUDE.md Hierarchy]

Root Directory
├── CLAUDE.md  (< 200 lines)
│    ├── Project Overview
│    ├── DO NOT Introduce List (Redux, MUI, etc.)
│    ├── Actionable Rules ("Use named exports")
│    ├── Pointers -> (See docs/architecture.md)
│    └── Triggers -> (Read MEMORY.md on start)

├── .claude/hooks/
│    └── pre-tool-use.json (Forces Prettier/Tests)

└── src/auth/
     └── CLAUDE.md (Local guards: "Never touch token logic")

ROUND 1: SKELETON | 骨架掃描

“這篇文章在說什麼”

ROUND 2: DISSECTION | 血肉解剖

“憑什麼這麼說”

核心論證鏈

  1. Context Window 的零和博弈: Claude Code 每次互動都會載入根目錄的 CLAUDE.md。如果在裡面放了 2000 行的 API 規格,就等於每次提問都自費吃掉大量 Token,且沖淡了當下真正指令的權重(Attention Dilution)。
  2. 預設行為的覆寫 (Overriding Default Bias): 大模型受限於訓練資料,往往有自己的「預設最佳實踐」(例如偏好某些主流庫)。「禁止清單 (Do NOT introduce)」是唯一能以最高權重蓋過模型預設傾向的手段,這防止了技術棧的靜默污染。
  3. 從「語義約束」到「工程約束」: Rule 6 (Hooks) 是全文最硬核的洞見。模型本質上是機率分佈,它永遠有可能「忘記」執行測試。將規則轉化為 Hook 腳本(在模型執行寫檔動作前後觸發),徹底消除了機率誤差,這才是真正的工程化防線。

關鍵證據

邊界條件

ROUND 3: SOUL | 靈魂提取

“還能怎么用”