Last updated on

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 行以内。 あれもこれもと詰め込むと、大事なルールが埋もれ、かえって守られなくなります。 「新人に渡すノートが分厚すぎて、結局読まれない」のと同じです。

でも、プロジェクトが育つと、書きたいことは自然に増えていきます。 そこで効いてくるのが、次の「分け方」です。

CLAUDE.mdが大きくなったときの3つの分け方。@で別ファイルを読み込む・フォルダごとに置く・対象を絞って読み込む。

分け方その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の分け方3つ。@で読み込む(起動時に全部読む)・フォルダごとに置く(必要なときだけ)・rulesで対象を絞る(文脈を節約)。

迷ったときの目安です。

  • まずは一枚の CLAUDE.md から。ほとんどの場合、これで十分です。
  • 話題が増えて長くなってきたら @ で整理。読みやすさが上がります。
  • 場所ごとにルールが違うなら、フォルダごとに CLAUDE.md
  • さらに大きく、文脈も節約したいなら .claude/rules/ で対象を絞る

大事なのは、いきなり凝った構成にしないことです。 一枚から始めて、育ってきたら分ける。 この順番が、いちばん失敗しません。

よくある疑問

Q. CLAUDE.md には何を書けばいいですか? 毎回説明し直していること、つまり使うコマンド、書き方の約束、構成、お決まりのルールです。不安なら /init でたたき台を作れます。

Q. どれくらいの長さがいいですか? 短いほどよく効きます。目安は 200 行以内。大きくなったら @・フォルダ・rules で分けましょう。

Q. 書けば必ず従ってくれますか? いいえ。「守ろうとするが、絶対ではない」家のルールに近いものです。短く要点を絞るほど守られやすくなります。

まとめ

CLAUDE.md は、Claude に毎回渡す「うちのルール」を書いておくファイルです。 法律のように厳密ではありませんが、書いておくほど、AI は的を射た動きをしてくれます。

  • 毎回説明し直していることを書く
  • 短く保つ(200 行が目安)
  • 大きくなったら、@・フォルダ・rules で分ける

まずは、いつも口で伝えている一言を、CLAUDE.md に一行書き足すところから。 それだけで、次の会話から Claude の呑み込みが変わります。