未分類
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 │
│ メインを汚染しない 試行錯誤タスクに最適 │
│ │
└─────────────────────────────────────────────────────────────────────────┘