『Steering Claude Code』日本語版 要約
本ドキュメントは、Claude Codeの動作をカスタマイズ・制御するための7つの手法の特徴、コンテキストコスト、および適切なユースケースについてまとめたものです。
1. 7つのカスタマイズ手法と特徴
| 手法 | 読み込みのタイミング | 特徴とコンテキストコスト | 主なユースケース |
|---|---|---|---|
| CLAUDE.md (ルート) | セッション開始時(常時) | 常にコンテキストに維持されるため、コストは高め。 | ビルドコマンド、ディレクトリ構成、コーディング規約、チームの規範など。 |
| CLAUDE.md (サブディレクトリ) | 対象サブディレクトリのファイル読み込み時 | 必要な時のみ読み込まれるため、コストは低め。 | 特定のサブディレクトリに特有のローカルな規約。 |
| ルール (Rules) | セッション開始時、またはパスに一致した時 | パス制限がない場合は常時オン。コンパクション時に再注入される。 | 特定の制約や規約(例: すべてのAPIハンドラーはZodで入力検証を行うなど)。 |
| スキル (Skills) | スキル呼び出し時(オンデマンド) | 呼び出されるまで本文は未ロードのため低コスト。共有のトークン予算内で管理される。 | デプロイやリリースチェックリストなどの手順ベース of ワークフロー。 |
| サブエージェント (Subagents) | エージェントツールによる呼び出し時 | 独立したコンテキストで実行され、結果のみをメインセッションに返すため低コスト。 | ディープサーチ、ログ分析、依存関係監査など、メインの履歴を汚したくないタスク。 |
| フック (Hooks) | ライフサイクルイベントの発生時 | 設定はメインコンテキストの外にあるため、基本的にコンテキストを消費しない。 | リンターの自動実行、Slackへの完了通知、特定コマンドの実行ブロックなど。 |
| 出力スタイル (Output styles) | セッション開始時(常時) | システムプロンプトを上書きするためコストは高いが、指示の追従性が最も高い。 | アシスタントの役割自体の変更(例: ソフトウェア開発から一般アシスタントへの変更)。 |
| システムプロンプトの追加 | セッション開始時(起動時のCLIフラグ) | その呼び出しのみに適用され、中程度のコスト(プロンプトキャッシュ適用可)。 | 特定のコーディング基準、フォーマット、ドメイン知識の追加。 |
2. 適切なカスタマイズを選択するためのクイックヒント
- 自動化には「フック」を使用する
- 「〜するたびに、〜を実行する」といった決定論的な処理は、CLAUDE.mdに指示として書くのではなく、フック(
settings.json)で自動化すべきです。
- 「〜するたびに、〜を実行する」といった決定論的な処理は、CLAUDE.mdに指示として書くのではなく、フック(
- 強力な制約には「ガードレール(フックや権限)」を使用する
- 「絶対に〜してはならない」といった強力なルールは、指示(プロンプト)だけでは防げない場合があるため、
PreToolUseフックによるブロックやマネージド設定などの決定論的なガードレールを使用してください。
- 「絶対に〜してはならない」といった強力なルールは、指示(プロンプト)だけでは防げない場合があるため、
- 手順は「スキル」に記述する
- 30行を超えるようなデプロイ手順書やチェックリストは、CLAUDE.mdではなく
.claude/skills/にスキルとして記述し、必要な時だけ呼び出します。
- 30行を超えるようなデプロイ手順書やチェックリストは、CLAUDE.mdではなく
- 特定の場所にのみ適用するルールにはパス制限をかける
- API関連など、特定のパスにしか適用されないルールは、
pathsスコープを制限することで、不要な時のトークン消費を防ぎます。
- API関連など、特定のパスにしか適用されないルールは、
- 個人の好みはローカル(ユーザーレベル)に分離する
- セマンティックコミットの使用など、個人の開発スタイルに関する設定は、プロジェクト内のCLAUDE.mdではなく、ユーザーレベルのファイルに記述します。