CLAUDE.md vs agents.md vs memory.md|3ファイルの違いと使い分け完全ガイド

CLAUDE.mdとAGENTS.mdとMEMORY.md、何が違うの?——Claude Codeを使い込むと必ずぶつかるこの疑問に、3ファイルの役割・読み込みタイミング・使い分けルールを明確に整理する。

3ファイルの違い|一覧表

ファイル役割誰が書くか読み込みタイミングGit管理
CLAUDE.mdClaude Code専用のプロジェクトルール人間セッション開始時(毎回)する
AGENTS.md複数AIツール共通の指示書人間セッション開始時(対応ツールのみ)する
MEMORY.mdClaudeが自動で学んだメモClaude(自動)セッション開始時しない

一言でまとめると: CLAUDE.md = Claude Code専用ルール、AGENTS.md = 複数ツール共通ルール、MEMORY.md = AIが勝手に学習するメモ公式ドキュメントでは全て「Memory」機能の一部として位置づけられている。

CLAUDE.mdとは

Claude Code専用の指示書(60行以内が推奨)。プロジェクトのルートに置くと、Claude Codeがセッション開始時に自動で読み込む。「sedでPHPを編集しない」「テストはvitestで書く」「日本語で回答する」などのプロジェクト固有ルールを記述する。

# CLAUDE.md の例
# プロジェクト概要
Next.js 14 + TypeScript + Prisma のSaaSアプリ

# 最重要ルール
- sedでPHPファイルを編集しない(}が消える事故あり)
- テストはvitest。jestを使わない
- 日本語で回答すること

書き方の詳細は「CLAUDE.md書き方ガイド」、基礎知識は「CLAUDE.mdとは?」を参照。

AGENTS.mdとは?

特定のAIツールに依存しない、共通のプロジェクト指示書。Claude Code以外にもCursor、Codex、Cline、GitHub Copilotなどが読み込むことを想定して書くファイル。2026年にAnthropicが提唱した規格。

AGENTS.mdに書くべきこと

  • 技術スタック(Next.js 14 + TypeScript + Prisma等)
  • ディレクトリ構成のルール
  • 命名規約(変数名、ファイル名等)
  • コーディングスタイル
  • テスト方針

AGENTS.md vs CLAUDE.mdの使い分け

内容どっちに書くか理由
技術スタックAGENTS.mdCursorやCopilotでも使える共通情報
コーディング規約AGENTS.mdツール非依存
Claude Code固有のコマンド指示CLAUDE.mdClaude Codeでしか使えない指示
/batchの使い方ルールCLAUDE.mdClaude Code固有機能
「sedを使うな」等の禁止事項CLAUDE.mdClaude Codeの挙動に特化した指示

判断基準:「他のAIツールでも通用する内容か?」通用するならAGENTS.md、Claude Code専用ならCLAUDE.mdに書く。

AGENTS.mdの実際の記述例

# AGENTS.md の例
## プロジェクト概要
ECサイトのフロントエンド。Next.js 14 + TypeScript + Tailwind CSS。

## 技術スタック
- フレームワーク: Next.js 14(App Router)
- 言語: TypeScript(strict mode)
- スタイリング: Tailwind CSS v3
- テスト: Vitest + Testing Library
- パッケージマネージャ: pnpm
- デプロイ: Vercel

## コーディング規約
- 変数名: camelCase
- コンポーネント: PascalCase
- ファイル名: kebab-case
- コミットメッセージ: Conventional Commits(feat:, fix:, docs:等)
- インポート順序: 外部ライブラリ → 内部モジュール → 相対パス

## ディレクトリ構造
- src/app/ — ページとレイアウト
- src/components/ — 再利用可能なUIコンポーネント
- src/lib/ — ビジネスロジック
- src/types/ — TypeScript型定義

このAGENTS.mdはClaude Code、Cursor、Copilotのいずれでも読み込まれる。技術スタックや規約はツールに依存しない共通情報なので、AGENTS.mdに1回書くだけで全ツールに適用される。

AGENTS.mdの読み込み方法

Claude CodeはプロジェクトルートのAGENTS.mdを自動で読み込む。CLAUDE.mdから明示的に参照する場合:

# CLAUDE.md の中でAGENTS.mdを参照
@AGENTS.md

# → AGENTS.mdの内容がCLAUDE.mdに結合されて読み込まれる

MEMORY.mdとは?(自動メモリ)

MEMORY.mdはClaude Codeが自動で書くメモ。人間が編集する必要はない。セッション中にClaudeが学んだことを記録する。

CLAUDE.md(人間が書く)MEMORY.md(Claudeが書く)
「sedを使うな」などのルール「Pythonで行単位編集した」という学習
「テストはvitestで」などの規約「vitestの設定がvitest.config.tsにある」という記憶
チーム全員に適用自分だけに適用(マシンローカル)
意図的に書く勝手に蓄積される
  • 保存先: ~/.claude/projects/ディレクトリ内にプロジェクトごと
  • 確認方法: /memoryコマンド
  • 先頭200行がセッション開始時にロード
  • Git管理しない(.gitignoreに追加)

3ファイルの読み込み順序と優先度

順序ファイル効果
1Managed Policy(組織管理者設定)最優先。メンバーが上書き不可
2~/.claude/CLAUDE.md(ユーザー共通)全プロジェクトに適用
3AGENTS.md(プロジェクトルート)AIツール共通ルール
4CLAUDE.md(プロジェクトルート)Claude Code専用ルール
5CLAUDE.local.md(個人設定)個人のプロジェクト固有設定
6MEMORY.md(自動メモリ)Claudeが学んだ情報

全てが結合されてClaudeに渡される。矛盾するルールがある場合は後から読み込まれたもの(下の方)が優先。

Claude Codeだけ使う場合のおすすめ構成

# Claude Codeだけ使う場合(AGENTS.md不要)
my-project/
├── CLAUDE.md           # プロジェクトルール(60行以内)
├── .claude/
│   ├── rules/          # 条件付きルール
│   │   ├── php.md
│   │   └── test.md
│   └── commands/       # Skills(カスタムコマンド)
│       ├── review.md
│       └── commit.md
└── (AGENTS.mdは不要)

Claude Codeだけ使うならAGENTS.mdは不要。全てCLAUDE.md + rules/ + commands/ で管理する方がシンプル。実際に私はこの構成で3サイトを運営しているが、AGENTS.mdは一度も作ったことがない。

複数AIツールを併用する場合の構成

# Claude Code + Cursor(またはCopilot)を併用する場合
my-project/
├── AGENTS.md            # 共通ルール(技術スタック・規約)
├── CLAUDE.md            # Claude Code固有ルール + @AGENTS.md参照
├── .cursorrules         # Cursor固有ルール
├── .github/copilot-instructions.md  # Copilot固有ルール
└── .claude/
    ├── rules/
    └── commands/

共通ルールをAGENTS.mdに書き、各ツール固有のルールを個別ファイルに分離する。→「Cursor × Claude Code連携ガイド

3ファイルの判断フローチャート

「どのファイルに書けばいいか分からない」場合の判断フロー:

  • Q: Claude Code以外のAIツール(Cursor/Copilot等)も使っている?
    • YES → 共通ルールはAGENTS.md、Claude Code固有ルールはCLAUDE.md
    • NO → CLAUDE.mdだけで十分。AGENTS.mdは不要
  • Q: Claudeに「自動で覚えてほしい」ことがある?
    • YES → 何もしなくてOK。MEMORY.mdにClaudeが自動で記録する
    • NO → MEMORY.mdは無視してよい
  • Q: 書いたルールがClaude Code以外のツールでも意味がある?
    • YES(技術スタック、命名規約等) → AGENTS.md
    • NO(/batchの使い方、sedの禁止等) → CLAUDE.md

実際の運用例:私の3サイト運営

私が実際に3つのWebサイト(合計200記事以上)を運営している構成を公開する:

# 実際の構成(Claude Codeのみ使用)
site-a/
├── CLAUDE.md                    # 20行(サイトA固有のルール)
├── .claude/
│   ├── rules/
│   │   ├── wordpress.md         # WordPress操作ルール
│   │   └── seo.md               # SEO品質基準
│   └── commands/
│       ├── wp-qa.md             # 記事QAスキル
│       └── seo-check.md         # SEOチェックスキル
└── tasks/
    └── lessons.md               # 自己改善プロトコル(失敗から学んだルール)

# AGENTS.mdは作っていない。理由:Claude Codeしか使わないから。
# MEMORY.mdは自動生成されるが、手動では触っていない。

この構成のポイント:

  • CLAUDE.mdは20行: 最重要ルール5行 + プロジェクト概要5行 + 自己改善プロトコル5行 + 言語設定1行。これだけで十分
  • 詳細ルールはrules/に分離: WordPress操作ルールやSEO基準はPHP/HTML操作時のみ読み込まれる(Progressive Disclosure)
  • ワークフローはcommands/に: 毎回同じ指示を打つ代わりに、/wp-qaで品質監査を一発実行
  • AGENTS.mdなし: Cursorも使っていないので不要。将来Cursorを導入したらその時に作る

モノレポでの使い分け

フロントエンドとバックエンドが同じリポジトリにある場合(モノレポ):

# モノレポでの構成例
monorepo/
├── AGENTS.md                    # 共通ルール(全パッケージ共通の規約)
├── CLAUDE.md                    # Claude Code全体の設定
├── packages/
│   ├── frontend/
│   │   └── CLAUDE.md            # フロントエンド固有ルール
│   └── backend/
│       └── CLAUDE.md            # バックエンド固有ルール
└── .claude/
    └── rules/
        ├── frontend.md          # globs: "packages/frontend/**"
        └── backend.md           # globs: "packages/backend/**"

サブディレクトリにCLAUDE.mdを配置すると、そのディレクトリ内で作業する際に自動で読み込まれる。ルートのCLAUDE.mdと結合されるため、共通ルール(ルート)+固有ルール(サブディレクトリ)の2層構造になる。この仕組みはAGENTS.mdも同様に機能する。

AGENTS.md / .cursorrules / copilot-instructions.mdの同期

複数のAIツールを使う場合、各ツールの指示ファイルを同期する方法:

ファイル読み込むツールフォーマット
AGENTS.mdClaude Code, Cursor, Copilot等Markdown
.cursorrulesCursor専用プレーンテキスト
.github/copilot-instructions.mdGitHub Copilot専用Markdown
CLAUDE.mdClaude Code専用Markdown

おすすめの同期方法: AGENTS.mdに共通ルールを書き、他ファイルからは@AGENTS.mdで参照するか、AGENTS.mdの内容をコピーする。シンボリックリンク(ln -s AGENTS.md .cursorrules)は形式の違いでうまくいかない場合があるため、コピーの方が安全。

# AGENTS.mdの内容を.cursorrulesにコピーする例(手動)
cp AGENTS.md .cursorrules

# CLAUDE.mdからAGENTS.mdを参照
# CLAUDE.md の冒頭に以下を記載
@AGENTS.md

# Claude Code固有のルールをここに追加
- sedでPHPファイルを編集しない
- /batchは10ファイル以下で使用すること

重複を避けるためのベストプラクティス

3ファイルを使い始めると「同じことを複数のファイルに書いてしまう」問題が起きやすい。重複を避けるルール:

  1. 「1つの情報は1箇所だけ」の原則: DRY(Don’t Repeat Yourself)をファイル管理にも適用
  2. @参照で共有する: CLAUDE.mdから@AGENTS.mdで参照すれば、内容を複製する必要がない
  3. 定期的に棚卸し: 3ヶ月ごとに3ファイルを見直し、重複を削除。不要になったルールも削除。Claude Codeのアップデートで不要になったルール(例: 過去のバグ回避策が修正された場合)も積極的に削除する
  4. 新ルール追加時に「どこに書くか」を判断: 上記の判断フローチャートに従う。迷ったらCLAUDE.mdに書く(Claude Code専用で始めて、後からAGENTS.mdに昇格するアプローチが安全)
  5. チームではPRベースで管理: CLAUDE.mdとAGENTS.mdの変更はPRで出してレビューする。「なぜこのルールを追加したか」のコミットメッセージが、3ヶ月後の棚卸し時に判断材料になる

最も多いミス: 「AGENTS.mdにはプロジェクト概要を書いて、CLAUDE.mdにもプロジェクト概要を書いて、.cursorrulesにもプロジェクト概要を書く」パターン。3ファイルに同じ情報が3回書かれ、どれかを更新し忘れると矛盾が発生する。AGENTS.mdに1回だけ書いて、他のファイルから参照する設計にすること。

Claude Codeの使い方全体は「使い方ガイド」の3-2-1ルールを参照。CLAUDE.mdの書き方テンプレートは「書き方ガイド」の5行ルールに従うのが最も効果的。

CLAUDE.md → AGENTS.mdへの移行タイミング

最初からAGENTS.mdを作る必要はない。以下のタイミングでCLAUDE.mdの一部をAGENTS.mdに分離するのが自然:

  • Cursorを導入した時: Claude CodeとCursorで同じルールを共有したくなる
  • チームにCopilotユーザーがいる時: コーディング規約を全ツールで統一したい
  • CLAUDE.mdが60行を超えた時: 技術スタックや規約など「ツール共通の情報」をAGENTS.mdに移すとCLAUDE.mdが軽くなる

逆に上記に該当しなければ、CLAUDE.md一本で運用し続けてよい。「将来のために」AGENTS.mdを作るのは無意味。必要になった時に作るのが正しい。

よくある間違い

間違い正解
AGENTS.mdに全ルールを書くClaude Code固有ルールはCLAUDE.mdに書く
MEMORY.mdを手動で大量に書く自動に任せる。間違いの修正だけ手動で
3ファイル全部に同じことを書く重複はトークンの無駄。共通部分はAGENTS.md 1箇所に
MEMORY.mdをGit管理するマシンローカルなので.gitignoreに追加
CLAUDE.mdに200行以上書く200行目以降は切り捨てられる可能性。60行以内に収め、残りはrules/に分離

よくある質問

Q: AGENTS.mdがないとClaude Codeは動かない?

問題なく動く。AGENTS.mdは完全にオプション。Claude Codeだけ使うなら不要で、CLAUDE.md一本で十分。実際に私はClaude Code単体で3サイト(200記事以上)を運営しているが、AGENTS.mdは一度も作ったことがない。CLAUDE.md + .claude/rules/ + .claude/commands/ の3点セットで問題なく回っている。

Q: MEMORY.mdを手動で編集してもいい?

/memoryコマンドで確認・編集可能。ただし基本は自動管理に任せた方が良い。間違った学習が入っていたら削除する程度に留める。例えば「このプロジェクトではjestを使う」という誤った学習が入っている場合、/memoryで該当行を削除し、CLAUDE.mdに「テストはvitestで書く」と明記しておく。人間が書いたCLAUDE.mdのルールはMEMORY.mdの学習より優先されるため、CLAUDE.mdに正しいルールを書くのが最も確実。

Q: CLAUDE.mdとAGENTS.mdに同じことを書いたらどうなる?

重複するがエラーにはならない。ただしトークンの無駄遣い。共通部分はAGENTS.mdだけに書き、CLAUDE.mdから@AGENTS.mdで参照するのがベスト。

Q: .cursorrulesやcopilot-instructions.mdとの関係は?

CLAUDE.mdはClaude Code専用。.cursorrulesはCursor専用。.github/copilot-instructions.mdはCopilot専用。AGENTS.mdは全ツール共通。内容は共通化できるため、AGENTS.mdに書いた内容を他ファイルにもコピーしておくとツール間で一貫性が保てる。→「Cursor vs Claude Code比較

Q: 3ファイルの合計が200行を超えたらどうなる?

各ファイルの先頭200行が読み込まれる(ファイルごとの制限)。合計ではなく個別。ただしファイルが多いほどセッション開始時のトークン消費が増えるため、CLAUDE.mdは60行以内、AGENTS.mdも50行以内に収めるのが理想。→「CLAUDE.md肥大化対策

Q: MEMORY.mdはどこに保存される?

~/.claude/projects/ディレクトリ内に、プロジェクトのパスに基づいたディレクトリ名で保存される。マシンローカルなので、別のPCやチームメンバーとは共有されない。

まとめ|迷ったらCLAUDE.mdだけで十分

Claude Codeだけ使うならCLAUDE.md一本で管理すればOK。複数AIツールを使うならAGENTS.mdに共通ルールを書いて分離。MEMORY.mdは触らなくてもClaudeが勝手に学習してくれる。この3ファイルの使い分けを理解しておくだけで、CLAUDE.mdに何でもかんでも詰め込んで肥大化する問題を防げる。

CLAUDE.mdの書き方は「書き方ガイド」、CLAUDE.mdの基礎は「CLAUDE.mdとは?」、テンプレートは「テンプレート集」、肥大化対策は「肥大化防止ガイド」、使い方全体は「使い方ガイド」、Skillsは「Skills完全ガイド」を参照。

参考文献・公式リソース