Rules Directory(規則目錄)

Claude Code 將原本散落在 CLAUDE.md 的「片段規則」結構化——rules 是模組化單元,每條規則有獨立檔案 + metadata,按上下文自動啟用。

上線時間

2026/03/05 隨 Claude Code 進階能力推出。

為什麼要有 rules?

CLAUDE.md 是「整包規則一起讀」——但實務上:

  • 寫測試時 → 不需要部署規則
  • 改前端時 → 不需要 DB migration 規則
  • 修 bug 時 → 規範規則沒幫助

→ Rules 解決:只在該情境下啟用該規則

結構

.claude/rules/
├── testing.md         ← 寫測試時觸發
├── deploy.md          ← 部署檢查清單
├── frontend-style.md  ← 前端命名規範
└── db-migration.md    ← 資料庫遷移規則

每個 rule 檔頭有 frontmatter:

---
description: "When to apply this rule"
glob: "tests/**/*.ts"     # 檔案路徑觸發
trigger: "auto" | "manual"
---

觸發機制

模式觸發方式
auto + glob改到符合 glob 的檔案 → 自動加入上下文
auto + descriptiondescription 與當前任務語意匹配 → 自動啟用
manual對話中 @rule:testing 才啟用

範例:PAM 系統的 rules

ExamSystem/.claude/rules/
├── testing.md
│   ---
│   description: "撰寫 xUnit + EF InMemory + Moq 單元測試"
│   glob: "ExamSystem.Tests/**/*.cs"
│   ---
│   - 一律用 In-Memory provider
│   - Mock Service 用 Moq
│   - 命名 _ShouldXxx_WhenXxx_
│
├── grading-service.md
│   ---
│   description: "等第與分數計算邏輯"
│   glob: "Services/GradingService.cs"
│   ---
│   - 所有等第計算單一來源
│   - 禁止 Controller 自行實作
│
└── frontend-style.md
    ---
    description: "React 19 元件規範"
    glob: "client-app/src/**/*.tsx"
    ---
    - 用 TanStack Query
    - 顏色用 CSS variables(年代紅)

CLAUDE.md 的關係

CLAUDE.md     = 永遠加入的核心規則
.claude/rules = 按情境條件啟用的規則

文章作者的比喻:CLAUDE.md 是「員工手冊」,rules 是「SOP 抽屜」——做 X 工作打開 X 抽屜。

規則該怎麼分

規則類型該放哪
跨整個專案的核心規範CLAUDE.md
只跟特定目錄相關.claude/rules/<name>.md + glob
跨專案的個人偏好~/.claude/CLAUDE.md
一次性說明對話中 inline

對 Vincent 工作場景

PAM 系統適合拆成 6-8 個 rules:

1. testing.md           ← Service 測試規範
2. grading-service.md   ← 等第計算紅線
3. controller.md        ← 禁拼 SQL、加 [Authorize]
4. frontend-style.md    ← React 規範 + 年代紅
5. migration.md         ← 命名與遷移規則
6. excel-import.md      ← 匯入名單規格
7. pdf-generation.md    ← PDF 套表流程
8. notification.md      ← Email/通知規範

每個 rule 各 < 100 行,組合起來比一個 2400 行 CLAUDE.md 好維護。

限制與建議

  • Rules 太多 → 反而觸發過多無用規則
  • glob 寫太鬆 → 啟用不準
  • 建議:start with 3-5 個關鍵規則 → 觀察效果 → 漸進拆分

相關概念

強連結(原文明確提及)

← 回到 wiki