Conditional Rules — パス指定でルールを絞り込む
.claude/rules/ のfrontmatterでパス指定
.claude/rules/ に配置したMarkdownファイルには、YAML frontmatterで globs を指定できます。これにより、特定のファイルパターンに一致するファイルが初めて使われた時にだけ、そのルールがコンテキストに注入されます。
---
description: API開発ルール
globs:
- "src/api/**/*.ts"
---
注入タイミングと効果
Conditional Rulesは、該当ファイルが初めてコンテキストに登場した時点で注入されます。これはCLAUDE.mdより後のメッセージ位置に挿入されるため、セッション後半でも高い効果を維持します。
ただし、同じファイルが再度使われても再注入はされません(1セッションにつき1回)。
Progressive Disclosure: 必要な時に必要な情報だけ
Conditional Rulesの最大の利点は、不要なルールでコンテキストを消費しないことです。API開発をしていない時にAPI開発ルールを読み込む必要はありません。
使い分けの例
| globs | ルールの内容 |
|---|---|
src/api/** |
APIエンドポイントの設計規約・エラーハンドリング |
src/components/** |
Reactコンポーネントの命名・props設計・アクセシビリティ |
tests/** |
テスト規約・命名規則・カバレッジ基準 |
*.sql |
SQLスタイルガイド・インデックス設計方針 |
*.md |
ドキュメント執筆ルール・文体ガイド |
infra/** |
インフラ構成のセキュリティポリシー |
設定例
# .claude/rules/react-components.md
---
description: Reactコンポーネント開発ルール
globs:
- "src/components/**/*.tsx"
- "src/features/**/components/**/*.tsx"
---
- コンポーネントはnamed exportを使用する
- propsの型定義はコンポーネントと同じファイルに記述する
- 副作用のあるロジックはカスタムhookに分離する
CLAUDE.mdには全体に共通する最小限のルールだけを書き、ファイルスコープのルールはConditional Rulesに任せましょう。