CLAUDE.md書き方ガイド|最初の1枚を書くテンプレート付き

CLAUDE.mdにプロジェクトの説明を書いていた時期があります。

技術スタック、ディレクトリ構成、使っているライブラリ。

丁寧に書いたのに、Claude Codeの出力は何も変わりませんでした。

この記事では、CLAUDE.mdの最初の1枚をテンプレート付きで書けるようにします。

READMEとの違い、最小構成の始め方、やりがちな失敗パターンまで、自分が数ヶ月運用してわかったことをまとめています。

Claude Codeの全体像を先に把握したい方は、Claude Code完全ガイドからどうぞ。

CLAUDE.mdとは何か — READMEとの決定的な違い

CLAUDE.mdとは、Claude Codeがセッション開始時に自動で読み込む指示ファイルです。

プロジェクトの「説明書」ではなく、AIに対する「行動ルール」を書く場所として機能します。

ここが最初にわかりにくいところでした。

READMEは人間向けです。

「このプロジェクトは何か」「どうセットアップするか」を説明するもの。

一方、CLAUDE.mdはAI向けのoperating manual。

「このプロジェクトで何をしてはいけないか」「どう振る舞うか」を指定するものです。

README.mdCLAUDE.md
読む対象人間(開発者)AI(Claude Code)
内容プロジェクトの説明AIの行動ルール
目的理解してもらう従ってもらう
「React + TypeScriptで構築」「テストは必ずvitest。jestは使わない」

CLAUDE.mdには配置できる場所が4段階あります。

  1. Managed policy(組織共通) — OS指定のパスに配置
    (macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`、Linux: `/etc/claude-code/CLAUDE.md`)
  2. Project(チーム共有) — プロジェクトルートの `./CLAUDE.md`
  3. User(個人全体) — `~/.claude/CLAUDE.md`
  4. Local(個人×プロジェクト) — `./CLAUDE.local.md`

より具体的なスコープの指定が優先されます。

最初に書くなら、プロジェクトルートの`CLAUDE.md`一択です。

ファイル名は大文字小文字を区別します。

`claude.md`や`Claude.md`ではダメで、必ず`CLAUDE.md`にしてください。

最初のCLAUDE.mdはこれだけ書けばいい【テンプレート】

自分が最初から書き直すなら、こう書きます。

markdown
# CLAUDE.md

## プロジェクト概要

- フロントエンド: Next.js 15 + TypeScript

- スタイル: Tailwind CSS

- テスト: vitest(jestは使わない)

## コマンド

- `npm run dev` — 開発サーバー起動

- `npm run test` — テスト実行

- `npm run build` — ビルド

## コードのルール

- 変数名・関数名はキャメルケース

- コンポーネントファイルは PascalCase.tsx

- console.logはPR前に必ず削除

- 日本語でコメントを書く

## やらないこと

- 既存のテストを削除しない

- パッケージの追加は提案のみ。自動でインストールしない

- .envファイルを変更しない

これで30行程度。公式ドキュメントでは200行以下が推奨されています。

コミュニティでは50〜100行が実用的とされていますが、最初は短いほうがいいです。

各セクションのポイントを補足します。

「プロジェクト概要」 — 技術スタックだけ。

READMEみたいにプロジェクトの目的や背景は不要です。Claudeがコードを読めばわかることは書きません。

「コマンド」 — ビルド、テスト、起動。Claudeが推測できないコマンドだけ書きます。

`npm install`は書かなくていいですが、`npm run test:e2e –filter=auth`みたいなプロジェクト固有のものは書く価値があります。

「コードのルール」 — Claudeが推測しづらい規約だけ。

「関数は短く書く」みたいな一般論は不要です。「このプロジェクトではこうする」という具体的なルールだけ書きます。

「やらないこと」 — 正直、ここが一番効きます。

Claudeは親切なので、テストを「整理」してくれたり、依存パッケージを勝手に追加したりする。

やらないことを書いておくと、余計な動きが目に見えて減ります。

判断基準はシンプルで、「この行を消したらClaudeが間違えるか?」。

答えがNoなら、その行は要りません。

書いてはいけないCLAUDE.md — 3つの失敗パターン

自分が通ってきた道と、よく見かけるパターンを3つ挙げます。

1. プロジェクト説明型(READMEのコピペ)

markdown
# プロジェクト概要

このプロジェクトは、ユーザーのタスク管理を効率化するための

Webアプリケーションです。React + TypeScript + Supabaseで構築されており、

リアルタイム同期機能を備えています...

これ、自分が最初に書いたやつとほぼ同じです。

Claudeに「あなたは何のプロジェクトにいるか」を説明している。

でもClaude Codeはコードベースを直接読めるので、この説明は冗長です。

コンテキストを消費するだけで、出力は何も変わりません。

2. 網羅型(全部書こうとする)

markdown
## API設計ルール

- RESTful原則に従う

- HTTPステータスコードは適切に使い分ける

- エラーレスポンスは統一フォーマットにする

...(50行続く)

## テスト方針

- ユニットテストのカバレッジは80%以上

- 結合テストは主要フローをカバー

...(30行続く)

書けば書くほどClaudeは従ってくれる——と思っていた時期がありました。

実際は逆です。

公式も「全部IMPORTANTにすると、何もIMPORTANTでなくなる」と言っています。

長くなるほど、本当に守ってほしいルールが埋もれます。

Claude Codeで失敗した5つのパターンと教訓でも書きましたが、CLAUDE.mdは「引き算」の設計です。

3. /init丸投げ型(自動生成のまま放置)

Claude Codeには`/init`コマンドがあって、コードベースを分析してCLAUDE.mdを自動生成してくれます。

便利ですが、そのまま使い続けるのはおすすめしません。

自動生成されたCLAUDE.mdは冗長になりがちです。

プロジェクトの構成を網羅的に記述してくれるぶん、「行動ルール」ではなく「プロジェクト説明」に寄ってしまう。

`/init`をたたき台にして、削ぎ落としていくのが現実的です。

行動ルール型に変えて何が変わったか

「プロジェクト説明型」から「行動ルール型」に書き換えたとき、目に見えて変わったことが2つあります。

毎回の説明が消えた。 以前は「テストはvitestで」「console.logは残さないで」と毎セッション言っていました。

CLAUDE.mdに書いてからは、言わなくてもそう動きます。

当たり前のことなんですが、これが地味に効く。

`/compact`しても消えない。

CLAUDE.mdはコンテキストが圧縮されてもディスクから再読み込みされます。

会話の中で伝えたルールは`/compact`で消えますが、CLAUDE.mdに書いたルールは消えません。

2時間を超えるような長いセッションで、この差は大きいです。

Claude Codeのcompact・clearの使い分けも参考にしてみてください。

正直な話、CLAUDE.mdを書いたからといってClaude Codeが魔法のように賢くなるわけではありません。

ただ、「毎回同じことを言わなくていい」というだけで、作業の体感はかなり変わります。

CLAUDE.mdを書いた後の次のステップ

CLAUDE.mdは書いて終わりではなく、使いながら育てていくものです。

ここから先の選択肢をいくつか紹介します。

育てる — CLAUDE.mdは最初の1枚がスタート地点です。

使っていく中で「またこの指示をした」と思ったら追記する。

`/insights`コマンドを使うと、過去のセッションから追記候補を提案してくれます。

詳しくはCLAUDE.mdは「育てる」もので書いています。

分割する — CLAUDE.mdが長くなってきたら、`.claude/rules/`ディレクトリでモジュール化できます。

`testing.md`や`api-design.md`のようにトピック別にファイルを分けると、コンテキストのノイズが減ります。

パス指定で特定のディレクトリでだけ読み込まれるルールも作れます。

肥大化の兆候と対策はCLAUDE.mdが肥大化する前に知りたかった3つのことにまとめています。

拡張する — CLAUDE.mdだけでは足りなくなったとき、サブエージェント、スキル、コマンドという選択肢があります。

CLAUDE.mdは「常に読み込まれるルール」、スキルは「必要なときだけ読み込まれる知識」。

この使い分けを知っておくと設計が楽になります。

CLAUDE.md・サブエージェント・スキル・コマンドの使い分けと、サブエージェントに何を任せて何を任せないかが参考になるはずです。

他のAIツールも使っている場合、AGENTS.mdという選択肢もあります。

AGENTS.mdはClaude Code、Cursor、GitHub Copilot、Gemini CLIなど複数のツールが読める共通フォーマットです。

ただしCLAUDE.md固有の機能(`@import`や`.claude/rules/`)は使えないので、Claude Code専用の設定はCLAUDE.mdに書くのが良いです。

MCPで外部ツールと連携する方向に進みたい方は、Claude MCPは結局何に使えるのかもどうぞ。

まとめ — CLAUDE.mdの最初の1枚を今すぐ書こう

  • CLAUDE.mdはREADMEではなく、AIの行動ルールを書く場所です
  • 最初は30行のテンプレートで十分。「やらないこと」が一番効きます
  • 書いたら育てる。`/insights`で追記候補を見つけて、少しずつ磨いていく

次にやること——この記事のテンプレートをコピーして、自分のプロジェクトにCLAUDE.mdを1枚置いてみてください。

Claude Codeの環境を整えるなら、Claude Code × Cursor使い分けガイドClaude Pro/Maxの選び方ガイドも参考になります。