Claude Code の .claude/rules/ でファイル種別ごとにルールを分ける(paths 指定の書き方)

Claude Code 公開:

CLAUDE.md が長くなったときに、.claude/rules/ にトピック別の Markdown を置き、paths フロントマターで特定のファイルを扱うときだけ読み込ませる方法を解説します。グロブの書き方、読み込みタイミング、ユーザー用ルールとの優先順位もまとめます。

検証日 2026年9月10日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。
目次
  1. .claude/rules/ の基本
  2. paths でファイル種別ごとに限定する
  3. ユーザー用ルールと共有
  4. まとめ

CLAUDE.md にテストの規約、API の設計方針、フロントエンドのスタイル規則まで書いていくと、あっという間に 200 行を超えます。公式ドキュメントは「長いほど指示への追従が下がる」と明記しており、関係ない規約まで毎回読ませるのは損です。

結論として、.claude/rules/ にトピック別の Markdown を置き、必要なものには paths フロントマターを付けると、そのパターンに一致するファイルを Claude が扱うときだけルールが読み込まれます。

KEY POINT

この記事で分かること

  • .claude/rules/ の置き方と、paths を付けたルールと付けないルールの読み込みタイミング
  • グロブパターンの書き方(拡張子、ディレクトリ、ブレース展開)
  • ユーザー用ルール ~/.claude/rules/ との優先順位と、シンボリックリンクでの共有

.claude/rules/ の基本

プロジェクトの .claude/rules/ ディレクトリに .md ファイルを置きます。1 ファイル 1 トピックで、testing.mdapi-design.md のように内容が分かる名前にします。サブディレクトリも再帰的に探索されるので、frontend/backend/ で分けても構いません。

your-project/
├── .claude/
│   ├── CLAUDE.md
│   └── rules/
│       ├── code-style.md
│       ├── testing.md
│       └── security.md

paths を書かないルールは、セッション開始時に .claude/CLAUDE.md と同じ優先度で読み込まれます。つまり単に CLAUDE.md を分割しただけで、コンテキストの節約にはなりません。節約したい場合は次の paths を使います。

用語解説

パス限定ルール: フロントマターの paths に書いたグロブに一致するファイルを Claude が読んだときだけ読み込まれるルールです。それ以外の作業ではコンテキストを消費しません。

paths でファイル種別ごとに限定する

ルールファイルの先頭に YAML フロントマターを書き、paths にグロブパターンを列挙します。

---
paths:
  - "src/api/**/*.ts"
---

# API 開発ルール

- すべてのエンドポイントに入力バリデーションを付ける
- エラーレスポンスは共通フォーマットを使う
- OpenAPI のドキュメントコメントを書く

パターンの書き方は次のとおりです。

パターン一致するもの
**/*.tsすべてのディレクトリの TypeScript ファイル
src/**/*src/ 配下のすべてのファイル
*.mdプロジェクトルート直下の Markdown
src/components/*.tsx特定ディレクトリの React コンポーネント

複数のパターンや、ブレース展開で複数の拡張子をまとめることもできます。

---
paths:
  - "src/**/*.{ts,tsx}"
  - "lib/**/*.ts"
  - "tests/**/*.test.ts"
---

パス限定ルールは、Claude がパターンに一致するファイルを 読んだとき に読み込まれます。ツールを使うたびに評価されるわけではありません。v2.1.198 以降は、プロジェクトへのシンボリックリンク経由で到達したファイルでも一致します。

ブレース展開の上限と `[` の扱い

ブレース展開はグループごとに掛け算で増えます。{a,b}/{c,d}/*.{ts,tsx} は 8 パターンです。1 つのルールの paths 全体で展開後 1,000 パターン・4 MiB までの予算があり、超えたパターンは展開されずに文字どおりの { として扱われ、何にも一致しません。また [ はブラケット式の開始と解釈されるので、ファイル名に含まれる [\[ とエスケープします(v2.1.207 以前は無効なパターン 1 つで Read ツール全体が失敗しました)。

ユーザー用ルールと共有

~/.claude/rules/ に置いたルールは、すべてのプロジェクトに適用される個人用ルールです。ユーザー用ルールはプロジェクトのルールより に読み込まれるため、矛盾した場合はプロジェクト側が優先されます。

複数のプロジェクトで同じルールを使いたいときは、.claude/rules/ の中にシンボリックリンクを置けます。循環したリンクは検出されて安全に処理されます。

ln -s ~/shared-claude-rules .claude/rules/shared
ln -s ~/company-standards/security.md .claude/rules/security.md

なお、--setting-sourcesproject を除外するとプロジェクトのルールは読み込まれません。v2.1.211 より前は、パス限定ルールやネストしたルールが除外設定に関係なく読み込まれていました。

毎回は要らない「手順書」のような内容は、ルールではなくスキルにすると、呼び出したときだけ読み込まれます。CLAUDE.md 本体に何を残すかは親記事の CLAUDE.md の書き方 を、ディレクトリ単位で分ける方法は サブディレクトリの CLAUDE.md を参照してください。

まとめ

  • .claude/rules/ に 1 トピック 1 ファイルで置く。paths が無いルールは起動時に読み込まれ、節約にはならない
  • paths のグロブに一致するファイルを Claude が読んだときだけ読み込まれるのがパス限定ルール
  • ブレース展開は 1,000 パターン・4 MiB が上限。[ はエスケープする
  • ~/.claude/rules/ は先に読まれ、プロジェクトのルールが優先される
  • 共有はシンボリックリンクで。毎回不要な手順はスキルに切り出す

よくある質問

paths を書かないルールはいつ読み込まれますか?
セッション開始時に、.claude/CLAUDE.md と同じ優先度で読み込まれます。
paths 付きのルールは何をきっかけに読み込まれますか?
Claude がパターンに一致するファイルを読んだときです。ツールを使うたびに評価されるわけではありません。
~/.claude/rules/ とプロジェクトの rules が矛盾したら?
ユーザー用ルールが先に読み込まれ、プロジェクトのルールが後に読まれるため、プロジェクト側が優先されます。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。