Claude Code

CLAUDE.mdの書き方|Claude Codeをプロジェクトに最適化する方法

Claude Code CLAUDE.md 設定

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/ に配置する
  • 技術スタック・コーディング規約・コマンドを明記する
  • フレームワークごとの固有ルールを記載すると効果が高い
  • 機密情報は書かず、具体的・簡潔に記述する
  • 使いながら育てていくのがベストプラクティス