.claude/rules/ とは

 Claude Rules

 ~ Claude.md肥大化問題を解決する仕組み~

はじめに

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.mdRules
読み込み常時条件付き
トークン消費常に発生必要時のみ
用途共通ルール個別ルール
推奨内容コーディング規約、禁止事項テスト規約、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機能を組み合わせて運用することをおすすめします。