CLAUDE.md で Claude Code にプロジェクトを記憶させる

Claude Code エンジニアリング 6分で読めます

Claude Codeのセッションは毎回まっさらなコンテキストで始まります。CLAUDE.md ファイルに指示を書いておくと、セッションをまたいでプロジェクトの前提をClaudeに伝えられます。この記事では、CLAUDE.mdの置き場所とスコープ、読み込みの仕組み、効果的な書き方、インポート、そして自動メモリとの違いを解説します。

CLAUDE.mdとは

CLAUDE.mdは、プロジェクトや個人のワークフロー、組織全体に対する永続的な指示を書くマークダウンファイルです。ビルドコマンド、コーディング規約、プロジェクト構成、「常にXする」といったルールなど、毎回説明し直したくない事柄を記述します。Claudeはセッション開始時にこれを読み込みます。

次のようなときに追記します。Claudeが同じ間違いを繰り返したとき、コードレビューでこのコードベース特有の知識が指摘されたとき、前回と同じ修正指示を毎回入力しているとき、新メンバーに必要な前提を伝えたいとき。ただしCLAUDE.mdは強制設定ではなく「文脈」なので、厳密な強制が必要な場合はフックを使います。

ファイルの置き場所とスコープ

CLAUDE.mdは複数の場所に置け、それぞれスコープが異なります。読み込みは広い範囲から狭い範囲の順で行われます。

作業ディレクトリより上位のCLAUDE.mdは起動時にすべて読み込まれ、サブディレクトリのファイルはそのフォルダのファイルを読むときに随時読み込まれます。

効果的な書き方

CLAUDE.mdは毎セッションのコンテキストを消費するため、書き方が遵守率に影響します。

/init を実行すると、Claudeがコードベースを分析して雛形のCLAUDE.mdを自動生成します。既存ファイルがある場合は上書きせず改善案を提示します。

他ファイルのインポート

CLAUDE.mdは @path/to/import 構文で他のファイルを取り込めます。相対パスと絶対パスの両方が使え、取り込んだファイルは起動時にコンテキストへ展開されます(最大4階層まで再帰的にインポート可能)。

See @README for project overview and @package.json for available npm commands.

# Additional Instructions
- git workflow @docs/git-instructions.md

パスをインポートせず文字列として書きたいときはバッククォートで囲みます。なお、大きなプロジェクトでは .claude/rules/ にトピック別のルールを置き、paths フロントマターで特定のファイルパスにのみ適用することもできます。

自動メモリとの違い

Claude Codeにはもう1つ、自動メモリという仕組みがあります。両者はどちらもセッション開始時に読み込まれますが、役割が異なります。

自動メモリは ~/.claude/projects/<project>/memory/ に保存され、MEMORY.md の先頭200行(または25KB)が毎回読み込まれます。/memory コマンドで読み込まれているファイルの確認、自動メモリの有効・無効の切り替え、内容の閲覧・編集ができます。