CLAUDE.mdの書き方
Claude Codeをプロジェクトに最適化する方法
CLAUDE.md はClaude Code がプロジェクトを理解するための設定ファイルです。適切に記述することで、コーディング規約の遵守・正確なコマンド実行・プロジェクト構造の把握が飛躍的に向上します。この記事では実践的な書き方を解説します。
この記事の対象者
- Claude Code を日常的に使っている開発者
- チームでClaude Code の出力品質を統一したい方
- CLAUDE.md をまだ書いたことがない方
1. CLAUDE.mdとは
CLAUDE.md は、プロジェクトのルートディレクトリまたは .claude/ ディレクトリに配置するMarkdownファイルです。Claude Code はセッション開始時にこのファイルを読み込み、プロジェクト固有のコンテキストとして利用します。
配置場所の優先順位
CLAUDE.md(ルート直下)が最優先で読み込まれ、次に .claude/CLAUDE.md が読み込まれます。チーム共有用はルートに、個人設定は ~/.claude/CLAUDE.md に配置するのがおすすめです。
2. 基本構成
効果的なCLAUDE.md は以下のセクションで構成します。
CLAUDE.md(テンプレート)
# プロジェクト名
## 概要
このプロジェクトは〇〇のためのWebアプリケーションです。
## 技術スタック
- バックエンド: Django 5.1 / Python 3.13
- フロントエンド: React 18 / TypeScript
- DB: PostgreSQL 16
## コマンド
- 開発サーバー: `python manage.py runserver`
- テスト: `pytest tests/`
- マイグレーション: `python manage.py migrate`
## コーディング規約
- 変数名・関数名はスネークケース
- docstringはGoogle Style
- importはisortで整理
## プロジェクト構造
簡易的なディレクトリツリーを記載3. 技術スタック・規約の記述
技術スタックを明記することで、Claude Code が適切なライブラリやAPIを使ったコードを生成します。
CLAUDE.md(技術スタック例)
## 技術スタック
- Python 3.13 / Django 5.1
- django-rest-framework でAPI構築
- フロントは Tailwind CSS + Alpine.js
- テストは pytest + factory_boy
- フォーマッタ: ruff format
- リンター: ruff check
## コーディング規約
- Viewはクラスベースビューを使用
- モデルのフィールドにはverbose_nameを必ず設定
- テンプレートのインデントはスペース2つ規約を書いておけば、Claude Code が生成するコードが自動的に規約に準拠します。レビューの手間が大幅に削減されます。
4. よく使うコマンドの登録
CLAUDE.md(コマンド例)
## コマンド
- サーバー起動: `docker compose up -d`
- Django shell: `docker compose exec web python manage.py shell`
- 単一テスト: `pytest tests/test_views.py::TestArticleView -v`
- マイグレーション作成: `python manage.py makemigrations app_name`
- 静的ファイル収集: `python manage.py collectstatic --noinput`機密情報を書かない
CLAUDE.md にAPIキーやパスワードを記載しないでください。Gitで管理されるファイルなので、秘密情報は環境変数や.envで管理しましょう。
5. フレームワーク別の実例
Djangoプロジェクト
CLAUDE.md(Django)
## 絶対に守るルール
- モデル変更時は必ずmakemigrationsを実行
- テンプレートはapp内のtemplates/app_name/に配置
- URLはapp/urls.pyに定義し、include()で読み込む
## プロジェクト構造
config/ 設定ディレクトリ
blog/ ブログアプリ
models.py Article, Classification モデル
views/ ビュー(機能別に分割)
templates/ テンプレート
static/ 静的ファイルReactプロジェクト
CLAUDE.md(React)
## コーディング規約
- コンポーネントは関数コンポーネント + hooks
- 状態管理は Zustand を使用
- スタイルは Tailwind CSS のユーティリティクラス
- APIクライアントは src/api/ に集約6. 効果を最大化するコツ
CLAUDE.md は育てるもの
最初から完璧を目指す必要はありません。Claude Code を使う中で「これは毎回指示している」と気づいたことを随時追記していきましょう。
- 具体的に書く: 「きれいなコードを書いて」ではなく「ruff format に準拠」と書く
- 禁止事項も書く: 「console.log をコミットしない」「any 型を使わない」など
- 短く保つ: 長すぎるとコンテキストを圧迫する。核心だけを簡潔に
- サブディレクトリにも配置: 大規模プロジェクトでは各モジュールごとにCLAUDE.mdを置ける
まとめ
- CLAUDE.md はプロジェクトルートまたは .claude/ に配置する
- 技術スタック・コーディング規約・コマンドを明記する
- フレームワークごとの固有ルールを記載すると効果が高い
- 機密情報は書かず、具体的・簡潔に記述する
- 使いながら育てていくのがベストプラクティス