CLAUDE.mdとAGENTS.mdとMEMORY.md、何が違うの?——Claude Codeを使い込むと必ずぶつかるこの疑問に、3ファイルの役割・読み込みタイミング・使い分けルールを明確に整理する。
3ファイルの違い|一覧表
| ファイル | 役割 | 誰が書くか | 読み込みタイミング | Git管理 |
|---|---|---|---|---|
| CLAUDE.md | Claude Code専用のプロジェクトルール | 人間 | セッション開始時(毎回) | する |
| AGENTS.md | 複数AIツール共通の指示書 | 人間 | セッション開始時(対応ツールのみ) | する |
| MEMORY.md | Claudeが自動で学んだメモ | 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.md | CursorやCopilotでも使える共通情報 |
| コーディング規約 | AGENTS.md | ツール非依存 |
| Claude Code固有のコマンド指示 | CLAUDE.md | Claude Codeでしか使えない指示 |
| /batchの使い方ルール | CLAUDE.md | Claude Code固有機能 |
| 「sedを使うな」等の禁止事項 | CLAUDE.md | Claude 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ファイルの読み込み順序と優先度
| 順序 | ファイル | 効果 |
|---|---|---|
| 1 | Managed Policy(組織管理者設定) | 最優先。メンバーが上書き不可 |
| 2 | ~/.claude/CLAUDE.md(ユーザー共通) | 全プロジェクトに適用 |
| 3 | AGENTS.md(プロジェクトルート) | AIツール共通ルール |
| 4 | CLAUDE.md(プロジェクトルート) | Claude Code専用ルール |
| 5 | CLAUDE.local.md(個人設定) | 個人のプロジェクト固有設定 |
| 6 | MEMORY.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.md | Claude Code, Cursor, Copilot等 | Markdown |
| .cursorrules | Cursor専用 | プレーンテキスト |
| .github/copilot-instructions.md | GitHub Copilot専用 | Markdown |
| CLAUDE.md | Claude 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箇所だけ」の原則: DRY(Don’t Repeat Yourself)をファイル管理にも適用
- @参照で共有する: CLAUDE.mdから
@AGENTS.mdで参照すれば、内容を複製する必要がない - 定期的に棚卸し: 3ヶ月ごとに3ファイルを見直し、重複を削除。不要になったルールも削除。Claude Codeのアップデートで不要になったルール(例: 過去のバグ回避策が修正された場合)も積極的に削除する
- 新ルール追加時に「どこに書くか」を判断: 上記の判断フローチャートに従う。迷ったらCLAUDE.mdに書く(Claude Code専用で始めて、後からAGENTS.mdに昇格するアプローチが安全)
- チームでは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完全ガイド」を参照。

