.claude/rules 是什麼?
依官方記憶文件,它是專案裡的 .claude/rules/ 目錄,每個 .md 檔案涵蓋一個主題(例如 testing.md、api-design.md),會被遞迴發現,所以可以分子目錄。個人版放在 ~/.claude/rules/,對你機器上所有專案適用。
為什麼存在?
官方建議單一 CLAUDE.md 約 200 行以內,更長會耗用 context 並降低遵守度。拆成多個規則檔讓團隊容易維護,而路徑限定讓只和部分程式碼有關的規則,不必每個 session 都佔用 context。
怎麼運作?
沒有 paths 的規則啟動時載入,優先順序同 .claude/CLAUDE.md。有 paths(YAML 清單或逗號分隔字串,內容是 glob)的規則,在 Claude 用 Read、Write、Edit 或算作讀取的 Bash 指令(如對單一檔案 cat、head)碰到符合檔案時才載入。paths 是唯一會被讀的 frontmatter 欄位,載入前 frontmatter 會被拿掉。
對我有什麼影響?
要小心三件事:frontmatter 的 YAML 解析失敗時,規則會被當成沒有 paths 而無條件載入(用 claude --debug 看錯誤);glob 裡的 [ 要寫成 [;指向工作目錄外的 symlink 需要先核准外部匯入,且之後只有沒 paths 的規則會載入。
官方文件的例子:paths: ["src/api/**/*.ts"] 的規則檔,內容是「所有 API 端點都要驗證輸入、使用標準錯誤格式、加上 OpenAPI 註解」,只有 Claude 碰到 src/api 下的 TypeScript 檔案時才進入 context。
優點是規則模組化、只在相關時佔用 context;缺點是多了一種載入時機要追蹤,YAML 寫壞會無聲變成無條件載入。