アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

CLAUDE.md の書き方完全ガイド:Claude Code にプロジェクトコンテキストを正しく伝える

Featured image of the post

Claude Code を使い始めてすぐ、「毎回同じ前提を説明するのが面倒!」と感じたことはないでしょうか。その課題を解決するのが CLAUDE.md です。

CLAUDE.md は、Claude Code がセッション開始時に自動で読み込む「プロジェクトの記憶」です。一度正しく書いておけば、毎回のブリーフィング作業が不要になります。


[目次を開く]

CLAUDE.md とは?

仕組み

CLAUDE.md は、Claude Code が起動時に自動的に読み込むテキストファイルです。人間で言えば「新しいインターンへのブリーフィング資料」のようなものです。

Claude Code はセッションをまたいで記憶を持ちません。CLAUDE.md があれば、毎回のセッション開始時にプロジェクトの前提やルールが自動で引き継がれます。

読み込まれるタイミング

Claude Code は以下のタイミングで CLAUDE.md を読み込みます。

  • セッション開始時(自動)
  • /init コマンド実行時
  • テキスト内で @CLAUDE.md と呼び出した時

配置場所と階層構造

CLAUDE.md は複数の場所に置けます。どこに置くかで「有効範囲」が変わります。

配置場所 有効範囲 用途
~/.claude/CLAUDE.md 全プロジェクト共通 個人のコーディングスタイル・ツール設定
./ CLAUDE.md(リポジトリルート) プロジェクト全体 チーム共有のプロジェクトルール
./src/CLAUDE.md (サブディレクトリ) そのディレクトリ以下 サブシステム固有のルール

実際の開発では、リポジトリルートの CLAUDE.md とグローバル設定の両方を併用するのが最も実践的です。

何を書くべきか

書くべき内容

1. プロジェクトの基本情報

Claude が最初に知るべきことを簡潔に記載します。

## プロジェクト概要

社内向け謭定管理システム。Node.js / TypeScript + React で構築されています。

## 技術スタック

- Frontend: React 18 + TypeScript
- Backend: Node.js + Express
- DB: PostgreSQL
- デプロイ: Docker + AWS ECS

2. ビルド・開発コマンド

よく使うコマンドをまとめておくと、Claude が正しいコマンドを選んでくれます。

## 開発コマンド

| 目的 | コマンド |
|---|---|
| 開発サーバ起動 | `npm run dev` |
| ビルド | `npm run build` |
| テスト | `npm run test` |
| Lint | `npm run lint` |
| 型チェック | `npm run type-check` |

3. コーディング規約

プロジェクト固有の決まりごとを記載します。

## コーディング規約

- コンポーネント: PascalCase、関数: camelCase
- `any` 型の使用禁止(`unknown` を使う)
- エラーハンドリングは Result 型で実装する
- テストは Vitest を使用

4. ディレクトリ構造

Claude がファイルを探す際のツールになります。

## ディレクトリ構造

src/

components/ # React コンポーネント

hooks/ # カスタム Hooks

api/ # API クライアント

types/ # 型定義

utils/ # ユーティリティ

5. プロジェクト固有の注意事項

Claude が誤った假定をするのを防ぐためのコンテキストです。

## 注意事項

- `src/legacy/` 配下は旧システムのコード。新機能には一切手を加えないこと
- `.env.production` は絶対に読み込まないこと
- `db/migrations/` のファイルは改変禁止

書かなくて良い内容

CLAUDE.md に全てを詰め込もうとすることは逆効果です。以下のような内容は不要です。

  • すでに Git で管理されている情報README.md に記載されていることなど)
  • 全てのエラーログや決定の経緯CLAUDE.md は日記ではありません)
  • 超詳細な仕様書(必要なときに参照したいドキュメントは別ファイルで管理)
  • API キーやシークレット情報CLAUDE.md は Git にコミットするため)

実践テンプレート

# プロジェクト名

## 概要

[プロジェクトの 1 文説明]

## 技術スタック

- Frontend: 
- Backend: 
- DB: 
- インフラ: 

## 開発コマンド

| 目的 | コマンド |
|---|---|
| 起動 | `` |
| ビルド | `` |
| テスト | `` |
| Lint | `` |

## ディレクトリ構造

[主要ディレクトリの説明]


## コーディング規約

- [規約 1]
- [規約 2]

## 注意事項

- [詰まりがちなこと・手を加えてはいけないファイル・領域など]

CLAUDE.md の進化させ方

最初は最小限にする

CLAUDE.md は一度作ったら終わりではありません。最初はビルドコマンドとディレクトリ構造だけ書いておき、Claude が常に誤った仮定をするときに内容を追加するスタイルがおすすめです。

/init で自動生成もできる

新規プロジェクトでは /init コマンドを実行すると、Claude がリポジトリを解析して CLAUDE.md の雛型を自動生成してくれます。それをベースに手で追記・修正するのが効率的です。

/init

セッション中に Claude に追記を依頼する

作業中に「これ CLAUDE.md に保存して」と頃むだけで、Claude が適切な内容を CLAUDE.md に書き込んでくれます。決定した設計方针や導入したライブラリなどをその場で記録する習慣をつけましょう。

Git 管理の考え方

CLAUDE.md を Git にコミットするか否かは用途次第です。

ケース Git 管理 理由
リポジトリルートの CLAUDE.md コミットする チーム全制で共有するルールだから
~/.claude/CLAUDE.md コミット不要 個人の設定だから
CLAUDE.local.md .gitignore に追加 個人用カスタマイズ
⚠️ 注意: CLAUDE.md にシークレット情報を含めてはいけません。Git にコミットした場合、リポジトリにアクセスできる全員に公開されます。

チーム開発での CLAUDE.md 活用

オンボーディングへの活用

CLAUDE.md が充実していれば、新メンバーがジョインしたときの初期セットアップ時間を短縮できます。「プロジェクトの CLAUDE.md を読んで初付きの PR を出して」と頃むだけで、Claude が適切なコンテキストで一元も辺りタスクを運んでくれます。

CI/CD との併用

GitHub Actions 上で Claude Code を実行する場合、CLAUDE.md があればファイル構造やビルドコマンドが正しく伝わり、誤った假定によるエラーを減らせます。

まとめ

CLAUDE.md は、Claude Code との協働質を大きく左右するしくみです。小さいプロジェクトでも、ビルドコマンドとディレクトリ構造だけでも書いておくことで、意図しない操作や勑違いを大幅に減らせます。

チーム開発ではリポジトリルートの CLAUDE.md をチーム共有のブリーフィング資料として活用することをおすすめします。

関連記事はこちら:

  • Claude Code のデータ取り扱いとセキュリティ設定を理解する
  • Claude Code Hooks 完全ガイド

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

プログラミングを学ぶならテックアカデミー

テックアカデミー
無料相談はこちら