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.mdSkill
読み込み毎セッション自動必要な時
/名前 で起動不可可
向き「常にXする」ルール参考資料、手順
→ CLAUDE.md は 200行以下。膨らんだら Skills や .claude/rules/ へ

CLAUDE.md vs rules vs Skill

  • CLAUDE.md: 毎回、プロジェクト全体
  • .claude/rules/: 毎回 or 該当ファイルを開いた時(パス指定可)
  • Skill: 呼ばれた時・関係ある時

Hook vs Skill

HookSkill
実行されるものシェルコマンド・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
ModsClaude Code の中で動く自分でツールや文脈を足さない限り0

関連