背景
Claude Codeを使い始めたばかりの方は、こんな経験がないでしょうか。「このプロジェクトはnpmではなくpnpmを使っています」「コミットメッセージは日本語で」——同じ説明を、セッション(会話)を開くたびに何度も入力している。この手間は、CLAUDE.md(クロード・エムディー)という1つのファイルを用意しておくだけで、かなり減らせます。
この記事で分かること
-
CLAUDE.mdを置くと、Claude Codeとのやり取りが具体的にどう変わるか - ファイルの置き場所によって「誰と共有されるか」が変わること(全部で5パターン)
- 長くなりすぎないための書き方のコツと、おすすめの見出し構成
-
@という書き方で、他のファイルの内容を読み込ませる方法 - おまけ:Claude Code自身に公式ドキュメントを調べさせるコマンド
① CLAUDE.mdとは何か——「新人さんへの引き継ぎメモ」
Claude Codeは、新しくセッションを開始するたびに、前回までのやり取りを覚えていない状態からスタートします。まっさらな状態で入ってきた新人さんに、毎回同じ説明をし直しているようなものです。
CLAUDE.mdは、その説明を先回りして書いておく「引き継ぎメモ」にあたるマークダウン形式のファイルです。
プロジェクトの直下に置いておくと、Claude Codeがセッションの最初に自動で読み込みます。
一から手で書く必要はありません。/initというコマンドを実行すると、Claude自身がREADMEや設定ファイルを読み取って下書きを作ってくれます。
② CLAUDE.mdがあると何が変わるか
具体的な変化を4つに整理しました。
| 変化 | 内容 |
|---|---|
| コンテキストの共有 | プロジェクトの目的や技術構成を、Claude Codeが最初から把握した状態で作業を始める |
| 説明の省略 | 「うちはこうです」という前置きを、毎回のセッションで言い直さなくてよくなる |
| 規約の遵守 | コーディング規約(命名規則やフォーマット)を守らせやすくなる |
| チーム共有 | ファイルをGitで管理すれば、チーム全員が同じルールを前提に作業できる |
ただしCLAUDE.mdはあくまで「読んで従ってほしいお願い」であり、書けば絶対に守られる仕組みではない、という点は覚えておいてください。機械的に強制したい制約がある場合は「フック(hooks)」という別の仕組みを使います。
③ 書き方のコツ——短く、具体的に
CLAUDE.mdは、書けば書くほどよいわけではありません。公式ドキュメントは「1ファイルあたり200行未満を目安にする」と明記しています。長くなるほどコンテキスト(Claude Codeがそのつど読み込む情報量)を圧迫し、指示への追従度も下がりやすいためです。押さえるべきは次の3つのコツです。
| コツ | 長すぎる書き方 | 適切な書き方 |
|---|---|---|
| コツ1: 分量 | 200行を大きく超える大作 | 200行未満を目安にする |
| コツ2: 網羅性 | 細部まですべてを書こうとする | 重要な点に絞る |
| コツ3: 表現 | 長い解説文で説明する | 簡潔な箇条書きにする |
見出しに迷ったら、次の5セクションを叩き台にしてください。
| セクション | 書く内容の例 |
|---|---|
| 概要 | プロジェクトの目的、主要機能 |
| 技術スタック | 使っている言語、フレームワーク、主要ライブラリ |
| ディレクトリ構造 | 主要フォルダの役割 |
| コーディング規約 | 命名規則、フォーマットのルール |
| 開発ワークフロー | コミットメッセージの書き方、テストの方針 |
書いているうちに200行を超えて肥大化してきたら、.claude/rules/というフォルダに分割できます。1ファイル1トピックで置いておくと、Claude Codeが自動的にすべて見つけて読み込みます。
your-project/
├── CLAUDE.md # 全体の要点だけを書く(200行未満を目安)
└── .claude/
└── rules/
├── code-style.md # コードスタイルのルール
└── testing.md # テストの規約
④ 応用編:ファイルを読み込む・置き場所を使い分ける
@で他のファイルを読み込む
CLAUDE.mdにすべてを書き写さなくても、@ファイルパスと書くだけで、別のファイルの中身をその場に読み込ませられます。すでにあるREADMEやAPI仕様書をそのまま活用できて便利です。
## API仕様
@docs/API_SPECIFICATION.md
## コーディングスタイル
@docs/CODING_STYLE.md
読み込んだ先のファイルで、さらに別のファイルを@参照することもできますが、この「入れ子」は最大4段階までという上限があります。また、相対パスの基準は自分がいるフォルダではなく「@を書いたファイル自身の場所」になる点、コードブロック(バッククォートで囲んだ部分)の中に書いた@は読み込まれない点も、覚えておくとつまずきにくくなります。
置き場所で「誰と共有されるか」が変わる
CLAUDE.mdは置く場所によって、適用される範囲が変わります。全体像は次の5つです。
| 種類 | 場所 | 共有範囲 |
|---|---|---|
| 組織ポリシー(Managed policy) | IT部門などが配布する専用フォルダ | 組織全体(個人では変更できない) |
| ユーザー設定 | ~/.claude/CLAUDE.md |
自分だけ・全プロジェクト共通 |
| プロジェクト設定 | ./CLAUDE.md |
プロジェクト・チーム全員(Git管理下) |
| プロジェクトのルール | ./.claude/rules/*.md |
プロジェクト・チーム全員(③で紹介した分割用) |
| ローカル設定 | ./CLAUDE.local.md |
自分だけ・このプロジェクト限定(Git管理対象外) |
複数の場所に書かれていても、Claude Codeは1つだけを選ぶのではなく、すべてをまとめて読み込みます。読み込まれる順序を図にすると次のようになります。
図の通り「組織 → 自分(ユーザー設定)→ プロジェクト → 自分(ローカル設定)」の順で読み込まれます。
表の「プロジェクトのルール」は./CLAUDE.mdと別の階層ではなく同じ優先度です。
注意:
これは「後のものが前のものを上書きする」設定ではないという点です。公式ドキュメントは「すべてが連結されるだけで、互いを上書きしない」と明記したうえで、内容が矛盾する場合はどちらに従うか保証されず「Claudeが任意にどちらかを選んでしまうことがある」とも述べています。複数の置き場所を使うときほど、内容が矛盾しないよう見直しましょう。
おまけ:Claude Code自身に公式ドキュメントを確認させる
「この記事に書いてあることが最新か不安」というときは、公式ドキュメントを検索できるMCP(Claude Codeが外部のツールやデータにつなぐための仕組み)サーバーを追加しておくと、Claude Code自身に一次情報を確認させられます。
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
追加後は、CLAUDE.mdの仕様について「公式ドキュメントで確認して」と頼めば、この記事のような二次情報を経由せずに済みます。
まとめ:まず書いてみる最小のCLAUDE.md
CLAUDE.mdは、難しく考えずに「新しく入ったメンバーに口頭で説明していること」を書き出すところから始めれば十分です。まずは次の内容をプロジェクト直下のCLAUDE.mdというファイル名(大文字)で保存してみてください。
# 概要
このプロジェクトは〜のためのアプリです。
# 技術スタック
- 言語: TypeScript
- テスト: `npm test`
# コーディング規約
- インデントは2スペース
- any型の使用は避ける