5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code 設定ファイル完全ガイド - CLAUDE.md と .claude/ の使い分けとオンデマンド読み込み

5
Posted at

はじめに

Claude Code を使い始めると、設定ファイルの多さに戸惑う方が多いのではないでしょうか。

  • CLAUDE.md.claude/ フォルダの違いは?
  • settings.jsoncommands/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.mdClaude への指示・ガイダンスを記述するファイルです。

  • プロジェクトのコンテキスト
  • コーディング規約
  • 重要なコマンドやルール
  • 禁止事項

配置場所と優先順位

Claude Code は以下の順序で CLAUDE.md を検索・読み込みます:

  1. ~/.claude/CLAUDE.md - ユーザーグローバル設定
  2. プロジェクトルートの CLAUDE.md または .claude/CLAUDE.md
  3. 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.mdinfrastructure/CLAUDE.md

これにより、無関係なコンテキストでトークンを消費しません。

使い分けのポイント

情報の種類 配置場所
常に適用すべき基本ルール ルートの CLAUDE.md
特定ディレクトリでのみ必要な詳細 サブディレクトリの CLAUDE.md

.claude/settings.json の役割

基本的な役割

settings.jsonClaude 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 → オンデマンド読み込み(トークン節約)

参考リンク


本記事は2026年1月27日時点の情報に基づいています。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?