CLAUDE.md とは何か — AI に渡す「うちのルール」と、その分け方
Claude Code を使いはじめると、必ず出会うのが CLAUDE.md(クロード・エムディー)というファイルです。 名前だけ見ると身構えますが、中身はただのメモ書きです。 ひとことで言えば、「うちではこうしてね」と AI に毎回伝えておくルール集です。
「AI の法律」と呼ばれることもあります。 ただ、正確には法律ほど強くはありません。 Claude はこれを読んで守ろうとしてくれますが、絶対に従うとは限らない。いわば「家のルール」に近い立ち位置です。 まずは、その役割から見ていきましょう。
(Claude Code そのものについては、前の記事 Claude Code の使い方 をどうぞ。作らせる前に「何を・どう作るか」を書く design.md とも、考え方の近い相棒です。)
CLAUDE.md とは — 毎回読まれる「申し送り」
Claude Code は、会話を始めるたびに記憶がまっさらな状態からスタートします。 昨日教えたことも、次の日には覚えていません。
そこで登場するのが CLAUDE.md です。 このファイルをプロジェクトの中に置いておくと、Claude は毎回のはじめに、まずこれを読んでから作業に入ります。 毎朝出社した新人さんに渡す「申し送りノート」だと思ってください。
書くのに向いているのは、こんな内容です。
- 使うコマンド(「テストは
npm testで動かす」など) - コードの書き方の約束(「インデントは半角スペース 2 つ」など)
- プロジェクトの構成(「画面のファイルは
src/pages/にある」など) - 「いつもこうして」というお決まりのルール
コツは、毎回わざわざ説明し直していることを書くことです。 「同じ間違いを二度された」「同じ注意を毎回打ち込んでいる」。そう感じたら、それは CLAUDE.md に書くべきサインです。
どこに置く? — 3 つの置き場所
CLAUDE.md は、置く場所によって「効く範囲」が変わります。 大きく 3 つ覚えておけば十分です。
| 置き場所 | 効く範囲 | 用途 |
|---|---|---|
~/.claude/CLAUDE.md | 自分の全プロジェクト | 個人の好み(口調や書き方の癖) |
./CLAUDE.md | そのプロジェクト(チーム共有) | プロジェクトの決まりごと |
./CLAUDE.local.md | そのプロジェクト(自分だけ) | 自分用のメモ。Git に含めない |
いちばんよく使うのは、まん中の ./CLAUDE.md です。
プロジェクトの入り口に置いておくと、Git を通じてチーム全員に共有されます。
個人的なメモは CLAUDE.local.md に分け、.gitignore に加えて共有しないようにします。
ゼロから書くのが不安なら、/init と打つのが近道です。
Claude がプロジェクトを調べて、CLAUDE.md のたたき台を自動で作ってくれます。あとは手直しするだけです。
参考までに、このブログのリポジトリにも CLAUDE.md を置いています。
たとえば「開発サーバーはバックグラウンドで起動する」といった、毎回言わなくて済む決まりを数行書いてあるだけです。
凝ったことは書いていません。「毎回説明していた一言」を書き足していく。それだけで、次の会話から呑み込みが変わります。
大事な性質 — 短いほど、よく効く
ここで一つ、覚えておくと得をする性質があります。 CLAUDE.md は毎回まるごと読み込まれるので、長くなるほど効きが悪くなります。
目安は 200 行以内。 あれもこれもと詰め込むと、大事なルールが埋もれ、かえって守られなくなります。 「新人に渡すノートが分厚すぎて、結局読まれない」のと同じです。
でも、プロジェクトが育つと、書きたいことは自然に増えていきます。 そこで効いてくるのが、次の「分け方」です。
分け方その1 — @ で別ファイルを読み込む
一つの CLAUDE.md にすべてを書くと、ごちゃつきます。
そこで、話題ごとに別ファイルへ切り出し、CLAUDE.md からは @ で呼び出します。
# 詳しいルールは別ファイルにまとめています
コードの書き方は @docs/coding-style.md
Git の進め方は @docs/git-workflow.md
こう書くと、指定したファイルの中身が読み込まれます。 本体はすっきり保ちつつ、中身は別ファイルで整理できるわけです。
- 相対パスでも、絶対パスでも書けます
- 読み込んだ先から、さらに別ファイルを呼ぶこともできます(深さは 4 段まで)
- パスをただの文字として書きたいときは
`@README`のようにバッククォートで囲みます
ひとつ注意点があります。
@ は「整理のための分割」であって、読み込む総量は減りません。
分けたファイルも結局は起動時に全部読み込まれるので、200 行の目安は「合計」で考えます。
分け方その2 — フォルダごとに置く
大きなプロジェクトでは、場所によってルールが違うことがあります。 そんなときは、フォルダごとに CLAUDE.md を置けます。
my-project/
├── CLAUDE.md # プロジェクト全体のルール
├── frontend/
│ └── CLAUDE.md # 画面まわりだけのルール
└── backend/
└── CLAUDE.md # サーバーまわりだけのルール
うれしいのは、フォルダの中の CLAUDE.md は、その場所で作業するときだけ読み込まれる点です。
画面を触っているときは frontend/CLAUDE.md が、サーバーを触っているときは backend/CLAUDE.md が効く。
必要なときだけ読まれるので、さっきの「総量」を無駄に増やさずに済みます。
分け方その3 — 対象を絞って読み込む(rules)
もう一歩進んだ分け方が、.claude/rules/ というフォルダに、話題ごとのファイルを置く方法です。
my-project/
└── .claude/
├── CLAUDE.md # いつものルール
└── rules/
├── testing.md # テストの約束
└── api-design.md # API の書き方
さらに、各ファイルの先頭に「どのファイルを触るときに効かせるか」を指定できます。
---
paths:
- "src/api/**/*.ts"
---
# API を書くときのルール
- すべての入り口で入力チェックをする
- エラーは決まった形式で返す
こう書いておくと、このルールは src/api/ の中を触るときだけ読み込まれます。
ふだんは眠っていて、関係するファイルを開いた瞬間に目を覚ます。
読み込む総量を本当に減らせるので、大きなプロジェクトほど効いてきます。
どれを使えばいい?
迷ったときの目安です。
- まずは一枚の
CLAUDE.mdから。ほとんどの場合、これで十分です。 - 話題が増えて長くなってきたら
@で整理。読みやすさが上がります。 - 場所ごとにルールが違うなら、フォルダごとに CLAUDE.md。
- さらに大きく、文脈も節約したいなら
.claude/rules/で対象を絞る。
大事なのは、いきなり凝った構成にしないことです。 一枚から始めて、育ってきたら分ける。 この順番が、いちばん失敗しません。
よくある疑問
Q. CLAUDE.md には何を書けばいいですか?
毎回説明し直していること、つまり使うコマンド、書き方の約束、構成、お決まりのルールです。不安なら /init でたたき台を作れます。
Q. どれくらいの長さがいいですか? 短いほどよく効きます。目安は 200 行以内。大きくなったら @・フォルダ・rules で分けましょう。
Q. 書けば必ず従ってくれますか? いいえ。「守ろうとするが、絶対ではない」家のルールに近いものです。短く要点を絞るほど守られやすくなります。
まとめ
CLAUDE.md は、Claude に毎回渡す「うちのルール」を書いておくファイルです。 法律のように厳密ではありませんが、書いておくほど、AI は的を射た動きをしてくれます。
- 毎回説明し直していることを書く
- 短く保つ(200 行が目安)
- 大きくなったら、
@・フォルダ・rulesで分ける
まずは、いつも口で伝えている一言を、CLAUDE.md に一行書き足すところから。 それだけで、次の会話から Claude の呑み込みが変わります。