2026年の新規プロジェクトで AIコーディングルールを置こうとすると、設定システムが3つ並ぶ:AGENTS.md(マルチツール標準)、CLAUDE.md(Claude Code ネイティブ)、.cursor/rules/(Cursor の構造化ルール)。表層的には「エージェントに動き方を伝える Markdown」で同じに見えるが、内部モデルが違いすぎて、チームが間違ったやつを選ぶとセットアップ時間と一貫性のコストを払うことになる。
本記事は3つを スコープ・ファイル形式・path scoping・imports・ルール発火モード・マルチツール互換性 で並べて比較し、双方向の移行パスも提示する。すべての記述は Anthropic Claude Code docs(2026年5月版) と Cursor 公式docs(2026年5月版) に対して検証済み。コミュニティWikiは参照していない。
新規リポを立ち上げる、切り替えを検討する、複数エージェントで同じコードベースを回す — どの場面でもこれをリファレンスにしてほしい。
TL;DR — 30秒で結論
- チームが複数のAIコーディングツールを併用 (Claude Code + Codex + Cursor + Gemini CLI):AGENTS.md が最大公約数の標準。全主要エージェントが読む。
- Claude Code 専用でネイティブ機能を最大限使いたい(
@imports、.claude/rules/の glob scoping、auto memory):CLAUDE.md +.claude/rules/が最強。 - Cursor 専用で細かいルール発火制御がほしい(Always / Auto Attached / Agent Requested / Manual
@):.cursor/rules/に.mdcfrontmatter。 - 複数エージェント併用かつ Claude 固有挙動も欲しい:
AGENTS.mdを真実の源にして、CLAUDE.mdから@AGENTS.mdで import。両得・重複なし。
以下、なぜそうなるかを掘り下げる。
それぞれ何者か
AGENTS.md(2026)
AGENTS.md はマルチツール標準として広まったプレーン Markdown 設定。frontmatter なし、メタデータなし、ルール発火モードなし。リポルートか配下サブディレクトリに置く Markdown ファイル一発で、どのAIエージェントにも「このコードベースでの動き方」を伝える。2026年時点で Claude Code(import経由)/ Codex CLI / Gemini CLI / OpenCode / Cursor(discovery) が標準対応 — この互換性リストが最大の存在価値。
Anthropic の Claude Code 公式 docs もこれを明示的に認知している:“If your repository already uses AGENTS.md for other coding agents, create a CLAUDE.md that imports it so both tools read the same instructions without duplicating them.”
ネスト が AGENTS.md のスーパーパワー:リポに AGENTS.md(ルート)、frontend/AGENTS.md、backend/AGENTS.md、infra/AGENTS.md を配置すれば、ディレクトリツリーを歩くエージェントは階層的に命令を合成する。
CLAUDE.md(Anthropic、2026年5月)
CLAUDE.md は Claude Code のネイティブ命令ファイル。2026年5月時点の公式docs から:
“Each Claude Code session begins with a fresh context window… CLAUDE.md files: instructions you write to give Claude persistent context.”
セッション開始時に 全文ロード(プロジェクトルートのファイルは遅延ロードなし)、ロード順は広い→狭いの 4スコープ:
- Managed policy — IT/DevOps管理。OS管理パス(macOS なら
/Library/Application Support/ClaudeCode/CLAUDE.md)。個人設定で除外不可。 - User instructions —
~/.claude/CLAUDE.md。全プロジェクト共通の個人設定。 - Project instructions —
./CLAUDE.mdまたは./.claude/CLAUDE.md。バージョン管理経由でチーム共有。 - Local instructions —
./CLAUDE.local.md。プロジェクト固有の個人設定(gitignore)。
@path/to/file 形式の import(最大5階層)、サブディレクトリの CLAUDE.md は遅延ロード、.claude/rules/ ディレクトリで YAML frontmatter paths: glob による path-scoped rules に対応。
推奨サイズは1ファイル200行以下 — Anthropic docs は明示的に「200行超は遵守率が落ちる」と書いている。
.cursor/rules/(Cursor、2026年5月)
3つの中で最も構造化された方式。ルールは .cursor/rules/ に .md または .mdc で格納。.mdc は YAML frontmatter サポート:
---
description: "Rule purpose"
alwaysApply: false
globs: src/**/*.tsx
---
Rule content here
最大の特徴は 4つの明示的なルール発火モード:
- Always Apply(
alwaysApply: true)— 全チャットセッションで常時ロード - Apply Intelligently — エージェントが
description欄から関連性判定 - Apply to Specific Files —
globs一致時に自動アタッチ - Apply Manually — チャットで
@rule-name言及で発火
ルール優先順位は Team → Project → User、衝突時は先勝ち。
レガシーの単一ファイル .cursorrules も2026年で動くが、Cursor のdocsは .cursor/rules/ を正規形として案内している。
3方比較マトリクス
| 軸 | AGENTS.md | CLAUDE.md | .cursor/rules/ |
|---|---|---|---|
| メンテナー | マルチツールコミュニティ標準 | Anthropic | Cursor (Anysphere) |
| 読まれる | Claude Code(import経由)、Codex CLI、Gemini CLI、OpenCode、Cursor | Claude Code のみ | Cursor のみ |
| 形式 | Plain Markdown | Plain Markdown + @imports | .md / .mdc + YAML frontmatter |
| Frontmatter | なし | なし(ルートは)。.claude/rules/ で paths | description、alwaysApply、globs |
| ネスト | サブディレクトリ AGENTS.md を階層的に walk | サブディレクトリ CLAUDE.md は遅延ロード | プロジェクト1つの .cursor/rules/ |
| Path scoping | 暗黙的(AGENTS.md をサブディレクトリに置く) | .claude/rules/ + paths: ["src/**/*.ts"] | .mdc frontmatter の globs: |
| ルール発火 | 常時ロード(ファイル全体) | 常時ロード(ルールは path-scoped 可) | 4モード:Always / Auto / Agent Requested / Manual |
| Imports | なし | @path/to/file(最大5階層) | なし |
| User-level | 標準化なし | ~/.claude/CLAUDE.md | User Rules(別設定) |
| Managed/Enterprise | なし | Managed policy(OS管理パス) | Team Rules |
| サイズガイド | 慣習依存 | ”200行以下”(Anthropic docs) | 明示制限なし |
| Auto memory | なし | ~/.claude/projects/<project>/memory/(マシンローカル) | なし |
| マルチツール対応? | はい(そもそもそのために設計) | いいえ(Claude専用) | いいえ(Cursor専用) |
| 複数エージェント共存 | ネイティブ | @AGENTS.md import 経由 | ファイル名重複なし |
どれを選ぶか(決定フロー)
シナリオ1:個人開発、Claude Code 専用
CLAUDE.md + .claude/rules/ を選ぶ。@imports・glob-scoped rules・サブディレクトリ遅延ロード・auto memory と、ネイティブ機能を全部享受できる。
your-project/
├── CLAUDE.md # 常時ロード
└── .claude/
└── rules/
├── testing.md # frontmatter なし → 常時ロード
└── api.md # paths: ["src/api/**/*.ts"] → 条件ロード
シナリオ2:複数AIコーディングツール併用チーム
AGENTS.md を真実の源に。ツール固有の挙動が必要な場合だけ専用ラッパーを追加:
your-project/
├── AGENTS.md # Codex / Gemini CLI / OpenCode / Cursor が読む
├── CLAUDE.md # @AGENTS.md\n## Claude Code\n...
└── .cursor/
└── rules/
└── cursor-only.mdc # Cursor固有のオーバーライド
CLAUDE.md の中身:
@AGENTS.md
## Claude Code
- `src/billing/` 配下の変更はプランモードで
- サブエージェント dispatch パターン: @docs/dispatch.md
シナリオ3:Cursor 専用、細かい発火制御がほしいチーム
.cursor/rules/ 一択。他のシステムには4モード発火がない。alwaysApply: false + description: "..." を使うと、関連時だけ発火してコンテキスト予算を節約できる。
シナリオ4:パッケージ別ルールがある monorepo
3つそれぞれ処理が違う:
- AGENTS.md —
frontend/AGENTS.md、backend/AGENTS.md、services/auth/AGENTS.mdを配置。対応エージェントがツリーを walk。 - CLAUDE.md — ルートCLAUDE.md +
.claude/rules/api.mdのpaths: ["src/api/**/*.ts"]。または各パッケージに CLAUDE.md(遅延ロード)。 .cursor/rules/— ルートに単一.cursor/rules/、パッケージ別.mdcでglobs: services/auth/**/*形式の scoping。
monorepo がチーム所有権で分かれてる場合(各チームが自分のルールを管理)、AGENTS.md のネスト が最もクリーン:他チームの AGENTS.md に触らずに済む。
相互移行パス
CLAUDE.md → AGENTS.md(マルチツール標準化)
CLAUDE.mdをAGENTS.mdにリネーム、Claude固有の言い回しを除去。- 薄い
CLAUDE.mdを新規作成、@AGENTS.mdで import + Claude固有を追記:@AGENTS.md ## Claude Code Specific - `src/billing/` 配下のリファクタはプランモードで - 他のエージェント(Codex / Cursor / Gemini CLI)が
AGENTS.mdを正しく拾うかテスト。
Claude固有内容が不要ならシンボリックリンクでもいい:
ln -s AGENTS.md CLAUDE.md
(Windowsでは Developer Mode が必要なので @AGENTS.md import 推奨)
.cursorrules(レガシー)→ .cursor/rules/(現代)
.cursorrulesの中身を.cursor/rules/main.mdへ移動(テーマ別に分割してもOK)。- 常時発火させたいルールは
alwaysApply: trueを frontmatter に追加。 - 特定ファイル紐付けは
globs:を使う。 .cursorrulesを削除(古い Cursor バージョンとの後方互換のために残す手も)。
.cursor/rules/ → AGENTS.md(対応ツールを広げる)
.mdcから frontmatter を剥がす — AGENTS.md は plain markdown。- “always apply” ルールを
AGENTS.md本体にマージ。 - ファイル限定ルールはネストAGENTS.mdへ(例:
globs: src/api/**/*→src/api/AGENTS.md)。 - 他エージェントに移植できない Cursor 固有挙動だけ
.cursor/rules/に残す。
3つ並列運用(最複雑)
移行途中や、ツール間で挙動が分岐するチームでよくあるセットアップ:
project/
├── AGENTS.md # 真実の源、全ツール共有
├── CLAUDE.md # @AGENTS.md + Claude固有
├── .claude/
│ ├── rules/
│ │ └── path-scoped.md # Claude専用 path-scoped ルール
│ └── settings.json
└── .cursor/
└── rules/
└── cursor-specific.mdc # Cursor 発火モード活用
重複ドリフトに注意:AGENTS.md を更新したら、ツール固有ファイルに古い記述が残ってないかチェック。CLAUDE.md の @AGENTS.md import は Claude側でドリフトを防ぐが、Cursor には等価の import がないので手動同期が必要。
これらが解決 しない こと
3つの誤解を明示的に潰しておく。
enforcement レイヤーではない
3システムとも命令を model のコンテキストに 注入 するだけ。何かを ブロック するわけではない。ハードな禁止が必要なら:
- Claude Code:
.claude/settings.jsonのpermissions.deny(クライアント側で強制) - Cursor:コマンド別設定(ターミナル承認など)
- Codex/Gemini CLI:ツール固有 sandbox 設定
Anthropic docs の言葉そのまま:“Settings rules are enforced by the client regardless of what Claude decides to do. CLAUDE.md instructions shape Claude’s behavior but are not a hard enforcement layer.”
/compact で全部が残るわけではない
Claude Code では、プロジェクトルートの CLAUDE.md は /compact 後に再注入される(ディスクから再読込)。サブディレクトリの CLAUDE.md は 自動再注入されない — そのサブディレクトリのファイルを Claude が次に読むときに再ロードされる。Cursor / Codex は compaction セマンティクスが違うので各ツールのドキュメントを確認。
Skills / Hooks / Commands ではない
固定ライフサイクルイベント(pre-commit、post-edit)で何かを走らせたいなら hooks。オンデマンドで呼び出す多段ワークフローなら skills(Claude Code)または @rule Manual mode(Cursor)。設定ファイルは「常時ロードのコンテキスト」用、ワークフロー定義じゃない。
claude.md vs claude-md 系の表記ゆれについて
2026年の Search Console データを見ると、表記ゆれが永続的に存在する:claude.md、claude md、agents md(ドットなし)、agent.md、caveman md(OCR or autocorrect っぽい)。正規表記は CLAUDE.md(全大文字+ドット、空白なし)、AGENTS.md(全大文字+ドット、複数形)。Cursor は .cursor/rules/(ディレクトリ)、ファイル名は自由(testing.md、api.mdc 等)。レガシーの単一ファイル形は .cursorrules(全小文字、ドットなし)。
FAQ
Claude Code は AGENTS.md を直接読みますか?
読みません。Claude Code は CLAUDE.md を読みます。公式の回避策は、CLAUDE.md を作って @AGENTS.md で import するか、シンボリックリンク(ln -s AGENTS.md CLAUDE.md)を張ること。Anthropic docs はマルチツールリポでこのパターンを明示的に推奨しています。
CLAUDE.md と .cursor/rules/ を同じプロジェクトで併用できますか?
できます。多くのチームがそうしています。Claude Code は CLAUDE.md を、Cursor は .cursor/rules/ を読みます。各ツールが自分用のファイルだけ読むので衝突しません。リスクは ドリフト:両方が同じ慣習を記述して内容が分岐すると、2つのエージェントが違う動きをします。一番きれいな解決は AGENTS.md を真実の源にして CLAUDE.md から import すること。
.cursorrules と .cursor/rules/ の違いは?
.cursorrules は単一ファイル形(レガシー)。.cursor/rules/ は現代のディレクトリベース方式で、.mdc frontmatter、4つのルール発火モード(Always / Auto Attached / Agent Requested / Manual)、ファイル別 glob scoping をサポートします。両方とも Cursor 2026 で動きますが、docs は新規ユーザーに .cursor/rules/ を案内しています。
AGENTS.md は .cursor/rules/ のような glob scoping をサポートしますか?
frontmatter では対応しません — AGENTS.md には frontmatter がないので。等価パターンは ネスト AGENTS.md:frontend/AGENTS.md、backend/AGENTS.md などをサブディレクトリに配置し、ディレクトリツリーを walk するエージェントが階層的に命令を合成します。Claude Code(サブディレクトリ CLAUDE.md の遅延ロード)、Codex CLI、その他マルチツールエージェントで動作します。
CLAUDE.md は何行までが推奨ですか?
Anthropic の公式ガイドは 1ファイル200行以下。長くなるとコンテキスト消費が増えて遵守率が落ちます。命令が増えるなら .claude/rules/ に分割して paths: glob scoping を使い、対応ファイルを Claude が触る時だけロードさせるのが正攻法。
/init で作られるファイルは?
Claude Code で /init を実行すると CLAUDE.md が作られます。既存の AGENTS.md があれば、/init がそれを読んで関連部分を生成 CLAUDE.md に取り込みます。.cursorrules や .windsurfrules も読み取って慣習をシードしてくれる(他ツールからの移行時に便利)。
TypeScript ファイル限定のルールを書けますか?
3システム全部で可能ですが、syntax が違います:
- CLAUDE.md:
.claude/rules/typescript.mdを作って frontmatterpaths: ["**/*.ts", "**/*.tsx"]。 .cursor/rules/:typescript.mdcを作って frontmatterglobs: **/*.{ts,tsx}。- AGENTS.md:ネスト AGENTS.md(例:
src/AGENTS.md)に書き、ディレクトリツリー walk に頼る。
管理ポリシー / Enterprise版はありますか?
CLAUDE.md には明示サポートあり:OS管理パスに置かれた managed policy CLAUDE.md(例:/Library/Application Support/ClaudeCode/CLAUDE.md)は個人設定で除外不可。Cursor は Team Rules をサポート。AGENTS.md はコミュニティ慣習で標準化された企業向けツーリングなし。
/compact 後に命令はどうなりますか?
Claude Code の場合:プロジェクトルートの CLAUDE.md は /compact 後にディスクから再注入されます。ネスト CLAUDE.md は自動再注入されません — そのサブディレクトリのファイルを Claude が次に読むときにロードされます。会話中だけの命令は失われるので、永続化したければ CLAUDE.md に書いておく。
関連記事
- AGENTS.md vs CLAUDE.md:6万リポの実例で見る使い分け
- .cursorrules vs CLAUDE.md vs AGENTS.md
- Career-Opsの内部構造:14モードSkillsアーキテクチャから学ぶ
- Career-Ops 完全リファレンス 2026 — Claude Code 製AI求職システム
- CLAUDE.md の書き方ガイド
- 165以上のAIコーディングルール実例集