メインコンテンツまでスキップ

CLAUDE.md とメモリファイル

初級

Claude Code をより良くするために一つだけやるなら、これをやってください。CLAUDE.md は Claude が毎回のセッション開始時に読むプレーンテキストファイル——あなたのプロジェクトの恒久的なブリーフィングです。

What you'll learn
  • なぜ CLAUDE.md が Claude Code で最も効果の高い設定なのか
  • 管理ポリシーから CLAUDE.local.md まで、メモリ階層がどう読み込まれるか
  • 自動メモリが、あなたが書く CLAUDE.md とどう違うのか
  • /init で初期ファイルを生成し、それを削ぎ落とす方法
  • CLAUDE.md に何を入れるべきか——そして何を入れないべきか
  • @imports でドキュメントを複製せずに参照する方法

なぜ最も効果の高い設定なのか​

これがないと、毎回のセッションでプロジェクトを説明し直すことになります(「pnpm を使っている、テストは __tests__ にある、/generated は触らないで…」)。これがあれば、Claude はすでに知っています。ここに良い指示を書けば、今後すべてのやり取りを一度に改善できます。

メモリの階層​

Claude Code は複数の場所からメモリを読み込み、読み込み順——スコープの広いものから——にマージします。そのため、プロジェクトの指示はユーザーの指示の後にコンテキストへ入ります:

  • 管理ポリシー — IT/DevOps チームが配布する組織全体の指示。パスは OS ごとに異なります:macOS では /Library/Application Support/ClaudeCode/CLAUDE.md、Linux と WSL では /etc/claude-code/CLAUDE.md、Windows では C:\Program Files\ClaudeCode\CLAUDE.md。
  • ユーザー指示(~/.claude/CLAUDE.md)— すべてのプロジェクトに渡るあなた個人の好み。
  • プロジェクト指示(./CLAUDE.md または ./.claude/CLAUDE.md、コミット済み)— このリポジトリがどう動くか。チームと共有されます。リポジトリで AGENTS.md を使っている場合は、これらの代わりに、あるいはこれらと併せて読み込まれることがあります。
  • ローカル指示(./CLAUDE.local.md)— サンドボックスの URL のような、あなただけのプロジェクト固有のメモ。.gitignore に追加してください。

作業ディレクトリより上のディレクトリ階層にあるファイルは起動時に読み込まれます。サブディレクトリのファイルはオンデマンドで、Claude がその領域の何かに触れたときに読み込まれます。

Pro tip
  • 1つのファイルでは足りなくなった?指示を .claude/rules/*.md に分割しましょう——1トピックにつき1ファイルで、再帰的に発見されます。paths フロントマターのないルールは起動時に読み込まれ、優先度は .claude/CLAUDE.md と同じです。paths フロントマターを付けると、Claude が一致するファイルを扱うときだけそのルールが読み込まれ、コンテキストを節約できます。
メモリの各レイヤーを知る
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。
1 / 6

もう半分:自動メモリ​

CLAUDE.md はメモリのうちあなたが書く半分です。Claude Code は自動メモリも保持します——あなたの修正や好みから Claude 自身が書くメモで、リポジトリごとに保存され、あなたの CLAUDE.md ファイルと並んで毎回のセッションに読み込まれます。

CLAUDE.md ファイル自動メモリ
誰が書くかあなたClaude
何を保持するか指示とルール学習とパターン
スコーププロジェクト、ユーザー、または組織リポジトリごと、ワークツリー間で共有

どちらも強制ではなくコンテキストです:Claude はこれらを、必ず従わなければならない設定ではなく、重み付けできるガイダンスとして扱います。Claude の判断にかかわらずある動作を完全にブロックしたい場合は、代わりに PreToolUse フックを使ってください。

Watch out
  • 自動メモリは最初の200行または25 KB までしか読み込まれません——膨れ上がった MEMORY.md は黙って切り捨てられます。起動時コストの詳しい内訳はコンテキスト予算の監査を参照してください。

出発点を生成する​

Guided walkthrough1 of 3
  1. Claude がコードを調べ、自動で CLAUDE.md のドラフトを作成します。

CLAUDE.md のドラフトを生成する

/init

CLAUDE.md テンプレート から既成のスターターを取得してください。

何を入れるか​

  • プロジェクトが何であるかを、2 文で。
  • 技術スタックと、実行 / テスト / リントの方法。
  • Claude が推測できない規約(命名、構造、コミットスタイル)。
  • ガードレール:「完了を宣言する前にテストを実行する」「/vendor は絶対に編集しない」「シークレットを決してコミットしない」。

何を入れないか​

Watch out
  • Claude は CLAUDE.md を文字通り従います——古い、曖昧、または願望的な指示はむしろ害になります。
  • プロジェクトが今日実際にどう動くかを記述してください。短くて真実な方が、長くて理想的なものより優れています。
  • 巨大な貼り付けドキュメント(代わりに @imports を使う)、シークレット、実際には守らないルールは避けてください。
  • プロジェクトの進化に合わせて正確さを保つよう、定期的に見直してください。

インポート​

ドキュメントを複製する代わりに既存のものを取り込みます——たとえばスタイルガイドを @path/to/file インポートで参照すれば、信頼できる情報源が一つになります。相対パスも絶対パスも使えます。相対パスは作業ディレクトリではなく、そのインポートを含むファイルを基準に解決されます。インポートされたファイルはさらに別のファイルをインポートできますが、深さは最大4ホップまでです。

痛い目に遭う前に知っておきたい構文の罠が2つあります:

  • スペースにはバックスラッシュが必要。 @Design\ Docs/api-conventions.md は動きます。バックスラッシュがないと、パスは最初のスペースで止まります。引用符で囲んでもファイルはまったくインポートされません。
  • バックティックで除外できる。 インポートの解析はコードスパンとフェンス付きブロックを飛ばすので、`@README` はそのままのテキストとして残り、単独の @README はファイルをインポートします。これが、読み込まずにパスを言及する方法です。

完全なリファレンスは公式メモリドキュメントを参照してください。

Pro tip
  • 信頼できる情報源を一つに:内容を CLAUDE.md に貼り付けるのではなく、@imports でファイルを参照しましょう。
  • ドキュメントがすでに存在するなら、コピーせずリンクしましょう。コピーは古くなっていきます。

確認しよう​

確認しよう

0/6
  1. Claude Code がプロジェクトの恒久的なブリーフィングとして毎回のセッション開始時に読むファイルはどれですか?
  2. プロジェクトで /init を実行すると何が起きますか?
  3. スタイルガイドのような大きな既存ドキュメントを取り込む推奨方法は何ですか?
  4. コミットしたくない、個人的でプロジェクト固有のメモはどこに置きますか?
  5. 自動メモリは誰が書きますか?
  6. サブディレクトリにある CLAUDE.md はいつ読み込まれますか?
Key takeaways
  • CLAUDE.md は最も効果の高い設定:今後すべてのセッションを一度に改善します。
  • メモリは広いスコープから順に読み込まれる:管理ポリシー、次にユーザー(~/.claude/CLAUDE.md)、プロジェクト(./CLAUDE.md または ./.claude/CLAUDE.md)、そしてローカル(./CLAUDE.local.md)。サブディレクトリのファイルはオンデマンドで読み込まれます。
  • 自動メモリはもう半分——Claude 自身のメモで、リポジトリごとに保存され、毎回のセッションに読み込まれます。どちらも強制ではなくコンテキストです:何かを完全にブロックするにはフックを使いましょう。
  • 1つのファイルでは足りなくなった? .claude/rules/*.md に分割し、paths フロントマターでルールのスコープを絞りましょう。
  • /init で始め、ドラフトを実際に真実な内容まで削り落とす。
  • 短く真実に保つ——大きなドキュメントには @imports(最大4ホップ)を使い、シークレットは決してコミットしない。

次へ​