【Claude Code】機能整理ガイド - Skills、Hooks、サブエージェントのトリガー分類を理解する

PUBLISHED 2026-02-04

Claude Codeには、Skills、Custom Commands、Hooks、サブエージェント、MCP Serversなど多くの機能があります。これらの機能を効果的に使い分けるには、「誰が」「いつ」トリガーするかを理解することが重要です。

この記事では、機能群をトリガーパターンで分類し、体系的に解説します。

3つのトリガーパターン

Claude Codeの機能は、以下の3つのトリガーパターンに分類できます。

👤 ユーザー主導

スラッシュコマンド(/deploy等)で明示的に実行

🤖 Claude主導

Skillsとサブエージェントが発言内容から自動判断

⚙️ システム主導

HooksとCLAUDE.mdがセッション開始やイベント時に自動実行

トリガー別機能一覧

機能トリガー説明
Custom Commandsユーザー主導/commandで明示的に実行
SkillsClaude主導発言内容から自動的に適用
サブエージェント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は似ているように見えますが、トリガー方法と用途が異なります。

✅ Skills
  • ユーザーが存在を知らなくても自動適用
  • descriptionの書き方が検出可能性を決定
  • Claude主導でトリガー
❌ Custom Commands
  • !記法で現在の作業状態を取得可能
  • 実行タイミングをユーザーが制御
  • ユーザー主導でトリガー

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利用のベストプラクティス
  • 責務分割 複数のMCP呼び出しは責務ごとに分割する
  • サブエージェント活用 大量のデータ取得はサブエージェントに委譲
  • 最小限の情報 必要最小限の情報のみ取得する

機能選択のフローチャート

どの機能を使うべきか迷ったときは、以下の観点で判断します。

1
トリガーのタイミングを決める
  • 明示的に実行したい → Custom Commands
  • 自動的に適用したい → Skills / Hooks
  • タスクを委譲したい → サブエージェント
2
実行コンテキストを決める
  • メインの会話で実行 → Skills / Custom Commands
  • 独立したコンテキストで実行 → サブエージェント
  • イベント駆動で実行 → Hooks
3
永続性を決める
  • セッション跨ぎで記憶 → CLAUDE.md
  • セッション内のみ → その他の機能

まとめ

Claude Codeの機能を効果的に使い分けるには、トリガーパターンを理解することが重要です。

パターン機能用途
ユーザー主導Custom Commands明示的なワークフロー実行
Claude主導Skills、サブエージェント自動的な判断と委譲
システム主導Hooks、CLAUDE.mdイベント駆動と設定管理

機能の「なぜ」を理解することで、新しい場面での判断と応用が容易になります。

参考文献

CATEGORY
TAGS
円