Claude Codeの行動を変える設定ファイルの書き方ノウハウ
CLAUDE.mdは、Claude Codeがセッション開始時に自動で読み込む指示書です。
プロジェクトのルール、技術スタック、禁止事項などを書いておくと、毎回同じ説明をする必要がなくなります。
/init で対話的にCLAUDE.mdを作成できます。
| 場所 | スコープ | Git共有 |
|---|---|---|
~/.claude/CLAUDE.md | 全プロジェクト共通(ユーザー設定) | しない |
./CLAUDE.md | そのプロジェクトのみ | する |
./CLAUDE.local.md | そのプロジェクトの個人設定 | しない(自動.gitignore) |
./.claude/rules/*.md | 条件付きルール(特定ファイル時のみ適用) | する |
./subdir/CLAUDE.md | サブディレクトリのファイル読み時のみ | する |
./CLAUDE.md に、個人の好みは CLAUDE.local.md に書くのが基本。
| 行数 | 精度 | 評価 |
|---|---|---|
| 〜40行 | 最高 | 最も効果的。核心だけを書いた状態 |
| 〜100行 | 高い | 推奨上限。十分に実用的 |
| 〜300行 | やや低下 | 限界ライン。重要な指示が埋もれ始める |
| 300行超 | 著しく低下 | 避けるべき。指示が無視される可能性大 |
| カテゴリ | 内容 | 例 |
|---|---|---|
| プロジェクト概要 | 何のプロジェクトか、技術スタック | 「React Native(Expo SDK 52)のコンテンツクリエイター向けアプリ」 |
| プロジェクト構造 | 主要ディレクトリの役割 | 「app/ = ルーティング、components/ = UI部品」 |
| 開発コマンド | ビルド・テスト・検証コマンド | 「npm run dev」「npm test」 |
| 禁止事項 | 絶対にやってはいけないこと | 「rm -rf禁止」「mainにforce push禁止」 |
| 重要な決定 | なぜその技術・設計を選んだか | 「認証はNextAuth.js(深層リンク対応のため)」 |
| 検証手順 | 変更後の確認方法 | 「変更後必ず: npm run typecheck && npm test」 |
| 書かないこと | 理由 | 代わりにやること |
|---|---|---|
| 詳細なコードスタイル | LLMは既存コードから学習する | リンター(Biome/ESLint)を使う |
| 当たり前のこと | 「エラーハンドリングをして」等は不要 | Claudeはすでに知っている |
| タスク固有の指示 | 特定APIの書き方等はCLAUDE.mdの役割外 | スコープ付きルールを使う |
| 一時的な修正ルール | 「〇〇のバグを回避するために〜」 | Hook または /code-review で対処 |
# プロジェクト設定 このプロジェクトはReactアプリです。以下の規約を厳守してください。 ## コードスタイル - インデントはスペース2つ - 最大行長は80文字 - 変数名はcamelCase - 関数名はsnake_case - クラス名はPascalCase - コメントは日本語で... ## テスト - テストファイルは__tests__ディレクトリに配置 - Jestを使用 - テストカバレッジは90%以上 - モックはsinonを使用 ...
# Content App — コンテンツ管理ツール ## スタック - Frontend: Next.js 14, TypeScript, Tailwind CSS - Backend: Next.js API Routes, Prisma - DB: PostgreSQL / 認証: NextAuth.js ## プロジェクト構造 - app/ — App Router(ページ・API) - components/ — 共有UIコンポーネント - lib/ — ユーティリティ、ヘルパー - prisma/ — スキーマ定義、マイグレーション ## コマンド - npm run dev — 開発サーバー起動 - npm run typecheck — TypeScriptチェック - npm test — テスト実行 ## 検証 変更後必ず: npm run typecheck && npm test ## 主要パターン - 認証: NextAuth.js(lib/auth.ts参照) - データ取得: React Query + Prisma
| CLAUDE.md | Memory | |
|---|---|---|
| 用途 | プロジェクトの基本ルール | セッション間で保持したい知識 |
| 誰が書く | 人間が手動で書く | Claudeが自動で記録 |
| 変更頻度 | ほぼ変わらない | 頻繁に更新される |
| 内容例 | 「テストはpytest」「コミットは日本語」 | 「ユーザーはfeatureブランチ禁止を好む」 |
| Git共有 | プロジェクトなら共有 | 個人環境のみ |
| 確認項目 | |
|---|---|
| 100行以内に収まっているか | 核心だけを書く |
| すべての指示が「常に適用」されるか | 特定タスク用ならルールファイルへ |
| プロジェクト概要が含まれているか | スタック・構造・目的 |
| 正確なビルド/テストコマンドがあるか | 動かないコマンドは書かない |
| コードスタイルルールを書いていないか | リンターに任せる |
| 「当たり前」を書いていないか | Claudeは知っている |