AI知識まとめノート
CLAUDE.mdとは?Claude Codeに記憶を持たせるしくみを初心者向けに解説

CLAUDE.mdとは?Claude Codeに記憶を持たせるしくみを初心者向けに解説

Claude Codeを使い始めると、こんな不満が出てくることがあります。

「毎回同じことを説明している」「コードスタイルのルールをまた伝えた」「プロジェクトの構成を覚えていてほしい」

そんなときに役立つのが「CLAUDE.md」です。


CLAUDE.mdとは

Claude Codeはセッションを起動するたびにまっさらな状態から始まります。前回の会話内容は引き継がれません。

CLAUDE.mdは、そのたびにClaudeが読み込む「指示書」です。プロジェクトのルール、使うコマンド、コードの書き方など、毎回伝えたい内容をあらかじめ書いておくことで、Claude Codeが自動的に読んで従ってくれます。

ユーザーが打ったメッセージと同じように扱われ、Claude Codeのシステムプロンプトではなくユーザーメッセージとして注入されます。強制力はなく「ガイドライン」に近い存在ですが、継続的に使うプロジェクトでは非常に効果があります。


どこに置けるか

CLAUDE.mdは複数の場所に置くことができます。階層に応じて、適用範囲が変わります。

CLAUDE.mdの読み込み階層図解

管理ポリシー(組織レベル)

以下のパスに置くと、そのコンピューターを使う全員に強制適用されます。

  • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
  • Linux / WSL: /etc/claude-code/CLAUDE.md

企業の開発チームなどで、MDMやAnsibleを使って全開発者マシンに統一ルールを配布する用途を想定したものです。ユーザーが無効化することはできません。

ユーザーグローバル

~/.claude/CLAUDE.md に置くと、自分がClaude Codeを使うすべてのプロジェクトに適用されます。

「常にシンプルに書く」「リファクタリングは最小限に」といった、個人の開発スタイルを書いておくのに向いています。

プロジェクトルート(チーム共有)

./CLAUDE.md または ./.claude/CLAUDE.md に置くと、そのプロジェクト専用の指示になります。

gitにコミットすることでチームメンバー全員が同じ指示書を使えます。プロジェクトのビルドコマンド、命名規則、ディレクトリ構成の説明などを書いておくのが典型的な使い方です。

ローカル個人設定(git管理外)

./CLAUDE.local.md に置くと、同じディレクトリの CLAUDE.md の後に追記される形で読み込まれます。

自分専用のメモや、チームには共有したくない個人的な設定を書く場所です。.gitignore に追加してgit管理から外すのが推奨されています。

サブディレクトリ

src/CLAUDE.md のように、プロジェクト内の任意のサブディレクトリに置くこともできます。

ただしサブディレクトリのCLAUDE.mdは「遅延読み込み」です。セッション開始時ではなく、Claudeがそのディレクトリ内のファイルを操作したタイミングで読み込まれます。


読み込み順と優先順位

複数のCLAUDE.mdが存在する場合、すべてが連結(結合)されて読み込まれます。上書きではありません。

読み込み順は以下のとおりです。

  1. 管理ポリシー(組織レベル)
  2. ユーザーグローバル(~/.claude/CLAUDE.md
  3. 上位ディレクトリのCLAUDE.md(現在地から上に向かってたどる)
  4. プロジェクトルートのCLAUDE.md
  5. CLAUDE.local.md(同ディレクトリのCLAUDE.mdの後に追記)
  6. サブディレクトリのCLAUDE.md(遅延読み込み)

複数のファイルで矛盾する指示が書かれている場合、Claudeがどちらかを選ぶ形になります。矛盾が生じないよう、ファイルをまたいでの内容確認を定期的に行うとよいです。


@importで外部ファイルを取り込める

CLAUDE.md内では @パス という記法で外部ファイルをインポートできます。

たとえばこのように書きます。

plaintext
@README.md を参照してプロジェクトの全体像を把握してください。
使えるnpmコマンドは @package.json を確認してください。

# 追加ルール
- gitフローについては @docs/git-rules.md に従う

相対パス・絶対パスの両方が使えます。インポート先のファイルがさらに別のファイルをインポートすることも可能ですが、最大5段階までです。

ホームディレクトリからのインポートも使えます。

plaintext
@~/.claude/my-common-rules.md

何を書くべきか

CLAUDE.mdに書くと効果的な内容はこちらです。

  • ビルド・テスト・起動コマンド(pnpm run dev など)
  • コードスタイルのルール(インデント幅、タブかスペースか)
  • 禁止事項(npm を使わず pnpm を使う、など)
  • ディレクトリ構成の説明(APIハンドラは src/api/ に置く、など)
  • アーキテクチャの決定事項
  • ワークフローのルール(コミット前にテストを実行する、など)

書き方のコツは「具体的で検証できる」ことです。「コードを適切にフォーマットする」ではなく「インデントは2スペースを使う」のように書くほうが機能します。

逆に書かないほうがよいものもあります。

  • 一時的な作業メモ(セッション単位のものはチャットで伝える)
  • 特定のサブディレクトリにしか関係ないルール(そのディレクトリのCLAUDE.mdに書く)
  • 個人的なサンドボックスURLやテストデータ(CLAUDE.local.mdに書いてgit管理外にする)

ファイルサイズの目安

1ファイルあたり200行以内が推奨です。

それを超えると読み込みはされますが、Claudeが内容を見落としたり従わなかったりする可能性が上がります。

内容が増えてきたら .claude/rules/ ディレクトリに分割して、@path でインポートする構成にするとすっきりします。


gitとの関係

ファイルgit管理
./CLAUDE.mdコミットする(チーム共有)
./.claude/CLAUDE.mdコミットする(チーム共有)
./.claude/rules/*.mdコミットする(チーム共有)
./CLAUDE.local.md.gitignoreに追加(個人用)
~/.claude/CLAUDE.mdリポジトリ外(個人用)

/initコマンドで自動生成できる

Claude Code上で /init を実行すると、現在のコードベースを読んでCLAUDE.mdのたたき台を自動生成してくれます。ゼロから書き始めるより、これをベースに手を加えるほうが効率的です。


まとめ

CLAUDE.mdはClaude Codeに「毎回伝えなくていい文脈」を持たせるためのしくみです。

  • 個人の設定は ~/.claude/CLAUDE.md
  • チームで共有するルールはプロジェクトルートの CLAUDE.md
  • 個人的な上書きや秘匿情報は CLAUDE.local.md(gitignore)
  • 複数ファイルはすべて結合されて読み込まれる(上書きではない)

うまく使うと、毎回同じ説明をする手間がなくなり、Claude Codeとの作業がぐっと快適になります。

参考リンク

関連記事