AIにプロジェクトの文脈を記憶させるCLAUDE.mdの設計・運用ガイド
Claude Codeは、毎回の会話がリセットされるAIです。 昨日決めた方針も、プロジェクトのルールも、次のセッションでは忘れている。CLAUDE.mdは、この問題を解決するための仕組みです。
プロジェクトのルート(または~/.claude/配下)に配置するマークダウンファイルで、 Claude Codeが会話を開始するたびに自動で読み込む設定ファイルです。 いわばAIに対する「引き継ぎメモ」であり、プロジェクトの記憶を外部化する手段です。
ポイント: CLAUDE.mdは単なるプロンプトテンプレートではありません。 Claude Codeの起動時に自動で読み込まれ、そのセッション全体に影響を与える「永続的なシステムプロンプト」です。 適切に設計すれば、チーム全員が同じ品質のAI出力を得られる仕組みになります。
CLAUDE.mdには3つの配置場所があり、それぞれ影響範囲が異なります。 正しく使い分けることが、効果的な運用の第一歩です。
ホームディレクトリの.claude/フォルダに配置します。そのユーザーの全セッションに適用されるグローバル設定です。
プロジェクトのルートディレクトリに配置します。そのプロジェクトで作業する全員に適用されます。 Gitリポジトリにコミットすれば、チーム全体で共有できます。
サブディレクトリに配置します。そのディレクトリ以下で作業する場合にのみ適用されます。 大規模プロジェクトでモジュールごとにルールが異なる場合に有効です。
src/frontend/CLAUDE.md)src/api/CLAUDE.md)tests/CLAUDE.md)優先順位: 3つのスコープが競合した場合、ディレクトリレベル > プロジェクトレベル > ユーザーレベルの順で優先されます。 より具体的(狭い範囲)な設定が勝つ、という直感的なルールです。
CLAUDE.mdの設計で最もよくある失敗は、書きすぎることです。
CLAUDE.mdの内容はセッション開始時にコンテキストウィンドウに読み込まれます。 つまり、書いた分だけAIの「作業机」のスペースを消費するということです。 導入ガイドのセクション01で説明した100万トークンのコンテキストウィンドウは広大ですが、無限ではありません。
実運用で見られる具体的な問題は以下の通りです。
目安: プロジェクトレベルのCLAUDE.mdは300〜500行程度に収めるのが実用的です。 「これを新しいチームメンバーに渡して、すぐ仕事を始められるか?」という基準で取捨選択してください。 詳細なドキュメントはCLAUDE.mdから参照する形にし、CLAUDE.md自体はインデックスの役割に留めるのがコツです。
以下は、実際のプロジェクトで使用しているCLAUDE.mdの構成例です。 コピーしてそのまま使うのではなく、プロジェクトの実情に合わせてカスタマイズしてください。
# プロジェクト名
## 概要
- 何のプロジェクトか(1〜2文で)
- 技術スタック: Next.js 15 / TypeScript / Supabase / Vercel
## アーキテクチャ
- src/app/ — App Router ページ
- src/components/ — 共有コンポーネント
- src/lib/ — ユーティリティ、API クライアント
- supabase/migrations/ — DBマイグレーション
## コーディング規約
- TypeScript strict mode
- コンポーネントは関数コンポーネント + hooks
- CSS Modules を使用(Tailwind は不使用)
- テストは Vitest + React Testing Library
## 禁止事項
- 本番データベースへの直接クエリ禁止
- .env ファイルをコミットしない
- node_modules/ をコミットしない
## テスト
- `npm run test` で全テスト実行
- PR前に必ず `npm run lint && npm run test` を通すこと
## デプロイ
- main ブランチへのマージで Vercel に自動デプロイ
- ステージング: preview ブランチAIは多くのことをデフォルトでうまくやります。 わざわざ書くべきは、AIが間違えやすいポイントや、プロジェクト固有の制約です。 「TypeScriptで書け」は不要(すでにTypeScriptプロジェクトなら自明)ですが、 「Tailwindは使わずCSS Modulesを使え」は書く価値があります。
「本番DBに直接クエリを投げない」だけでなく、 「本番DBに直接クエリを投げない(過去にデータ破損インシデントがあったため)」と書く。 理由があるとAIは指示をより正確に解釈し、エッジケースでも適切に判断できます。
「APIレスポンスは統一フォーマットで返すこと」と文章で書くより、 実際のフォーマット例を1つ貼る方がAIには伝わります。 抽象的な指示より、具体的な例が効きます。
プロジェクトは変化します。3ヶ月前のルールが今も有効とは限りません。 月に1回程度、CLAUDE.mdを見直し、不要になったルールを削除してください。削除する勇気が、CLAUDE.mdの品質を維持する最大の秘訣です。
CLAUDE.mdはコードと同じようにGitで管理し、PRでレビューするのが理想です。 一人の思い込みでルールが増えるのを防ぎ、チーム全体で合意された「AIへの引き継ぎ」になります。
プロジェクトごとに技術スタックもルールも異なります。 全社共通にしようとすると、抽象的で役に立たない内容になるか、 特定プロジェクトにしか当てはまらないルールが他のプロジェクトを汚染します。
対処法: ユーザーレベル(~/.claude/CLAUDE.md)は言語設定など最小限に留め、 具体的なルールはプロジェクトレベルに書く。
API仕様書、設計ドキュメント、議事録…全てをCLAUDE.mdに入れたくなる気持ちは分かりますが、 これではコンテキストウィンドウを無駄に消費するだけです。
対処法: CLAUDE.mdには概要とファイルパスの参照だけ書く。 「API仕様はdocs/api-spec.mdを参照」のように、必要に応じてAIが読みに行ける形にする。
最初に張り切って書いたCLAUDE.mdが、半年後にはプロジェクトの実態と乖離している。 古い情報はAIの出力品質を直接下げるため、放置は積極的に有害です。
対処法: スプリントレトロスペクティブやPRレビューのタイミングでCLAUDE.mdの見直しを習慣化する。
CLAUDE.mdの導入は段階的に進めるのが効果的です。
Fyveの支援: 弊社ではCLAUDE.mdのテンプレート設計から、 プロジェクト固有のカスタマイズ、チーム向けのハンズオントレーニングまで一貫してサポートしています。 「何を書けばいいか分からない」という段階からお気軽にご相談ください。