【Claude Code】機能整理ガイド - Skills、Hooks、サブエージェントのトリガー分類を理解する
Claude Codeには、Skills、Custom Commands、Hooks、サブエージェント、MCP Serversなど多くの機能があります。これらの機能を効果的に使い分けるには、「誰が」「いつ」トリガーするかを理解することが重要です。
この記事では、機能群をトリガーパターンで分類し、体系的に解説します。
3つのトリガーパターン
Claude Codeの機能は、以下の3つのトリガーパターンに分類できます。
スラッシュコマンド(/deploy等)で明示的に実行
Skillsとサブエージェントが発言内容から自動判断
HooksとCLAUDE.mdがセッション開始やイベント時に自動実行
トリガー別機能一覧
| 機能 | トリガー | 説明 |
|---|---|---|
| Custom Commands | ユーザー主導 | /commandで明示的に実行 |
| Skills | Claude主導 | 発言内容から自動的に適用 |
| サブエージェント | Claude主導 | タスクに応じて自動委譲 |
| Hooks | システム主導 | イベント発生時に自動実行 |
| CLAUDE.md | システム主導 | セッション開始時に読み込み |
| MCP Servers | 混合 | 外部サービスとの連携 |
CLAUDE.md(記憶管理)
CLAUDE.mdは、Claudeに対する指示やルールを記述するファイルです。3層の階層構造で管理されます。
階層構造
| レベル | ファイル | 用途 |
|---|---|---|
| プロジェクト | .claude/CLAUDE.md | チーム共有のルール |
| ローカル | CLAUDE.local.md | 個人の開発環境設定 |
| グローバル | ~/.claude/CLAUDE.md | 全プロジェクト共通の好み |
「具体的で検証可能な指示」が効果的です。曖昧な指示よりも、明確な条件と期待する動作を記述しましょう。
記述例
# プロジェクトルール
## コーディング規約
- TypeScriptを使用する
- 関数は単一責任の原則に従う
- エラーハンドリングは必ず実装する
## テスト
- 新機能には必ずテストを書く
- カバレッジは80%以上を維持
Skills と Custom Commands
SkillsとCustom Commandsは似ているように見えますが、トリガー方法と用途が異なります。
- ユーザーが存在を知らなくても自動適用
- descriptionの書き方が検出可能性を決定
- Claude主導でトリガー
!記法で現在の作業状態を取得可能- 実行タイミングをユーザーが制御
- ユーザー主導でトリガー
Skillsの特徴
Skillsは、Claudeが会話内容を分析して自動的に適用します。ユーザーがSkillの存在を知らなくても、関連する話題になれば自動的に発動します。
Skillsの検出可能性はdescriptionの書き方で決まります。具体的で明確なdescriptionを書くことで、適切なタイミングで発動するようになります。
Custom Commandsの特徴
Custom Commandsは、/command形式でユーザーが明示的に実行します。!記法を使うことで、実行時の作業状態(現在のファイル、選択範囲など)を取得できます。
# /deploy コマンド例
現在のブランチ: !git branch --show-current
変更ファイル: !git status --short
サブエージェント
サブエージェントは、独立したコンテキストで動作する専門エージェントです。メイン会話のコンテキストウィンドウを圧迫しません。
ビルトインエージェント
| エージェント | 役割 |
|---|---|
| Explore | コードベースの検索・分析(読み取り専用) |
| Plan | 計画立案のためのコンテキスト収集 |
大量の出力を生成する操作をサブエージェントに委譲することで、メインのコンテキストを節約できます。
Hooks
Hooksは、特定のイベント発生時に自動実行されるスクリプトです。セキュリティ機能やファイル保護などを実装できます。
イベント一覧
| イベント | トリガータイミング |
|---|---|
PreToolUse | ツール実行前 |
PostToolUse | ツール実行後 |
UserPromptSubmit | ユーザー入力送信時 |
SessionStart | セッション開始時 |
Stop | セッション終了時 |
活用例
- ファイル保護: 特定ファイルの編集をブロック
- コマンドブロッキング: 危険なコマンドの実行を防止
- 自動フォーマット: ファイル保存時に自動整形
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "./scripts/validate-edit.sh"
}
]
}
]
}
}
MCP Servers
MCP(Model Context Protocol)Serversは、外部サービスとの連携をAPI管理から抽象化します。
設定スコープ
| スコープ | 設定場所 | 用途 |
|---|---|---|
| user | ~/.claude/settings.json | 個人の外部サービス |
| project | .claude/settings.json | プロジェクト共通サービス |
| local | .claude/settings.local.json | 個人のプロジェクト設定 |
複数のMCP呼び出しを含むコマンドは、コンテキストを大量に消費します。以下の対策を推奨します。
コンテキスト消費への対策
- 責務分割 複数のMCP呼び出しは責務ごとに分割する
- サブエージェント活用 大量のデータ取得はサブエージェントに委譲
- 最小限の情報 必要最小限の情報のみ取得する
機能選択のフローチャート
どの機能を使うべきか迷ったときは、以下の観点で判断します。
- 明示的に実行したい → Custom Commands
- 自動的に適用したい → Skills / Hooks
- タスクを委譲したい → サブエージェント
- メインの会話で実行 → Skills / Custom Commands
- 独立したコンテキストで実行 → サブエージェント
- イベント駆動で実行 → Hooks
- セッション跨ぎで記憶 → CLAUDE.md
- セッション内のみ → その他の機能
まとめ
Claude Codeの機能を効果的に使い分けるには、トリガーパターンを理解することが重要です。
| パターン | 機能 | 用途 |
|---|---|---|
| ユーザー主導 | Custom Commands | 明示的なワークフロー実行 |
| Claude主導 | Skills、サブエージェント | 自動的な判断と委譲 |
| システム主導 | Hooks、CLAUDE.md | イベント駆動と設定管理 |
機能の「なぜ」を理解することで、新しい場面での判断と応用が容易になります。
参考文献
Recommend
2024-08-18
【Claude】Claude 3.5 Sonnetの驚異的な進化と活用法 - 圧倒的スピードで仕事と生活を変えるAI
2026-02-05
【Claude Code】Claude in Chrome - ブラウザ操作でフロントエンド開発を効率化
2026-02-04
【Claude Code】機能整理ガイド - Skills、Hooks、サブエージェントのトリガー分類を理解する
2026-02-04
【Claude Code】Agent Skills完全ガイド - Progressive Disclosureで効率的な知識注入を実現
2026-02-04
【Claude Code】Everything Claude Code 設定ガイド - 9つのコンポーネントで最大限に活用する方法
2026-02-04
【Claude Code】カスタムサブエージェントの作成 - タスク特化型AIアシスタントの構築方法