この記事についてClaude(Anthropic)との共同編集により作成されました。
要約
- CLAUDE.mdはClaude Codeがセッション開始時に読み込む「AIへの指示書」で、プロジェクトの振る舞いをガイドする
- 利用パターン(ソロ/チーム/モノレポ/非Git/エンタープライズ)によって最適な管理方法が異なる
- 200行以内に収め、Claudeがコードから推論できない情報だけを書くのが基本原則
- MEMORY.md(自動メモリ)は「今何を作っているか」、CLAUDE.mdは「どう作るか」という役割分担がある
CLAUDE.mdとは何か
CLAUDE.mdは、Claude Codeがセッション開始時に自動で読み込む指示ファイルだ^1。
設定ファイルではない。コンテキストウィンドウにテキストとして注入される「AIアシスタントへのプロジェクト指示書」であり、.editorconfig や .prettierrc の AI 版と考えるとわかりやすい^2。毎セッション全行がコンテキストに載るため、トークンコストに直結する。
Claude Codeを使い始めた人が最初にやるべきことは、/init コマンドでCLAUDE.mdを自動生成し、そこに手動で追記していくことだ。ただし、プロジェクトの規模・チーム構成・Git管理の有無によって、最適な管理方法はかなり異なる。
この記事ではCLAUDE.mdの管理パターンを5つに分類し、自分に合った方法を選べるようにした。
管理パターン診断フローチャート
あなたの利用環境は?│├─ 個人で使っている│ ├─ Git リポジトリで開発 ──→ 🅰 ソロ開発者│ └─ Git 管理していないフォルダ ──→ 🅱 ナレッジベース管理者│├─ チームで使っている│ ├─ リポジトリは 1 つ ──→ 🅲 小〜中規模チーム│ └─ モノレポ or 複数リポジトリ ──→ 🅳 大規模チーム / モノレポ│└─ 組織全体で統制したい ──→ 🅴 エンタープライズ管理者以下、各パターンの要点を解説する。
🅰 ソロ開発者(個人 × Git リポジトリ)
個人開発、OSS、副業プロジェクトなど。
| 使うファイル | 配置 | 内容 |
|---|---|---|
./CLAUDE.md | リポジトリルート | プロジェクト概要・コマンド・規約 |
~/.claude/CLAUDE.md | ホーム | 全プロジェクト共通の好み |
ポイント:
- CLAUDE.md 1枚で十分。 200行を超えるまで分割は不要
/initで生成 → 手動で追記が最速の立ち上げCLAUDE.local.mdは不要。自分しかいないので CLAUDE.md に直接書けばいい- 個人の好み(「日本語で返答」等)は
~/.claude/CLAUDE.mdに書くと全プロジェクトに効く
最もシンプルなパターン。CLAUDE.mdの管理で悩む必要はほぼない。
🅱 ナレッジベース管理者(個人 × 非Git ワークスペース)
調査メモ、社内ドキュメント集、Google Drive上のフォルダ、個人Wikiなど。
Git管理していないワークスペースでもCLAUDE.mdは問題なく動作する。Claude Codeはカレントディレクトリを起点にファイルを探すため、Gitの有無は関係ない^1。
| 使うファイル | 配置 | 内容 |
|---|---|---|
./CLAUDE.md | ワークスペースルート | フォルダ構成の説明、ドキュメント規約、出力フォーマット |
~/.claude/CLAUDE.md | ホーム | 全プロジェクト共通の好み |
サブディレクトリの CLAUDE.md | 各トピックフォルダ | フォルダ固有のルール(遅延ロード) |
ポイント:
- フォルダ構成の説明が特に重要。 コードベースと違い、ディレクトリ名だけでは内容をClaude が推論しにくい
- サブディレクトリごとにCLAUDE.mdを置くと、Claudeがそのフォルダのファイルを触ったときだけロードされる。トピックが多様なワークスペースではトークン効率が良くなる
.gitignoreが使えないため、CLAUDE.local.mdの分離に意味が薄い。自分しか使わないなら CLAUDE.md に全部書けばいい- バージョン管理がないのが最大の弱点。 対策としてdotfilesリポジトリでシンボリックリンク管理する方法がある(次回の記事で詳しく書く)
CLAUDE.mdの例:
個人のリサーチノート・技術ドキュメントのワークスペース。
## フォルダ構成
| ディレクトリ | 内容 ||---|---|| research/ | 技術調査資料 || drafts/ | ブログ記事の下書き || gdrive/ | Google Driveへのシンボリックリンク |
## ドキュメント規約
- 資料作成時は末尾に参照リンクを含める- 新規ファイルは適切なサブディレクトリに配置する🅲 小〜中規模チーム(2〜15人 × 単一リポジトリ)
スタートアップ、社内プロジェクト、SaaS開発チームなど。
| 使うファイル | 配置 | 内容 |
|---|---|---|
./CLAUDE.md | リポジトリルート(Git管理) | プロジェクト概要・コマンド・規約・禁止事項 |
./CLAUDE.local.md | リポジトリルート(.gitignore) | 個人のローカル環境設定 |
~/.claude/CLAUDE.md | ホーム | 各メンバーの好み |
./.claude/settings.json | Git管理 | チーム共通のパーミッション |
ポイント:
- CLAUDE.mdはチームの「コーディング憲法」。 PRレビューで繰り返し指摘される内容を書く
CLAUDE.local.md(個人の環境URL、テストデータ等)は必ず.gitignoreに入れる.claude/rules/への分割は、チームが5人を超えるか、CLAUDE.mdが200行を超えたら検討する/initで生成した後、チーム全員でレビューしてからコミットするのがおすすめ
.gitignore の推奨設定:
CLAUDE.local.md.claude/settings.local.jsonソロ開発と違い、「チーム共有の指示」と「個人の好み」を分離する必要がある。ここが管理の複雑さが一段上がるポイント。
🅳 大規模チーム / モノレポ(15人以上 or 複数パッケージ)
大規模SaaS、モノレポ運用のプロダクトなど。
| 使うファイル | 配置 | 内容 |
|---|---|---|
./CLAUDE.md | リポジトリルート | 共通ツーリング・CI・全体方針(短く) |
packages/*/CLAUDE.md | 各パッケージルート | パッケージ固有の規約(遅延ロード) |
.claude/rules/*.md | .claude/rules/ | paths 付きで条件ロード |
.claude/settings.local.json | .gitignore | claudeMdExcludes で他チームの除外 |
ポイント:
- ルートCLAUDE.mdは50行以下に抑える。 詳細はパッケージごとのCLAUDE.mdや
.claude/rules/に委譲する pathsフロントマターを積極的に使い、無関係なルールがロードされないようにするclaudeMdExcludesで他チームのCLAUDE.mdを除外すると、ノイズ削減とトークン節約の両方に効く
.claude/rules/ の条件付きロード例:
---paths: - "src/api/**/*.ts" - "tests/**/*.test.ts"---
# API 開発ルール
- 全エンドポイントに入力バリデーションを必ず含める- 標準エラーレスポンス形式を使うこの paths が付いたルールは、Claudeが該当パターンのファイルを操作したときだけロードされる。モノレポでパッケージごとに異なるコーディング規約がある場合に特に有効だ^1。
🅴 エンタープライズ管理者(組織統制)
IT部門、セキュリティチーム、開発プラットフォームチームなど。
| 使うファイル | 配置 | 内容 |
|---|---|---|
| マネージドポリシー CLAUDE.md | OS固有のシステムパス | 組織全体のコードスタイル・コンプライアンス |
| マネージド settings.json | 同上 or サーバー配信 | パーミッション・セキュリティの強制 |
各プロジェクトの ./CLAUDE.md | リポジトリ | プロジェクト固有(チーム管理) |
マネージドポリシーCLAUDE.mdの配置先:
| OS | パス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/CLAUDE.md |
| Linux / WSL | /etc/claude-code/CLAUDE.md |
| Windows | C:\Program Files\ClaudeCode\CLAUDE.md |
ポイント:
- セキュリティ制約は settings.json で強制、品質ガイドラインは CLAUDE.md でという役割分担が鍵
- マネージドポリシーCLAUDE.mdは
claudeMdExcludesで除外できない。組織全体の指示は確実に適用される^1 - CLAUDE.mdに書く内容は「強制力がない」ことを念頭に。ハードブロックが必要な制約は必ず settings.json で設定する
- Claude for Teams / Enterpriseならサーバー経由で設定を配信でき、MDM不要^7
比較表
| パターン | CLAUDE.md 数 | rules 分割 | CLAUDE.local.md | 管理の複雑さ |
|---|---|---|---|---|
| 🅰 ソロ開発者 | 1 | 不要 | 不要 | ★☆☆☆☆ |
| 🅱 ナレッジベース | 1 + サブディレクトリ | 不要〜任意 | 不要 | ★★☆☆☆ |
| 🅲 小〜中規模チーム | 1 | 200行超えたら | 必要 | ★★★☆☆ |
| 🅳 大規模 / モノレポ | ルート + パッケージ | 積極活用 | 必要 + excludes | ★★★★☆ |
| 🅴 エンタープライズ | マネージド + プロジェクト | 積極活用 | 必要 | ★★★★★ |
全パターン共通のベストプラクティス
管理パターンに関係なく、CLAUDE.mdの書き方と運用には共通のコツがある。
1ファイル200行以内
毎セッション全行がコンテキストに載る。肥大化するとベースコストが上がるだけでなく、指示の遵守率も低下する^1^2。200行を超えたら @import や .claude/rules/ で分割を検討する。
Claudeが推論できないことだけ書く
標準的な言語規約や明らかなディレクトリ構造は書かなくていい。**「この指示を消したらClaudeが間違えるか?」**を判断基準にする^3。
| 良い例 | 悪い例 |
|---|---|
| 「2スペースインデントを使う」 | 「コードをきれいに書く」 |
「コミット前に npm test を実行する」 | 「テストを忘れずに」 |
@import で外部ファイルを取り込む
CLAUDE.md内で @path/to/file と書くと、そのファイルの内容がセッション開始時にインラインで展開される^1^4。README.mdや既存のドキュメントを再利用できる。
プロジェクト概要は @README.md を参照。利用可能なコマンドは @package.json の scripts セクションを参照。再帰インポートにも対応しており、最大深度は5ホップ^1。
HTMLコメントでメンテナ向けメモ
CLAUDE.md内のブロックレベルHTMLコメントはコンテキスト注入時にストリップされる^1。人間のメンテナ向けのメモをトークンコストなしで残せる。
<!-- この規約は 2025-12 の設計レビューで決定。変更は #arch で合意が必要 -->## コーディング規約.../init で出発点を作る
/init コマンドを実行すると、Claudeがコードベースを分析してCLAUDE.mdを自動生成する^1。既存のCLAUDE.mdがある場合は上書きせず、改善提案を行う。
生成された内容はあくまで出発点。Claudeがコードから推論できない知識(アーキテクチャ上の意思決定、チーム固有の慣習等)は手動で追記する。
MEMORY.md(自動メモリ)との使い分け
CLAUDE.mdと混同しやすいのが、Claudeが自動的に書き込むMEMORY.md(自動メモリ)だ。
| CLAUDE.md | 自動メモリ(MEMORY.md) | |
|---|---|---|
| 誰が書くか | 人間 | Claude |
| 内容 | 指示・ルール・規約 | 学習・パターン・発見 |
| スコープ | プロジェクト / ユーザー / 組織 | ワーキングツリー単位 |
| ロード | 毎セッション全文 | 毎セッション先頭200行 or 25KB |
核心的な違いは、CLAUDE.mdは「どう作るか」を定義し、MEMORY.mdは「今何を作っているか」の文脈を保持することだ^6。
- CLAUDE.mdに書くもの: 変わらないルール、アーキテクチャ決定、コーディング規約
- 自動メモリに任せるもの: セッション中に発見したデバッグ知見、Claudeへの作業フィードバック
会話中にだけ伝えた指示は /compact(コンテキスト圧縮)後に失われる可能性がある。繰り返し使う指示はCLAUDE.mdに書いておくべきだ^1。
まとめ
CLAUDE.mdの管理は、利用パターンによって最適解が大きく変わる。
ソロ開発者なら1枚のCLAUDE.mdで十分。チームなら共有指示と個人設定の分離が必要になる。モノレポでは paths による条件ロードが効いてくる。非Gitワークスペースではバージョン管理の不在をどう補うかが課題になる。
共通して言えるのは「200行以内」「Claudeが推論できないことだけ書く」「古くなったら更新する」の3点だ。古いCLAUDE.mdは「ない」より悪い^2。
自分のパターンがわかったら、まず /init でCLAUDE.mdを生成し、この記事のポイントを参考に手動で追記するところから始めてみてほしい。
参考文献
- Anthropic公式ドキュメント — Memory https://docs.anthropic.com/en/docs/claude-code/memory
- Claude Directory — The Complete Guide to CLAUDE.md https://www.claudedirectory.org/blog/claude-md-guide
- Morph — Claude Code Best Practices 2026 https://www.morphllm.com/claude-code-best-practices
- Claude Code Tutorials — How to Organize a Large CLAUDE.md File https://www.claudecodetutorials.com/learn/posts/when-your-claude-md-gets-too-long-import-rules-and-the-memory-command
- GitHub Issue #33144 — /init creates CLAUDE.md at git root instead of launch directory https://github.com/anthropics/claude-code/issues/33144
- BSWEN — Claude.md vs Memory Files https://docs.bswen.com/blog/2026-03-12-claudemd-vs-memory-files
- Anthropic公式ドキュメント — Server Managed Settings https://code.claude.com/docs/en/server-managed-settings.md