フックとプラグイン

《 Claude完全ガイド 目次へ 》

10秒でいうと

フックはClaudeの判断に関係なく必ず走るシェルコマンドです。
スキルが「読んでもらう指示」なのに対し、フックは動く保証があるのが違いです。

No.38で書いた話に戻ります。CLAUDE.md は文脈であって強制ではありません。

「必ずこうしてほしい」があるなら、書いて頼むのではなく、仕組みとして走らせる。それがフックです。

いつフックを使うか

判断の分かれ目は1つです。

いつ効くか
CLAUDE.md Claudeが読んで、たぶん従う
スキル 呼ばれたときに読まれる
フック 決まったタイミングで必ず走る

たぶん従う、では許されないものをフックにする。編集後の整形、コミット前のlint、機密ファイルへの書き込みの禁止。

公式ドキュメントもはっきり書いています。Claudeが決めるかどうかに関係なく実行されるので、確実性が要るならフックへ。

どのタイミングで走らせられるか

公式に挙げられているイベントです。

イベント いつ
SessionStart セッションの開始・再開時
UserPromptSubmit プロンプトを送った直後、処理の前
PreToolUse ツールの実行前。止められる
PostToolUse ツールの実行が成功したあと
PostToolUseFailure ツールの実行が失敗したあと
Stop Claudeが応答を終えたとき
SubagentStop サブエージェントが終わったとき
PreCompact 文脈の圧縮の前
SessionEnd セッションの終了時

PreToolUse が止められるのが重要です。危険な操作を、実行される前に拒否できます。No.21で書いた「そもそもできないようにする」が、ここで実現します。

実例:出力を絞る

公式が挙げている例が分かりやすいので引きます。

テストの出力を、失敗した部分だけに絞るフック。Claudeが1万行のログを読む代わりに、フックが ERROR の行だけ返す。文脈が数万トークンから数百トークンに減ります。

これはNo.24の「詰め込まない」の実装でもあり、No.44のコスト削減でもあります。フックはコストの道具でもある、という視点は持っておくとよいと思います。

プラグイン

スキル・エージェント・フック・MCPサーバーをまとめて配る仕組みです。

標準の置き方(.claude/) プラグイン
呼び方 /hello /プラグイン名:hello
向くもの 個人の作業、その場の実験 チームへの共有、配布、版の管理

公式の勧め方が現実的です。まず .claude/ で作って回し、共有したくなったらプラグインに変換する。先にプラグインにする必要はありません。

中身はディレクトリ構成で決まります。skills/ にスキル、agents/ にエージェント定義、hooks/hooks.json にフック、.mcp.json にMCPサーバー。マニフェストは .claude-plugin/plugin.json に置きます。

よくある間違いも明記されていて、skills/ や hooks/ を .claude-plugin/ の中に入れてしまうこと。plugin.json だけが .claude-plugin/ に入ります。

配布はマーケットプレイス経由です。Anthropicが公式のものとコミュニティのものを持っていて、社内向けにはprivate リポジトリでマーケットプレイスを立てられます。

安全の話

フックはシェルコマンドを実行します。当然ですが、危険もそこにあります。

  • 他人が書いたフックを、読まずに有効にしない
  • プラグインの配布元を確かめる(No.32で書いたのと同じ)
  • 設定ファイルに入ったフックは、そのフォルダを信頼した時点で走る

第3章のNo.21の話が、ここでも当てはまります。接続を1つ増やすたびに、外から来るものの入口が1つ増えます。

やってみよう:必ず走らせたい処理を見つける(3分)

プロンプト
“`
私のプロジェクトで、Claudeの判断に任せず必ず走らせたい処理を
挙げてください。CLAUDE.md に書いても守られない可能性がある種類の
ものだけに絞ってください。

それぞれについて、どのフックのイベントで実装すべきかも教えてください。
実装はまだしないでください。
“`

期待される結果:候補とイベント名が返る。編集後の整形が PostToolUse、危険な操作の禁止が PreToolUse に割り当たる。

うまくいかないとき:候補が出ないなら、まだフックは要りません。同じことを2回言った時点で戻ってきてください。

つまずきポイント

最初からフックを作ろうとする。順番は CLAUDE.md → スキル → フックです。守られなかった実績ができてから作ってください。

フックを増やしすぎる。毎回走るので、遅くなります。本当に必要なものだけ。

他人のフックを読まずに使う。シェルコマンドが走ります。中身を読んでください。

まとめ

  • フックは判断に関係なく必ず走る。確実性が要るならここ
  • PreToolUse は操作を止められる。「そもそもできないようにする」が実現できる
  • 出力を絞るフックは、文脈もコストも減らせる
  • プラグインはまとめて配る仕組み。まず .claude/ で作ってから変換する

次に読む

Git・プルリクエスト・コードレビュー

→ ガイドの目次に戻る

※本記事の情報は 2026年8月時点のものです。

タイトルとURLをコピーしました