Claude Code には「繰り返し作業を自動化する」仕組みが複数ある。スキル(Skills)、サブエージェント(Subagents)、フック(Hooks)、MCP サーバー — どれをいつ使うべきかが分かりにくい。公式ドキュメントの解説を元に、実践的な使い分けガイドとしてまとめた。
| 仕組み | いつ使うか | 確実性 |
|---|---|---|
| CLAUDE.md | プロジェクト全体に常時適用する知識・規約 | アドバイス(無視される可能性あり) |
| スキル | ドメイン知識や手順を Claude に教えたい時(ただし常時は不要) | Claude が判断して適用 |
| フック | 毎回必ず実行すべきアクション(例: 保存後に Lint) | 確定実行 |
| サブエージェント | メインのコンテキストを使わせたくない調査・専門タスク | 独立したコンテキスト |
スキルは .claude/skills/ 以下に作る小さなフォルダだ。Claude はスキルの description を読んで、関連するタスクの時に自動で読み込む。直接 /スキル名 で呼び出すこともできる。
# .claude/skills/api-conventions/SKILL.md
---
name: api-conventions
description: 社内 REST API の設計規約(エンドポイント命名、ページネーション等)
---
# API 設計規約
- URL パスはケバブケース(kebab-case)
- JSON プロパティはキャメルケース(camelCase)
- リスト系エンドポイントには必ずページネーションを実装
- バージョニングは URL パスで行う(/v1/, /v2/)
API を実装する作業をするとき、Claude がこのスキルを自動的に読み込んで規約に沿ったコードを書いてくれる。
繰り返す手順を「スキル」として定義しておけば、毎回同じプロンプトを打たなくて済む:
# .claude/skills/fix-issue/SKILL.md
---
name: fix-issue
description: GitHub Issue を解析・修正・PR 作成まで行う
disable-model-invocation: true
---
GitHub の Issue を分析して修正する: $ARGUMENTS
1. `gh issue view` で Issue の詳細を確認
2. 問題を理解してコードベースの関連ファイルを調査
3. 修正を実装
4. テストを書いて実行、パスすることを確認
5. Lint と型チェックを通す
6. わかりやすいコミットメッセージでコミット
7. PR を作成
使い方:
/fix-issue 1234 # Issue #1234 を修正する
disable-model-invocation: true を設定しておくと、Claude が「このスキルが使えそう」と自動判断して勝手に実行するのを防ぎ、明示的に呼んだときだけ動く。副作用のある操作(PR 作成など)には必須の設定だ。
サブエージェントは .claude/agents/ 以下に置く Markdown ファイルで定義する。ツールセットとシステムプロンプトを持つ「専門家エージェント」だ。
# .claude/agents/security-reviewer.md
---
name: security-reviewer
description: コードのセキュリティ脆弱性をレビューする
tools: Read, Grep, Glob, Bash
model: opus
---
あなたはシニアセキュリティエンジニアです。以下の観点でコードをレビューしてください:
- インジェクション脆弱性(SQL、XSS、コマンドインジェクション)
- 認証・認可の欠陥
- コード内のシークレットや認証情報
- 安全でないデータ処理
具体的な行番号と修正案を提示してください。
使い方:
セキュリティレビューサブエージェントを使ってこのコードをレビューして
ポイントは model: opus を指定することで、セキュリティレビューという高精度が求められるタスクには Opus を使い、メインの作業は Sonnet で進めるという使い分けができる。
フックは「必ず実行させたい」場合に使う。CLAUDE.md に「ESLint を実行して」と書いても Claude が忘れることがある。フックなら確実に実行される。
Claude 自身にフックを書かせることができる:
ファイルを編集するたびに ESLint を走らせるフックを書いて
migrations フォルダへの書き込みをブロックするフックを書いて
フックの設定は .claude/settings.json を直接編集するか、/hooks コマンドで確認・管理できる。
1. Write: 実装を依頼
2. Hook: PostToolUse でフォーマッタ自動実行
3. Subagent: `/ultrareview` で並列クラウドレビュー
4. Skill: `/fix-issue` で指摘事項を反映
1. AskUserQuestion で仕様インタビュー → SPEC.md に保存
2. 新セッションで実装(SPEC.md を参照)
3. テスト先行サブエージェントでテストを先に書く
4. Writer セッションでテストを通す実装
5. security-reviewer サブエージェントでセキュリティチェック
「毎回確実に実行されなければならない」 → フック
「このプロジェクトでは常に知っておいてほしいこと」 → CLAUDE.md
「特定のドメイン知識や手順を必要に応じて使わせたい」 → スキル
「専門家視点でのレビューや、メインコンテキストを汚したくない調査」 → サブエージェント
これらを組み合わせることで、「Claude に毎回同じことを教える」という作業から解放される。設定への初期投資が必要だが、繰り返し使うプロジェクトでは確実に元が取れる。