08 拡張機能の全体像(どれを使う?)
更新日:
組み込みツールだけでも大抵のコーディングはできる。拡張機能は「Claude が知っていること」「つながる先」「自動化」を足すためのもの。
初心者はまず CLAUDE.md から始め、困りごとが出たら順に足していけばよい。
一覧
| 機能 | 何をする | いつ使う | 例 |
|---|---|---|---|
| CLAUDE.md | 毎回読み込まれる恒久的な文脈 | プロジェクトの規約、「常にXする」ルール | 「npm でなく pnpm。コミット前にテスト」 |
| 出力スタイル | 応答の役割・口調・形式 | 毎回の応答の長さや形式を変えたい | 組み込みの Concise(簡潔) |
| Skill | 指示・知識・手順のファイル | 再利用する知識、繰り返す作業 | /deploy でデプロイ手順 |
| サブエージェント | 別コンテキストで作業し要約を返す | 大量のファイルを読む調査、並列作業 | 調査結果の要点だけ返す |
| 動的ワークフロー | 多数のサブエージェントを動かすスクリプト | 数個のサブエージェントでは足りない規模 | コードベース全体の監査+検証 |
| セッション間メッセージ | 自分の別セッションにメッセージ | 並行セッション同士で発見を共有 | 「その変更、こっちの作業を壊すよ」 |
| コードインテリジェンス | 言語サーバーで定義ジャンプ・型エラー | 型のある言語、大規模コード | grep の代わりにシンボル検索 |
| MCP | 外部サービスに接続 | 外部データや操作 | DB検索、Slack投稿、ブラウザ操作 |
| Hook | イベント時にスクリプト等を実行 | 毎回必ず起きてほしい自動処理 | 編集のたびに ESLint |
| アーティファクト | 結果を共有可能なWebページに | 端末の文字より見た方が早い出力 | 調査に合わせて更新されるタイムライン |
| Mod(モッド) | プラグインに入れた JavaScript が Claude Code の中で動き、画面や動作を変える | 専用のパネル・ボタン・独自コマンドが欲しい、ツール呼び出しを書き換えたい | コンテキスト使用量をグラフ表示するパネル |
| プラグイン | 上記をまとめたパッケージ | 複数リポジトリで同じ構成、配布 | skills+hooks+MCP のセット |
足していく順番(トリガー)
| こうなったら | これを追加 |
|---|---|
| 同じ規約・コマンドを2回間違えた | CLAUDE.md |
| 毎回「短く」「もっと説明して」と頼んでいる | 出力スタイル |
| タスク開始時に同じプロンプトを打っている | ユーザーが呼ぶ Skill |
| 同じ手順書を3回貼り付けた | Skill |
| Claude が見られないブラウザのデータを毎回コピペしている | MCP サーバー |
| シンボルの定義を探して大量のファイルを読んでいる | コードインテリジェンスプラグイン |
| 脇道の作業が二度と見ない出力で会話を埋める | サブエージェント |
| 頼まなくても毎回やってほしい | Hook |
| Claude Code の画面に自分用の表示やボタンが欲しい | Mod |
| 別のリポジトリでも同じ構成が欲しい | プラグイン |
同じ基準は「今あるものを直すとき」にも使える。繰り返すミスは CLAUDE.md の修正、手で調整し続けている作業は Skill の改訂。
似ているものの違い
Skill vs サブエージェント
- Skill = どこにでも読み込める再利用コンテンツ(メインのコンテキストに入る)
- サブエージェント = 独立した作業者(別コンテキスト、要約だけ返る)
- 組み合わせ可: サブエージェントに Skill を事前読込(
skills:)、Skill をcontext: forkで別コンテキスト実行
CLAUDE.md vs Skill
| CLAUDE.md | Skill | |
|---|---|---|
| 読み込み | 毎セッション自動 | 必要な時 |
/名前 で起動 | 不可 | 可 |
| 向き | 「常にXする」ルール | 参考資料、手順 |
→ CLAUDE.md は 200行以下。膨らんだら Skills や .claude/rules/ へ |
CLAUDE.md vs rules vs Skill
- CLAUDE.md: 毎回、プロジェクト全体
.claude/rules/: 毎回 or 該当ファイルを開いた時(パス指定可)- Skill: 呼ばれた時・関係ある時
Hook vs Skill
| Hook | Skill | |
|---|---|---|
| 実行されるもの | シェルコマンド・HTTP・MCPツール・プロンプト・エージェント | Claude が読んで従う指示 |
| きっかけ | ライフサイクルイベント(PostToolUse など) | /名前 か、Claude が説明文と照合 |
| 確実性 | 必ず発火 | Claude の解釈次第 |
| コンテキスト消費 | 出力を返さなければゼロ | 説明文は毎回、本文は使用時 |
| → ガードレールは Hook に。「.env を編集しない」を CLAUDE.md に書くのは「お願い」、PreToolUse Hook でブロックするのが「強制」。 |
Hook vs Mod
- Hook(公式は Mod と区別して「settings hook」と呼ぶ) = settings.json に書く外部のスクリプト。止める・許可する・記録するのが得意
- Mod = プラグインに入れた JavaScript の関数が Claude Code の中で動く。画面に描画できる、イベントを書き換えられる、Claude のターンなしで動く
/コマンドを作れる - 既存のスクリプトで足りるなら Hook、画面や細かい挙動まで変えたいなら Mod → 13_プラグイン
MCP vs Skill
- MCP = 外部サービスへの接続(ツールとデータ)
- Skill = その使い方の知識
- 組み合わせ: MCP で DB に接続 + Skill にスキーマとクエリの書き方
サブエージェント vs 動的ワークフロー
- サブエージェント: Claude がターンごとに次を決める
- ワークフロー: スクリプトが決める。大規模・結果の相互検証向け
同じ機能が複数レベルにある時
- CLAUDE.md: 全部足し合わせ(矛盾は Claude が判断)
- Skills / サブエージェント: 名前で上書き(Skills: 管理 > ユーザー > プロジェクト、サブエージェント: 管理 > CLIフラグ > プロジェクト > ユーザー > プラグイン)
- MCP: 名前で上書き(ローカル > プロジェクト > ユーザー)
- Hooks: 全部発火(マージ)
コンテキストコスト
| 機能 | 読み込み時 | コスト |
|---|---|---|
| CLAUDE.md | 起動時・全文 | 毎リクエスト |
| 出力スタイル | 起動時 | 毎リクエスト(Default は0) |
| Skills | 起動時は説明文、使用時に本文 | 低(disable-model-invocation: true で0) |
| MCP | 起動時はツール名だけ | 使うまで低 |
| サブエージェント | 起動時 | メインから隔離 |
| Hooks | 発火時 | 出力を返さなければ0 |
| Mods | Claude Code の中で動く | 自分でツールや文脈を足さない限り0 |