當 Claude Code 忽略你在 CLAUDE.md 中設定的規則時,檔案本身很少是損壞的。通常是規則未能載入、被衝突的規則覆蓋,或者該規則本來就不是上下文檔案能強制執行的。以下是依序檢查的五個原因。
1. 工作階段在錯誤的目錄啟動
當 Claude Code 未能遵循 CLAUDE.md 中的規則時,通常不是檔案損壞,而是規則未能載入、被衝突覆蓋或超出其強制範圍。本文將依序說明五個常見原因,協助使用者診斷並解決問題。

當 Claude Code 忽略你在 CLAUDE.md 中設定的規則時,檔案本身很少是損壞的。通常是規則未能載入、被衝突的規則覆蓋,或者該規則本來就不是上下文檔案能強制執行的。以下是依序檢查的五個原因。
1. 工作階段在錯誤的目錄啟動
Claude Code 會從工作階段啟動的目錄及其所有父目錄載入 CLAUDE.md 和 CLAUDE.local.md。即使檔案存在於儲存庫中,位於同層級套件中的檔案也不會自動生效。例如,若從 services/billing/ 啟動,則計費相關的指引會生效;若從 apps/web/ 啟動,則不會。
2. 巢狀檔案尚未載入
工作目錄下方的檔案不會在啟動時載入。它們會在 Claude 讀取該目錄中的檔案時才載入。如果你從儲存庫根目錄啟動,並在 Claude 開啟 apps/web/ 中的任何內容之前提出問題,那麼網頁相關的指引尚未納入上下文。請執行 /context 指令,查看 Claude Code 報告已載入哪些記憶體檔案。
3. 兩個檔案意見不合
已載入的檔案會依序從根目錄向下到工作目錄合併。較近的檔案會提供更具體的指引,但它不會自動解決衝突。如果根目錄指示「更新鎖定檔案」,而套件檔案指示「絕不更改鎖定檔案」,Claude 將會收到兩條指令,而非一條規則。請為每條規則指定一個負責人,並完整寫出例外情況。
4. 衝突存在於引入的檔案中
CLAUDE.md 可以引入其他文件。被引用檔案中的過時規則,其行為與主檔案中的過時規則完全相同,但更難以察覺。請檢查每個引入的文件以及每個相關目錄中的 .claude/rules/ 資料夾,而不僅僅是頂層檔案。
5. 規則需要強制執行,而非僅是指引
CLAUDE.md 是用來引導 Claude 的上下文,它並非控制層。在 CLAUDE.md 中寫下「絕不讀取 secrets 資料夾」只是一個請求。如果某項操作無論 Claude 如何決定都必須被阻止,請使用權限規則或掛鉤(hook)。
兩分鐘測試
在依賴一套新的指令之前,請執行三個無害的任務:在一個套件內進行更改,Claude 是否會指出該套件的規則和正確的測試指令?在第二個套件內進行更改,它是否會切換到該套件的規則?一項同時涉及兩者的更改,它是否會識別兩個範圍,而不是將一個套件的規則應用到所有地方?在 Claude 編輯之前,請它重述將遵循的規則,如果重述錯誤,請修正指令。然後自行執行測試。指引可以改善行為,而通過的測試或審查就是證據。
撰寫 Claude 能遵循的規則
「徹底測試」留有解釋空間,但「在提出提交之前執行 npm test -w apps/web」則沒有。具體的指令、檔案路徑和範圍能讓規則變得可檢查。
進一步閱讀
包含圖解式 monorepo 和除錯序列的完整文章,可在 Timo Labs 找到:CLAUDE.md hierarchy in Claude Code。若想從考試角度了解,請閱讀 CCAR-F 學習指南中的任務陳述 3.1:CLAUDE.md hierarchy。關於配置決策的免費情境問題,則可在 CCAR-F 練習考試中找到。
覺得值得一看?分享給朋友。
以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。
43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。