• #Claude Code
  • #AI
  • #設定
未分類

Claude Code 設定プロンプト完全ガイド

CLAUDE.md / rules / skills / slash commands / subagents の使い分け


1. 全体のディレクトリ構成

~/ (ホームディレクトリ)
├── .claude/
│   ├── CLAUDE.md           # 👤 ユーザー共通の指示
│   ├── rules/              # 👤 ユーザー共通のルール
│   │   ├── preferences.md
│   │   └── workflows.md
│   ├── skills/             # 👤 ユーザー共通のスキル
│   │   └── my-skill/
│   │       └── SKILL.md
│   ├── commands/           # 👤 ユーザー共通のコマンド
│   │   └── git-commit.md
│   └── agents/             # 👤 ユーザー共通のサブエージェント
│       └── reviewer.md
│
└── your-project/           # プロジェクトディレクトリ
    ├── CLAUDE.md           # 📁 プロジェクト共通の指示
    └── .claude/
        ├── CLAUDE.md       # 📁 プロジェクト共通の指示(どちらでもOK)
        ├── settings.json   # ⚙️ 権限・環境変数など
        ├── rules/          # 📁 プロジェクト固有のルール
        │   ├── code-style.md
        │   ├── testing.md
        │   └── api/
        │       └── endpoints.md  # paths: で限定可能
        ├── skills/         # 📁 プロジェクト固有のスキル
        │   └── deploy/
        │       └── SKILL.md
        ├── commands/       # 📁 プロジェクト固有のコマンド
        │   └── deploy.md
        └── agents/         # 📁 プロジェクト固有のサブエージェント
            └── test-runner.md

2. 各機能の比較表

機能読み込みタイミングコンテキスト消費呼び出し方法主な用途
CLAUDE.md🟢 起動時に全文常に消費自動基本ルール・プロジェクト情報
rules🟢 起動時(※条件付き可)条件なしは常に消費自動分割されたルール
skills🟡 概要のみ起動時 → 必要時に全文最小限 → 必要時のみClaude が自動判断専門知識パッケージ
slash commands🔵 呼び出し時のみ呼び出し時のみユーザーが /command定型プロンプト
subagents🟡 概要のみ起動時 → 必要時に全文独立したコンテキスト自動 or @agent独立タスク委譲

3. コンテキスト消費フロー図

┌─────────────────────────────────────────────────────────────────────────┐
│                        Claude Code 起動                                  │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│  🟢 即座に全文読み込み(コンテキスト消費)                                │
│  ┌─────────────────┐  ┌─────────────────────────────────────────────┐  │
│  │   CLAUDE.md     │  │              rules/                         │  │
│  │  ユーザー共通   │  │  paths: なし → 全文読み込み                  │  │
│  │  プロジェクト   │  │  paths: あり → 条件に合致したファイルのみ    │  │
│  └─────────────────┘  └─────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│  🟡 概要(description)のみ読み込み                                      │
│  ┌─────────────────────────────┐  ┌─────────────────────────────────┐  │
│  │         skills/             │  │         agents/                 │  │
│  │  SKILL.md の frontmatter    │  │  .md の frontmatter             │  │
│  │  (name, description)        │  │  (name, description)            │  │
│  └─────────────────────────────┘  └─────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
                          ┌─────────────────┐
                          │  ユーザーの質問  │
                          └─────────────────┘
                                    │
                    ┌───────────────┼───────────────┐
                    ▼               ▼               ▼
          ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
          │ skill 発動? │  │ agent 発動?│  │ /command?  │
          │ (自動判断)  │  │ (自動判断)  │  │ (手動実行)  │
          └─────────────┘  └─────────────┘  └─────────────┘
                    │               │               │
                    ▼               ▼               ▼
┌─────────────────────────────────────────────────────────────────────────┐
│  🔵 必要時に読み込み                                                     │
│  ┌─────────────────────┐  ┌─────────────┐  ┌─────────────────────────┐ │
│  │      skills/        │  │   agents/   │  │       commands/         │ │
│  │  SKILL.md 全文      │  │  独立した   │  │  .md 全文               │ │
│  │  + scripts/         │  │  コンテキスト│  │  (メインに追加)         │ │
│  │  + references/      │  │  で実行     │  │                         │ │
│  │  (メインに追加)     │  │             │  │                         │ │
│  └─────────────────────┘  └─────────────┘  └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

4. 各機能の詳細

4.1 CLAUDE.md

用途: 常に参照すべき基本ルール

# プロジェクト: my-app

## 基本ルール
- 日本語で回答すること
- コミット前に必ずテストを実行

## 技術スタック
- Frontend: React + TypeScript
- Backend: FastAPI

## コマンド
- `npm run dev` - 開発サーバー起動
- `npm run test` - テスト実行

配置場所と優先順位:

1. ~/.claude/CLAUDE.md          # ユーザー共通(最低優先)
2. ~/project/CLAUDE.md          # プロジェクトルート
3. ~/project/.claude/CLAUDE.md  # プロジェクト .claude 内
4. ~/project/src/CLAUDE.md      # サブディレクトリ(最高優先)

4.2 rules/

用途: CLAUDE.md を分割し、パス限定も可能

.claude/rules/
├── general.md              # 全ファイル共通
├── frontend/
│   └── react.md            # paths: src/components/**
└── backend/
    └── api.md              # paths: src/api/**/*.ts

パス限定ルールの例 (api.md):

---
paths: src/api/**/*.ts
---

# API 開発ルール

- 全エンドポイントで Zod によるバリデーション必須
- エラーレスポンスは統一フォーマット
- OpenAPI ドキュメントコメント必須

4.3 skills/

用途: 専門知識パッケージ(Claude が自動判断して発動)

.claude/skills/
└── tdd/
    ├── SKILL.md            # メイン定義(必須)
    ├── references/
    │   └── patterns.md     # 参照資料
    └── scripts/
        └── test-helper.py  # 補助スクリプト

SKILL.md の例:

---
name: tdd
description: テスト駆動開発を実践する。RED-GREEN-REFACTOR サイクルでコード実装時に使用。
---

# テスト駆動開発 (TDD) スキル

## 手順
1. 🔴 RED: 失敗するテストを書く
2. 🟢 GREEN: テストを通す最小限のコード
3. 🔵 REFACTOR: リファクタリング

## 参照
詳細は [references/patterns.md](references/patterns.md) を参照

ポイント:

  • description が重要(Claude がこれを見て発動を判断)
  • 本体は必要時のみ読み込まれる(Progressive Disclosure)

4.4 slash commands/

用途: ユーザーが明示的に実行する定型プロンプト

.claude/commands/
├── git-commit.md           # /git-commit
├── review.md               # /review
└── deploy/
    └── production.md       # /deploy:production

git-commit.md の例:

---
description: 意味のある単位でコミットを作成
---

# Git コミット作成

以下のルールでコミットしてください:

1. 変更を意味のある単位に分割
2. コミットメッセージは Conventional Commits 形式
3. なぜその変更をしたか (WHY) を本文に記載
4. 一度に全ての変更をコミットしない

使い方:

> /git-commit
> /deploy:production

4.5 subagents/

用途: 独立したコンテキストで動作する専門エージェント

.claude/agents/
├── test-runner.md
├── code-reviewer.md
└── debugger.md

test-runner.md の例:

---
name: test-runner
description: テスト実行と失敗の修正を担当。コード変更後に PROACTIVELY 使用。
tools: Read, Grep, Glob, Bash
model: inherit
---

あなたはテスト自動化の専門家です。

## 役割
- コード変更を検知したら適切なテストを実行
- 失敗したテストを分析し、修正案を提示
- テストの意図を保持しつつ修正

## 手順
1. 変更されたファイルを特定
2. 関連するテストを実行
3. 失敗があれば原因を分析
4. 修正案を親エージェントに報告

呼び出し方:

> test-runner サブエージェントでテストを実行して
> @test-runner テストが失敗している原因を調べて

5. 使い分けの判断フローチャート

                        ┌─────────────────────────┐
                        │   設定したい内容は?     │
                        └─────────────────────────┘
                                    │
                    ┌───────────────┼───────────────┐
                    │               │               │
                    ▼               ▼               ▼
            ┌───────────┐   ┌───────────┐   ┌───────────┐
            │常に必要?  │   │専門知識?  │   │手動実行?  │
            └───────────┘   └───────────┘   └───────────┘
                    │               │               │
        ┌───────┬───┴───┐           │               │
        ▼       ▼       ▼           ▼               ▼
    ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────────┐ ┌──────────┐
    │ Yes  │ │ Yes  │ │ No   │ │コンテキスト  │ │ commands │
    │全体に│ │特定  │ │      │ │共有したい?  │ │          │
    │適用  │ │条件  │ │      │ └──────────────┘ └──────────┘
    └──────┘ └──────┘ └──────┘       │
        │       │       │       ┌───┴───┐
        ▼       ▼       ▼       ▼       ▼
    ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
    │CLAUDE│ │rules │ │skills│ │skills│ │agents│
    │  .md │ │paths:│ │      │ │      │ │      │
    └──────┘ └──────┘ └──────┘ └──────┘ └──────┘

具体的な判断例

シチュエーション選択理由
「日本語で回答して」CLAUDE.md常に必要、全体に適用
「API ファイルは Zod 必須」rules (paths:)特定ファイルのみに適用
「TDD で開発するときの手順」skills専門知識、自動判断で発動
「コミット時のルール」commands手動で /git-commit 実行
「テスト実行と修正」agents独立コンテキストで試行錯誤

6. コンテキスト最適化のベストプラクティス

6.1 重複の排除

❌ 悪い例: 同じ内容が複数箇所に
├── CLAUDE.md         # コミットルールを記載
├── commands/commit.md # 同じコミットルールを記載
└── skills/git/SKILL.md # また同じルールを記載

✅ 良い例: 一箇所にまとめて参照
├── commands/commit.md  # コミットの詳細ルール
└── skills/git/SKILL.md
    └── 内容: `/commit` コマンドを実行してください

6.2 読み込みタイミングの最適化

┌─────────────────────────────────────────────────────────────────┐
│  CLAUDE.md / rules に書きすぎていませんか?                      │
│                                                                  │
│  以下は移動を検討:                                               │
│  • 特定タスクの詳細手順 → commands/                             │
│  • 専門知識(TDD、デバッグ等)→ skills/                         │
│  • 試行錯誤が必要なタスク → agents/                             │
└─────────────────────────────────────────────────────────────────┘

6.3 推奨構成例

~/.claude/
├── CLAUDE.md                    # 最小限: 言語、基本スタイル
├── rules/
│   └── communication.md         # コミュニケーションスタイル
├── skills/
│   └── git-commit/
│       └── SKILL.md             # コミット作成の専門知識
├── commands/
│   └── commit.md                # 手動用ショートカット
└── agents/
    └── reviewer.md              # コードレビュー専門家

your-project/.claude/
├── CLAUDE.md                    # プロジェクト概要、技術スタック
├── rules/
│   ├── code-style.md            # 全体のコードスタイル
│   └── api/
│       └── endpoints.md         # paths: src/api/** のみ適用
├── skills/
│   └── deploy/
│       └── SKILL.md             # デプロイ手順の専門知識
├── commands/
│   └── deploy-prod.md           # /deploy-prod で本番デプロイ
└── agents/
    └── test-runner.md           # テスト専門サブエージェント

7. まとめ

┌─────────────────────────────────────────────────────────────────────────┐
│                                                                         │
│   🟢 起動時に読み込み        →  CLAUDE.md, rules (条件なし)            │
│      コンテキスト常時消費         最小限に保つ                          │
│                                                                         │
│   🟡 概要のみ → 必要時全文  →  skills, subagents                       │
│      効率的なコンテキスト管理      Claude が自動判断                    │
│                                                                         │
│   🔵 呼び出し時のみ          →  slash commands                         │
│      完全な遅延読み込み           ユーザーが手動実行                    │
│                                                                         │
│   ⚡ 独立コンテキスト        →  subagents                               │
│      メインを汚染しない           試行錯誤タスクに最適                  │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

参考: Claude Code 公式ドキュメント