Claude Rules
はじめに
Claude Codeを使い続けていると、Claude.mdに様々なルールを追加していくことになる。
例えば、
フロントエンド開発ルール
バックエンド開発ルール
テスト作成ルール
コミットメッセージ規約
コーディング規約
最初は便利ですが、開発が進むにつれてClaude.mdが肥大化し、管理やパフォーマンスの面で問題が発生することがあります。
そこで登場するのが Claude Rules(ルール機能) 。
📌 Claude.mdが肥大化すると何が起きるのか?
Claude.mdに書かれた内容は、Claude Code起動時に毎回読み込まれます。
そのため、ルールが増え続けると以下の問題が発生します。
⚠️ トークン消費量の増加
Claude.mdの内容は常にコンテキストへ読み込まれます。
つまり、
100行のClaude.md
1000行のClaude.md
では消費トークン量が大きく異なります。
⚠️ 関係のないルールまで読み込まれる
例えば、現在フロントエンド開発をしているにもかかわらず、
バックエンドルール
API設計ルール
テスト規約
まで毎回読み込まれます。これはコンテキストの無駄遣いです。
⚠️ メンテナンス性の低下
Claude.mdが巨大になると、
どこに何が書いてあるか分からない
ルールが重複する
修正箇所を探しづらい
という問題も発生します。
🏪 コンビニのマニュアルで考える
Claude.mdをコンビニのマニュアルに例えると分かりやすいです。
共通マニュアル
例えば、
挨拶方法
レジ操作
接客ルール
などは全員が常に知っておく必要があります。
専門マニュアル
一方で、
ホットスナック担当
調理方法
廃棄ルール
酒・たばこ販売担当
年齢確認方法
販売制限
などは必要な時だけ参照すれば十分です。
Claude.mdに全てを書くということは、
全従業員が全マニュアルを常に暗記する状態
になってしまいます。
これは効率的とは言えません。
💡 解決策:Claude Rules
この問題を解決するのがClaude Rulesです。
Claude公式が提供している機能で、必要な時だけ必要なルールを読み込む仕組みです。
Claude.mdとRulesの違い
| 項目 | Claude.md | Rules |
|---|---|---|
| 読み込み | 常時 | 条件付き |
| トークン消費 | 常に発生 | 必要時のみ |
| 用途 | 共通ルール | 個別ルール |
| 推奨内容 | コーディング規約、禁止事項 | テスト規約、API設計規約 |
📂 Rulesのディレクトリ構成
Rulesを利用する場合は決まったフォルダ構成が必要です。
.claude/
└ rules/
├ frontend.md
├ backend.md
└ testing.md
さらに整理したい場合はサブフォルダも利用できます。
.claude/
└ rules/
├ frontend/
│ └ react.md
├ backend/
│ └ api.md
└ testing/
└ test.md
これはClaude Codeにとって必須ではありませんが、人間が管理しやすくなります。
📝 Ruleファイルの基本構造
RuleファイルはMarkdown形式で作成します。
---
path: src/components/**
---
# Frontend Development Rules
- React Hooksを使用する
- Functional Componentを使用する
構成の意味
フロントマター
---
path: src/components/**
---
ルールを適用する対象を指定します。
本文
# Frontend Development Rules
実際にClaude Codeへ教える内容です。
🔑 path指定が最重要
Rulesの中でも最も重要なのが path です。
pathを指定しない場合
---
---
この場合はClaude.mdと同じです。
起動時に常に読み込まれます。
pathを指定した場合
---
path: src/components/**
---
components配下のファイルを編集するときだけ読み込まれます。
その結果、
トークン節約
コンテキスト効率向上
が実現できます。
📌 Globパターンとは?
pathではGlobパターンを利用します。
これはGitの .gitignore と同じ書き方です。
① 拡張子で指定する
TypeScriptファイルだけ対象
path: "**/*.ts"
テストファイルだけ対象
path: "**/*.test.ts"
Markdownだけ対象
path: "**/*.md"
② ディレクトリで指定する
src配下全て
path: src/**
components配下全て
path: src/components/**
③ 複数拡張子を指定する
TSとTSX両方
path: "**/*.{ts,tsx}"
React開発では非常によく使われます。
🔍 読み込み確認方法
Ruleが読み込まれると、Claude Codeのコンソール上で確認できます。
また、同じセッション内では一度読み込まれたRuleは保持されます。
そのため、
編集
↓
再編集
↓
再読込
という無駄な読み込みは発生しません。
📋 Claude.mdとRulesの使い分け
Claude.mdに書くもの
常に必要なルール
コーディング規約
命名規則
禁止事項
開発方針
Rulesに書くもの
条件付きで必要なルール
React開発ルール
API設計ルール
テストルール
TypeScript専用ルール
ドキュメント作成ルール
🎯 まとめ
Claude.mdが大きくなりすぎると、
トークン消費増加
コンテキスト圧迫
管理性低下
という問題が発生します。
これを解決するためにClaude Rulesを利用します。
Rulesではpathを利用して、「必要な時だけ必要なルールを読み込む」ことが可能になります。
特に大規模プロジェクトでは、
Claude.md → 共通ルール
Rules → 作業別ルール
という役割分担を行うことで、コンテキスト効率を大幅に改善できます。
Claude Codeを本格的に活用するのであれば、Claude.mdだけで管理するのではなく、Rules機能を組み合わせて運用することをおすすめします。