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 + description | description 與當前任務語意匹配 → 自動啟用 |
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 個關鍵規則 → 觀察效果 → 漸進拆分
相關概念
強連結(原文明確提及)
- CLAUDE.md 4 層機制 — 規則的配方
- CLAUDE.md(專案手冊) — 主規則
- Hooks — 機械式觸發(補強 rules)
- Tasks 任務管理 — 配合 rules 執行
← 回到 wiki