はじめに
Claude Code を使い始めると、設定ファイルの多さに戸惑う方が多いのではないでしょうか。
-
CLAUDE.mdと.claude/フォルダの違いは? -
settings.jsonとcommands/とrules/はどう使い分ける? - サブディレクトリの
CLAUDE.mdはいつ読み込まれる?
本記事では、これらの疑問に体系的に答え、読み込みタイミングの違いを明確にします。
本記事は2026年1月時点の情報に基づいています。
全体像
まず、Claude Code の設定ファイル構成を図で確認しましょう。
my-project/
├── CLAUDE.md # メイン指示ファイル(自動読み込み)
├── CLAUDE.local.md # ローカル専用(Git管理外)
├── .claude/
│ ├── CLAUDE.md # 代替配置も可能
│ ├── settings.json # ツール許可・MCP設定
│ ├── commands/
│ │ └── deploy.md # カスタムコマンド定義
│ └── rules/
│ └── frontend.md # 条件付きルール
├── src/
│ ├── CLAUDE.md # サブディレクトリ用(オンデマンド)
│ └── components/
│ └── CLAUDE.md # さらに深い階層も可
役割の違い(要約)
| ファイル/フォルダ | 役割 | 読み込みタイミング |
|---|---|---|
CLAUDE.md(ルート) |
Claude への指示・ガイダンス | セッション開始時 |
CLAUDE.md(サブディレクトリ) |
特定ディレクトリ用の指示 | オンデマンド(ファイルアクセス時) |
.claude/settings.json |
ツール許可・MCP設定 | セッション開始時 |
.claude/commands/*.md |
カスタムスラッシュコマンド | コマンド実行時 |
.claude/rules/*.md |
条件付きの詳細ルール | 条件に応じて |
CLAUDE.md の役割
基本的な役割
CLAUDE.md はClaude への指示・ガイダンスを記述するファイルです。
- プロジェクトのコンテキスト
- コーディング規約
- 重要なコマンドやルール
- 禁止事項
配置場所と優先順位
Claude Code は以下の順序で CLAUDE.md を検索・読み込みます:
-
~/.claude/CLAUDE.md- ユーザーグローバル設定 - プロジェクトルートの
CLAUDE.mdまたは.claude/CLAUDE.md -
CLAUDE.local.md- ローカル専用(Git管理外推奨)
記述例
# プロジェクト概要
このプロジェクトは Python 3.11 を使用した Web API です。
## コーディング規約
- テストは pytest で実行
- 日本語でコミュニケーション
- 機密情報をコードに含めない
## 重要なコマンド
- `pytest` - テスト実行
- `black .` - フォーマット
サブディレクトリの CLAUDE.md - オンデマンド読み込み
これが最も理解が難しいポイントです
読み込みタイミングの違い
| 配置場所 | 読み込みタイミング |
|---|---|
ルートの CLAUDE.md
|
セッション開始時に自動読み込み |
サブディレクトリの CLAUDE.md
|
そのディレクトリ内のファイルにアクセスした時のみ |
なぜオンデマンドなのか
サブディレクトリの CLAUDE.md がオンデマンド読み込みになっている理由は、トークン予算の効率的な管理のためです。
例えば、以下のようなプロジェクト構成があるとします:
my-project/
├── CLAUDE.md # 常に読み込み
├── apps/
│ ├── web/
│ │ └── CLAUDE.md # React のルール
│ └── api/
│ └── CLAUDE.md # FastAPI のルール
└── infrastructure/
└── CLAUDE.md # Terraform のルール
apps/web/Button.tsx を編集する場合:
-
読み込まれる: ルートの
CLAUDE.md+apps/web/CLAUDE.md -
読み込まれない:
apps/api/CLAUDE.md、infrastructure/CLAUDE.md
これにより、無関係なコンテキストでトークンを消費しません。
使い分けのポイント
| 情報の種類 | 配置場所 |
|---|---|
| 常に適用すべき基本ルール | ルートの CLAUDE.md
|
| 特定ディレクトリでのみ必要な詳細 | サブディレクトリの CLAUDE.md
|
.claude/settings.json の役割
基本的な役割
settings.json はClaude Code の技術的な設定を記述するファイルです。
- 確認なしで実行を許可するツール・コマンド
- MCP サーバーの設定
記述例
{
"allowedTools": [
"bash(npm run build)",
"bash(npm test)",
"mcp__github__create_pull_request"
],
"mcpServers": {
"database": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
CLAUDE.md との違い
| 項目 | CLAUDE.md | settings.json |
|---|---|---|
| 内容 | 指示・ガイダンス(自然言語) | 技術的な設定(JSON) |
| 目的 | 「何をどう作業すべきか」 | 「どのツールを使えるか」 |
| 形式 | Markdown | JSON |
.claude/commands/ の役割
基本的な役割
commands/ フォルダにはカスタムスラッシュコマンドを定義します。
/deploy と入力すると、対応する .md ファイルの内容がプロンプトとして送信されます。
記述例
.claude/commands/deploy.md:
本番環境へのデプロイを実行してください。
1. まず `npm test` で全テストが通ることを確認
2. `npm run build` でビルド
3. `./scripts/deploy.sh production` を実行
4. デプロイ完了後、ヘルスチェックを確認
引数の受け取り
$ARGUMENTS で引数を受け取れます:
.claude/commands/fix-issue.md:
GitHub Issue #$ARGUMENTS の内容を確認し、修正を実装してください。
使用時:/fix-issue 123 → Issue #123 を修正
.claude/rules/ の役割
基本的な役割
rules/ フォルダには条件付きで適用されるルールを定義します。
rules/ は CLAUDE.md の内容を分割し、コンテキストを抑えるために使用します
CLAUDE.md との違い
| 項目 | CLAUDE.md | rules/*.md |
|---|---|---|
| 読み込み | セッション開始時に必ず読み込み | 条件に応じて読み込み |
| 用途 | 常に必要な基本ルール | 特定の作業時のみ必要なルール |
使い分けの例
.claude/
├── CLAUDE.md # 常に適用すべきルール
└── rules/
├── frontend.md # React 作業時のみ
├── backend.md # API 作業時のみ
└── testing.md # テスト作成時のみ
CLAUDE.md に記載すべきこと(ルール分割した場合):
## プロジェクトルール
詳細なルールは `.claude/rules/` に分割されています:
- `frontend.md` - React/TypeScript のコーディング規約
- `backend.md` - API 設計・データベース操作のルール
- `testing.md` - テスト作成のガイドライン
## 重要(常に適用)
- コミット前に必ず `npm test` を実行
- 日本語でコミュニケーション
- 機密情報をコードに含めない
読み込みタイミングの比較表
| ファイル | 読み込みタイミング | 用途 |
|---|---|---|
ルートの CLAUDE.md
|
セッション開始時 | 常に必要な指示 |
サブディレクトリの CLAUDE.md
|
ファイルアクセス時(オンデマンド) | 特定ディレクトリ用の指示 |
.claude/settings.json |
セッション開始時 | ツール許可・MCP設定 |
.claude/commands/*.md |
コマンド実行時 | カスタムコマンド |
.claude/rules/*.md |
条件に応じて | 詳細ルール |
使い分けのベストプラクティス
1. 常に適用すべきルールは CLAUDE.md に
# CLAUDE.md
## 基本ルール
- 日本語でコミュニケーション
- コミット前にテスト実行
- 機密情報を含めない
2. 特定ディレクトリのルールはサブディレクトリの CLAUDE.md に
# src/components/CLAUDE.md
## React コンポーネントのルール
- 関数コンポーネントを使用
- Props は型定義必須
- Storybook のストーリーを作成
3. 繰り返すワークフローは commands/ に
# .claude/commands/review.md
コードレビューを実行してください。
1. 変更ファイルの一覧を確認
2. 各ファイルの変更内容をレビュー
3. 問題点と改善提案をまとめる
4. 詳細な条件付きルールは rules/ に
# .claude/rules/security.md
## セキュリティルール
このルールは認証・認可に関するコードを扱う際に適用されます。
- SQLインジェクション対策を確認
- 入力値のバリデーションを確認
- 機密情報のログ出力を禁止
まとめ
| ファイル | 「何を書くか」 | 「いつ読まれるか」 |
|---|---|---|
CLAUDE.md(ルート) |
基本的な指示・ルール | セッション開始時 |
CLAUDE.md(サブディレクトリ) |
特定ディレクトリ用のルール | オンデマンド |
settings.json |
ツール許可・MCP設定 | セッション開始時 |
commands/*.md |
カスタムコマンド | コマンド実行時 |
rules/*.md |
条件付きの詳細ルール | 条件に応じて |
ポイント:
- CLAUDE.md → 指示・ガイダンス(何をどう作業すべきか)
- .claude/ → 設定・機能拡張(どのツールを使えるか)
- サブディレクトリの CLAUDE.md → オンデマンド読み込み(トークン節約)
参考リンク
- Claude Code の設定 - 公式ドキュメント
- Claudeのメモリを管理する - 公式ドキュメント
- Claude Code's Memory: Working with AI in Large Codebases
本記事は2026年1月27日時点の情報に基づいています。