「また同じ説明を繰り返すのか...」
Claude Codeを使うたびに、そんなため息をついていませんか?
「うちのプロジェクトはTypeScriptで、ESLintはこの設定で、テストはVitestを使っていて...」
毎回こんな説明をするのは、正直しんどいですよね。
実は、この悩みを一発で解決してくれるファイルがあります。
それがCLAUDE.mdです。
この記事では、CLAUDE.mdの基本から実践的な書き方まで、わかりやすく解説していきます。
そもそもCLAUDE.mdって何?
CLAUDE.mdは、Claude Codeが起動時に自動で読み込む設定ファイルです。
簡単に言うと「Claudeに覚えておいてほしいことを書いたメモ」のようなものですね。
プロジェクトのルールや使っている技術、よく使うコマンドなどを書いておけば、毎回同じ説明をする必要がなくなります。
CLAUDE.mdでできること
- プロジェクトの全体像をClaudeに伝える「仕様書」
- コーディング規約をまとめた「ルールブック」
- よく使うコマンドを記載した「チートシート」
つまり、新しいチームメンバーに渡すオンボーディング資料のようなものを、AIに渡すイメージです。
CLAUDE.mdはどこに置けばいい?
CLAUDE.mdは複数の場所に配置でき、それぞれ役割が異なります。
1. プロジェクトルート(最もよく使う)
your-project/
├── CLAUDE.md ← ここ
├── src/
└── package.json
チームで共有したい場合は、ここに置いてGitにコミットするのがおすすめです。
2. ホームディレクトリ(個人設定)
~/.claude/CLAUDE.md
すべてのプロジェクトに適用される、あなた専用の設定を書く場所です。
「日本語で回答してほしい」「コメントは丁寧に書いてほしい」といった個人的な好みを設定できます。
3. サブディレクトリ(機能別設定)
your-project/
├── CLAUDE.md
├── frontend/
│ └── CLAUDE.md ← フロントエンド専用
└── backend/
└── CLAUDE.md ← バックエンド専用
モノレポなど、大きなプロジェクトでは機能ごとに分けると便利です。
CLAUDE.mdの基本的な書き方
「じゃあ、具体的に何を書けばいいの?」
という声が聞こえてきそうですね。
ここからは、実際に使えるテンプレートを紹介します。
最小限のテンプレート
まずは、これだけ押さえておけばOKという基本形です。
# プロジェクト概要
ECサイト向けの商品管理システム
# 技術スタック
- TypeScript 5.3
- Next.js 14
- Tailwind CSS 3.4
- PostgreSQL 15
# よく使うコマンド
- `npm run dev` - 開発サーバー起動
- `npm run build` - ビルド
- `npm run test` - テスト実行
- `npm run lint` - リント実行
# コーディング規約
- 2スペースインデント
- コンポーネントは関数コンポーネントで書く
- 変数名はキャメルケース
これだけでも、Claudeの理解度がグッと上がります。
もう少し詳しく書きたい場合
プロジェクトが大きくなってきたら、こんな感じで詳細を追加していきましょう。
# プロジェクト概要
- **What**: ECサイト向け商品管理システム
- **Why**: 在庫管理の効率化と人的ミス削減
- **Who**: 社内の在庫管理チーム
# 技術スタック
- Framework: Next.js 14 (App Router)
- Language: TypeScript 5.3
- Styling: Tailwind CSS 3.4
- Database: PostgreSQL 15
- ORM: Prisma 5.x
- Testing: Vitest + Testing Library
# ディレクトリ構造
- `src/app/` - Next.js App Routerのページ
- `src/components/` - 再利用可能なコンポーネント
- `src/lib/` - ユーティリティ関数
- `src/types/` - TypeScript型定義
- `prisma/` - データベーススキーマ
# よく使うコマンド
- `npm run dev` - 開発サーバー起動 (port 3000)
- `npm run build` - 本番ビルド
- `npm run test` - Vitestでテスト実行
- `npm run lint` - ESLint実行
- `npx prisma studio` - DBのGUI確認
# コーディング規約
- 2スペースインデント
- セミコロンなし
- シングルクォート使用
- コンポーネントは関数コンポーネント + アロー関数
- Props型は`interface`で定義
# 重要な注意事項
**IMPORTANT**: PRを作成する前に必ず`npm run lint`を実行すること
**NEVER**: 環境変数を直接コミットしない(.env.exampleを参照)
効果を最大化する書き方のコツ
CLAUDE.mdを書くときに意識したいポイントがあります。
1. 簡潔に、具体的に書く
❌ 悪い例
コードはきれいに書いてください
⭕ 良い例
- 2スペースインデント
- 変数名は意味のある英語で
- 関数は20行以内を目安に
抽象的な指示より、具体的なルールのほうがClaudeは理解しやすいです。
2. 強調キーワードを活用する
Claudeは特定のキーワードに強く反応します。
**IMPORTANT**: テスト必須
**NEVER**: 本番DBへの直接アクセス禁止
**YOU MUST**: 型定義を必ず行う
重要なルールには、こうした強調を使いましょう。
3. 肥大化を避ける
CLAUDE.mdの内容はプロンプトの一部として毎回読み込まれます。
つまり、長すぎるとトークンを消費してしまうんですね。
本当に必要な情報だけを厳選して、シンプルに保つのがコツです。
4. 定期的に見直す
プロジェクトは進化します。
月に一度くらいは「この情報、まだ必要かな?」と見直してみてください。
便利な機能:#キーで簡単追加
CLAUDE.mdを手動で編集するのが面倒な場合、#キーを使った方法が便利です。
Claude Codeのセッション中に#を押すと、その場でCLAUDE.mdに情報を追加できます。
# このプロジェクトではテストにVitestを使っている
こう入力するだけで、自動的にCLAUDE.mdに記録されます。
作業しながら気づいたことを、すぐにメモできるので重宝しますよ。
/initコマンドで自動生成する方法
「何から書けばいいかわからない...」
そんなときは、/initコマンドを使ってみてください。
Claude Codeを起動して/initと入力するだけで、Claudeがプロジェクトを分析して、CLAUDE.mdを自動生成してくれます。
$ claude
> /init
これで基本的な構成が出来上がるので、あとは必要に応じてカスタマイズすればOKです。
個人設定とプロジェクト設定を分ける
チームで開発している場合、「チーム共通のルール」と「個人の好み」を分けたいことがありますよね。
そんなときは、ファイルのインポート機能を使います。
# プロジェクト共通設定
## 技術スタック
- TypeScript
- Next.js
## 個人設定
@~/.claude/my-preferences.md
@マークでファイルをインポートできるので、個人的な設定は別ファイルに切り出しておけます。
これなら、プロジェクトのCLAUDE.mdをGitにコミットしても、個人の好みは含まれません。
よくある失敗パターンと対策
最後に、CLAUDE.mdでありがちな失敗と、その対策を紹介します。
失敗1:情報を詰め込みすぎる
「あれもこれも書いておこう」と思って、READMEのように長くなってしまうケース。
対策: 本当に毎回必要な情報だけに絞る。詳細なドキュメントは別ファイルにして、必要なときだけ@docs/xxx.mdで参照。
失敗2:更新を忘れる
プロジェクトが進んで、CLAUDE.mdの内容が古くなってしまうケース。
対策: レビューで指摘されたら「@CLAUDE.mdに追記して」とClaudeに頼む。これで学習内容が自動的に蓄積されます。
失敗3:抽象的すぎる
「良いコードを書く」「パフォーマンスを意識する」など、具体性のない指示。
対策: 「〇〇の場合は△△する」という形で、具体的なルールとして書く。
まとめ
CLAUDE.mdを活用すれば、毎回の説明が不要になり、開発効率が大幅にアップします。
ポイントをおさらいしましょう。
- プロジェクトルートに配置して、チームで共有
- 技術スタック・コマンド・規約を簡潔に記載
- 強調キーワードで重要なルールを目立たせる
- #キーや/initを活用して、効率的に更新
- 定期的に見直して、シンプルに保つ
「AIに何度も同じ説明をするのは面倒...」
そう感じていた方は、ぜひCLAUDE.mdを試してみてください。
まずは最小限のテンプレートから始めて、徐々に育てていくのがおすすめです。
きっと、Claude Codeがもっと頼れる相棒になりますよ。
この記事が参考になったら、ぜひ実際に試してみてくださいね。
AI音楽プロジェクト「秀歌 - Shūka」
当ブログでは、生成AI技術(Suno等)を活用した音楽プロジェクトを運営しています。
AIと人間が共創する「新しい音楽体験」を、ぜひ聴いてみてください。