Claude Codeは新しいセッション(作業の区切り)を始めるたびに、前回までの会話を覚えていません。プロジェクト固有の前提やルールを毎回指示で伝え直すのは手間ですが、「CLAUDE.md」というファイルに書いておけば、起動のたびに自動で読み込まれます。何を書き、どこに置き、長くなったらどう分けるかによって、Claude Codeの使い勝手は大きく変わります。
Oikon・前川蒼『Claude Code実践入門 Agentic Coding』(SBクリエイティブ)を参考にして。
CLAUDE.mdは「Claude Code向けの取扱説明書」
README.mdとの違い
「CLAUDE.md」は、プロジェクト固有の情報やルールをClaude Codeに伝えるためのメモです。
書き方は、見出しや箇条書きを記号で表すMarkdown形式の普通の文章で、特別な文法は必要ありません。
プロジェクトの説明書として人間向けに用意される「README.md」に対し、CLAUDE.mdはClaude Code向けの説明書という位置づけです。
Claude Codeは起動時にこのファイルを自動で読み込み、プロジェクトの前提を理解したうえで作業を進めます。
/initで下書きを作る
CLAUDE.mdをゼロから書くのは手間がかかるため、「/init」というコマンドが用意されています。
実行すると、Claude Codeがプロジェクト内の設定ファイルやドキュメントを読み込んで分析し、CLAUDE.mdの下書きを自動で作成します。
通常は英語で作成されますが、日本語で作るよう指示すれば日本語になります。
できあがるのはあくまで「たたき台」なので、中身を確認し必要な部分を調整して使います。
- 下書きの作成時に読み込まれるもの
・言語
・プロジェクトの設定ファイル
・コードの品質に関する設定
・ビルド(完成品を組み立てる処理)に関するファイル
・README.mdなどのドキュメント
・他のAIツールの設定ファイル
・既存のAI向け指示ファイル。 - 読み込まれないもの
・環境変数ファイル(.envなど(セキュリティ上の理由))
・外部のプログラム部品を置いたフォルダ
・キャッシュ(一時保存)のフォルダ
質問に答えながら作る対話形式の「/init」も選べます。
CLAUDE.mdだけでなく、「Hooks(決まった場面で自動実行される処理)」や「Skills(定型作業の手順書)」の設定まで進められるため、目的に合った環境を整えやすくなります。
利用するには、実行前に専用の設定を有効にしておく必要があります。

CLAUDE.mdに書くことと、置き場所
書くのは「プロジェクト固有で変わりにくい情報」
プロジェクトに関する情報をすべて書けばよい、というわけではないとされます。
Claude Codeが一度に扱える記憶の領域(コンテキストウィンドウ)には限りがあり、不要な情報が多いと余計な動作をする可能性も高まります。
必要な情報だけを書くことが、Claude Codeを使いこなすうえでの前提になります。
- 書いておくもの
・プロジェクトの目的
・全体の構成(アーキテクチャ)
・使っている技術
・ビルド・テスト・コードチェックのコマンド
・そのプロジェクト固有の情報。 - 書かないもの
・Claude Codeが推測できる情報
・一般的なアドバイス
・機密情報
・頻繁に変わる情報
目安は、全体でおよそ200行以内です。
内容が古くなることもあるため、定期的に見直して、必要な情報が過不足なく書かれているかを確認することも大切です。
置き場所は4か所に分かれる
CLAUDE.mdは、置く場所によって適用される範囲が4つに分かれます。
| 適用範囲 | 置き場所 | 主な内容 |
|---|---|---|
| マネージドポリシー (組織の管理者が設定) | Windows: C:\Program Files\ClaudeCode\CLAUDE.md macOS: /Library/Application Support/ClaudeCode/CLAUDE.md | ・会社全体のコーディング標準(プログラムの書き方の決まり) ・セキュリティ方針 |
| ユーザー | ホームフォルダ内の「.claude」フォルダにあるCLAUDE.md (Windowsの例:C:\Users\ユーザー名\.claude\CLAUDE.md) | ・個人の書き方の好み ・よく使う道具の手順 |
| プロジェクト | プロジェクト直下のCLAUDE.md、または「.claude」フォルダ内のCLAUDE.md | ・プロジェクトの構成、規約、共通の作業手順 |
| ローカル | プロジェクト直下のCLAUDE.local.md | ・個人の試験用URL ・好みのテストデータ |
複数の場所にCLAUDE.mdがある場合、Claude Codeは起動時にすべてを読み込み、優先順位に従って解釈します。
プロジェクト直下のCLAUDE.mdが、/initで自動作成されるファイルです。
サブフォルダにも置ける
プロジェクトの中のサブフォルダにも、CLAUDE.mdを置くことができます。
サブフォルダの名前は自由なので、スクリプトの使い方を書くためのフォルダを作ることもできます。
Claude Codeは、サブフォルダの中のファイルを操作するときに、そのフォルダのCLAUDE.mdを追加で読み込みます。
プロジェクト全体に共通するルールはいちばん上の階層に、特定の領域だけのルールはサブフォルダに分けて書いておけば、必要なときに必要なルールだけが読み込まれるようになります。

CLAUDE.md以外の記憶の仕組み
細かい指示は「ルールファイル」に分ける
CLAUDE.mdが長くなったときの対応策として、「rules」ファイルがあります。
プロジェクトの「.claude/rules」フォルダの中に、拡張子が「.md」のファイルを好きな名前で置き、手動で作成します。
CLAUDE.mdとの違いは、ファイルの種類や置いてある場所を指定して、該当するファイルを扱うときだけ読み込ませられる点です。
書籍では、TypeScript用とテスト用の2つのルールファイルを用意し、該当するファイルをClaude Codeに読ませたときに2つのルールが読み込まれる様子が画面で示されています。
CLAUDE.mdに書くよりも細かい指示を、必要な場面で必要な範囲だけ読み込ませる仕組みです。
Claude Code自身が書く「自動メモリ」
自動メモリは、Claude Codeが過去のセッションで得た知見を、次のセッションへ持ち越すための仕組みです。
作業中に「この情報は将来も役立つ」と判断したものを、Claude Code自身が「MEMORY.md」に記録します。
コマンド、注意点、好みの作業の進め方などが、記録の対象になります。
置き場所は、ホームフォルダの「.claude/projects/プロジェクト名/memory」です。
その中のMEMORY.mdは目次の役割を持ち、詳細は「debugging.md」や「api-conventions.md」のような、テーマ別のファイルに分けて置く形が一般的です。
セッション開始時に読み込まれるのはMEMORY.mdの先頭200行ほどまでのため、目次として使うことが推奨されています。
自動で記録されるため、期待していない情報が保存されることもあります。
不要と感じたら、設定で自動メモリを無効にできます。何も指定しなければ有効となります。
| 項目 | CLAUDE.md | ルールファイル | 自動メモリ(MEMORY.md) |
|---|---|---|---|
| 書く人 | 人 | 人(手動で作成) | Claude Code(自動で記録) |
| 読み込まれる場面 | 起動時 (サブフォルダのものは、そのフォルダを扱うとき) | 該当するファイルを扱うとき | 起動時 |
| 置き場所 | 上記4か所 | .claude/rules (ホームまたはプロジェクト) | .claude/projects/プロジェクト名/memory |
| 向いている内容 | プロジェクト固有で変わりにくい情報 | 場所や種類ごとの細かい指示 | 作業中に得た知見、好みの進め方 |

当事務所での使い方
当事務所では、この考え方を次の3点で取り入れています。
- 長さを抑え、細かい規程はrulesへ
共通のCLAUDE.mdは約120行に収め、細かい規程はrulesフォルダの別ファイルに分けています。
毎回は読み込ませないような規程は、該当する作業に入るときに読み込む形にしています。 - 記憶は目次と個別ファイルに分ける
自動メモリのMEMORY.mdは目次として使い、1件ずつ別のファイルに分けて保存しています。 - クライアント別フォルダにもCLAUDE.mdを置く
クライアント別フォルダにも、そのクライアント固有の注意点を書いたCLAUDE.mdを置いています。
何を書くかと同じくらい、どこに置き、どこまでを毎回読み込ませるかが大切になると思われます。
