rulesでCLAUDE.mdを分割しよう ─ 必要な時だけ、必要なルールを

この記事の内容

  • Claude Codeの「rules」機能を使うと、CLAUDE.mdを分割して条件付きでルールを読み込める
  • .claude/rules/ ディレクトリにMarkdownファイルを置き、フロントマターにglob(ファイルパターン)を記述する
  • glob指定により「Wordファイルを編集する時だけ」「Excelファイルを触る時だけ」といった条件付きの注入が実現できる
  • ルールの書き方はClaude Code自身に任せればよく、仕組みを理解するだけで十分
  • ただしツールの使われ方によってはルールが読み込まれないケースもあり、その限界も把握しておく必要がある

CLAUDE.mdだけでは何が問題なのか

前回の回でCLAUDE.mdを使って指示を自動読み込みする方法を学びました。CLAUDE.mdに書いた内容はセッション開始時に必ずコンテキストに読み込まれるため、毎回手動で指示を打ち込む必要がなくなります。

しかし、このやり方には課題があります。CLAUDE.mdに書いたルールは「何をする時でも」すべて読み込まれます。Wordファイルを触る時だけ使いたいルール、特定のExcelファイル群を操作する時だけ適用したいルール ─ そういったものまで、常にコンテキストに乗り続けてしまいます。

コンテキストに不要な情報が増えると、AIが指示に従いにくくなるという問題も生じます。「必要な時だけ、必要なルールを読み込ませたい」という要求に応える仕組みが、rulesです。


rulesとは何か

rulesとは、ファイルのパターン(glob)に応じて、特定のルールファイルをコンテキストに条件付きで自動注入できる仕組みです。

たとえば:

  • Wordファイル(.docx)を編集する時 → Wordのスタイルガイドルールが自動的にコンテキストに乗る
  • Excelファイル(.xlsx)を編集する時 → Excelのルールが乗る
  • それ以外の作業をしている時 → それらのルールはコンテキストに存在しない

このように、作業内容に応じて必要なルールだけが動的に読み込まれるため、コンテキストを効率的に使えます。


ルールファイルの置き場所

ルールファイルは以下のディレクトリに置きます:

.claude/rules/

グローバルに適用したい場合はホームディレクトリの .claude/rules/ に置きます。特定のプロジェクトだけに適用したい場合は、そのプロジェクトディレクトリ内の .claude/rules/ に置きます。この挙動は CLAUDE.md と同じルールです。


ルールファイルの書き方

ルールファイルはMarkdown形式で、ファイルの先頭にフロントマターを記述します。

---
description: Wordファイルのスタイルガイド
globs:
  - "**/*.docx"
---

Wordファイルを編集する際は文体を必ずだ・である調で統一すること。
です・ます調は使用しないこと。

フロントマターの各フィールドの意味は以下の通りです:

  • description:人間が読むための説明文。このルールが何のためのものかを書く
  • globs:このルールを適用するファイルパターン。省略した場合は常時読み込まれる(CLAUDE.mdと同じ動作)

globsの書き方例

パターン意味
**/*.docxどこにあるWordファイルにも適用
reports/**/*.xlsxreportsフォルダ以下のExcelファイルに適用
**/*.{docx,xlsx}WordもExcelも両方に適用
gijiroku_*.docxgijiroku_で始まるWordファイルに適用

アスタリスク(*)は「何でも当てはまる」という意味のワイルドカードです。複雑な記法はClaude Code自身が知っているので、細かいルールを暗記する必要はありません。


globsを省略した場合の使い方

globsを省略すると、そのルールは常時コンテキストに読み込まれます。これはCLAUDE.mdと同じ動作です。

この使い方の利点は、CLAUDE.mdを機能ごとに複数ファイルに分割して管理しやすくできる点です。大きなCLAUDE.mdを分割してrulesフォルダに整理するだけでも、人間にとって読み書きしやすくなります。


Claude Codeにルールを作ってもらう方法

globsの書き方に不安を感じても問題ありません。Claude Code自身に依頼するだけで作成してもらえます。

Word調rules

このように伝えると、Claude Codeは .claude/rules/ ディレクトリを作成し、適切なフロントマターとルール内容を持つMarkdownファイルを生成してくれます。既存のCLAUDE.mdからrulesへの分割も依頼できます。

CLAUDE.mdrules

デモで確認できたこと・注意点

実際にデモを行った結果、rulesには重要な制限が確認されました。

ルールが読み込まれるタイミング

rulesのglob条件にマッチするファイルを直接編集(Edit)する時にルールがコンテキストに注入されます。

ルールが読み込まれないケース

Claude Codeが対象ファイルをPythonスクリプト経由で生成したり、Writeツールで新規作成したりする場合、glob条件に一致していてもルールが読み込まれないことがあります。

たとえば「Wordファイルを作成して」と依頼した場合、Claude Codeが内部でPythonスクリプトを作成・実行してWordファイルを生成するアプローチを取ると、.docxファイルを直接編集するわけではないため、Wordのルールが注入されません。

対処法

このような場合、以下のような対応が考えられます:

  • globsにPythonスクリプトのパターンも追加する
  • Word関連のスクリプトを特定ディレクトリに集め、そのディレクトリをglobsに指定する
  • globsを省略して常時読み込みにする
#glo--bWs""o:*wr*drd._dsoccrxi"pts/**/*.py"

ルールが効いているか確認するには、コンテキストの内容を確認するコマンドを使います。ルールファイルが一覧に含まれているかどうかで、正しく読み込まれているかを判断できます。


CLAUDE.mdとrulesの使い分け

CLAUDE.mdrules
読み込まれるタイミング常時・必ずglob条件にヒットした時のみ
向いている内容毎回必ず意識して欲しいこと特定のファイルを触る時だけ必要なこと
コンテキストへの影響常にコンテキストを消費する条件外では消費しない

「いつ必要か」で判断するのが基本です。常に必要な情報はCLAUDE.mdへ、特定の状況でだけ必要な情報はrulesへ、という分け方が王道です。

なお、どちらかだけを使わなければならないわけではありません。両方を組み合わせて使うことができます。


プログラマー以外の活用シーン

rulesはプログラミング言語(.py.tsなど)のルール管理として説明されることが多い機能です。しかし、ファイルの拡張子でパターンを指定できる以上、あらゆる職種に応用できます。

  • ライター・編集者.docxファイルには文体・表記ルール
  • デザイナー.jpg / .png には画像の命名規則や出力形式のルール
  • 経理担当reports/**/*.xlsx には数値フォーマットや集計ルール
  • 議事録担当gijiroku_*.docx には議事録の書き方テンプレート

自分の仕事やフォルダ構成に合わせたglob設定にすることで、幅広い用途に活用できます。


まとめ

今回はClaude Codeの「rules」機能を学びました。

  • rules.claude/rules/ ディレクトリにMarkdownファイルを置くことで使える
  • フロントマターの globs にファイルパターンを書くと、条件に合致した時のみルールがコンテキストに注入される
  • globs を省略すると常時読み込まれる(CLAUDE.mdの分割管理として使える)
  • ルールの書き方はClaude Codeに任せればよく、自分でglob記法を覚える必要はない
  • Writeツールによる新規作成や外部スクリプト経由の操作ではルールが注入されないケースがある

コンテキストに「今必要なルールだけ」が入っている状態を作ることが、Claude Codeの性能を最大限に引き出す鍵です。CLAUDE.mdとrulesをうまく組み合わせて、コンテキストを賢く管理していきましょう。

次回はカスタムコマンドについて解説します。同じ指示を何度も書かずに済む仕組みを学ぶことで、今回触れたrulesの課題も含めてより細かくClaude Codeの動作をコントロールできるようになっていきます。