Ad Space (horizontal)
CLAUDE.mdの書き方完全ガイド:プロジェクト設定のベストプラクティス
CLAUDE.mdの書き方を徹底解説。プロジェクトの技術スタック・規約・構造を正しく伝え、Claude Codeの出力品質を最大化するベストプラクティス。
CLAUDE.md とは
CLAUDE.mdは、Claude Codeがプロジェクトを理解するためのコンテキストファイルです。プロジェクトのルートに配置すると、Claude Codeがセッション開始時に自動的に読み込みます。適切に書かれたCLAUDE.mdは、Claude Codeの応答品質を劇的に向上させます。
CLAUDE.md の配置場所と優先順位
CLAUDE.mdは複数の場所に配置でき、すべて読み込まれます。
~/.claude/CLAUDE.md # グローバル設定(全プロジェクト共通)
./CLAUDE.md # プロジェクトルート(チーム共有)
./CLAUDE.local.md # ローカル設定(.gitignore推奨)
./src/CLAUDE.md # サブディレクトリ単位の設定
- グローバル:自分の好みのコーディングスタイルなど
- プロジェクトルート:チーム共有のルールや技術スタック
- ローカル:個人的な設定(Gitにコミットしない)
- サブディレクトリ:特定のモジュールに関する追加情報
基本テンプレート
以下は実践的なCLAUDE.mdのテンプレートです。
# プロジェクト概要
ECサイトのバックエンドAPI。注文管理・在庫管理・ユーザー認証を提供。
## 技術スタック
- 言語: TypeScript 5.x
- ランタイム: Node.js 22
- フレームワーク: Fastify
- DB: PostgreSQL 16 + Prisma ORM
- テスト: Vitest
- CI: GitHub Actions
## ディレクトリ構造
src/
routes/ # APIエンドポイント定義
services/ # ビジネスロジック
repositories/ # データアクセス層
middleware/ # 認証・ログ・エラーハンドリング
utils/ # ユーティリティ関数
types/ # 型定義
## コーディング規約
- 関数はアロー関数で定義する
- エラーハンドリングは必ず try-catch で行い、カスタムエラークラスを使用
- 命名規則: camelCase(変数・関数)、PascalCase(型・クラス)
- ファイル名: kebab-case
- インポートは相対パスではなく、パスエイリアス `@/` を使用
## よく使うコマンド
- テスト実行: `npm test`
- 型チェック: `npx tsc --noEmit`
- リント: `npm run lint`
- DB マイグレーション: `npx prisma migrate dev`
- 開発サーバー: `npm run dev`
## 重要なルール
- prisma/schema.prisma を変更したら必ずマイグレーションを作成すること
- APIエンドポイントには必ず Zod バリデーションスキーマを定義すること
- 新しいルートを追加したら routes/index.ts に登録すること
効果的な書き方のポイント
1. 簡潔に書く
CLAUDE.mdはコンテキストウィンドウを消費します。冗長な説明は避け、要点を箇条書きにしましょう。
# 悪い例
このプロジェクトはTypeScriptを使用しています。TypeScriptは
Microsoftが開発した言語で、JavaScriptに型を追加したもので...
# 良い例
- 言語: TypeScript 5.x(strict mode)
2. 「やってほしくないこと」を明記する
Claude Codeに避けてほしいパターンを書いておくと効果的です。
## 禁止事項
- any 型の使用禁止
- default export 禁止(named export のみ)
- console.log でのデバッグ禁止(logger を使用)
- 既存テストの削除・スキップ禁止
3. ワークフローを定義する
タスクの進め方をガイドします。
## 新機能追加の手順
1. `src/types/` に型定義を作成
2. `src/repositories/` にデータアクセス層を実装
3. `src/services/` にビジネスロジックを実装
4. `src/routes/` にエンドポイントを定義
5. 各層のユニットテストを作成
6. `npm test` で全テスト通過を確認
4. プロジェクト固有の知識を記述する
ドキュメント化されていないけど重要な情報を書きます。
## プロジェクト固有の注意点
- `user_id` は UUID v7 を使用(時系列ソート可能にするため)
- 価格計算は必ず `Decimal.js` を使用(浮動小数点誤差防止)
- 環境変数は `src/config.ts` で一元管理、直接 process.env を参照しない
チーム開発での運用
.gitignore の設定
個人設定はコミットしないようにしましょう。
# .gitignore
CLAUDE.local.md
レビュー対象に含める
CLAUDE.mdはプロジェクトの重要なドキュメントです。PRレビューの対象に含め、チームで内容を最新に保ちましょう。
CLAUDE.md の更新タイミング
- 新しいライブラリを導入したとき
- コーディング規約を変更したとき
- ディレクトリ構造を変更したとき
- 頻繁にClaude Codeが間違えるパターンを発見したとき
まとめ
CLAUDE.mdはClaude Codeを「自分のプロジェクトの専門家」にするための設定ファイルです。最初は /init で雛形を生成し、使いながら育てていくのが効果的です。チームで共有すれば、メンバー全員がClaude Codeの恩恵を最大限に受けられます。
Ad Space (rectangle)
#Claude Code
#CLAUDE.md
#設定
#ベストプラクティス
#プロジェクト管理