4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ClaudeCodeの優良機能!hooksとは何か?

4
Posted at

はじめに

この記事では、ClaudeCodeのhooks(フック)について解説します!

hooksを使うことによって、ClaudeCodeに確実性のある処理を行わせることができ、AI駆動開発における品質・安全性の向上や特定の処理の定型化・自動化が可能になります!

この記事ではhooksの具体的な仕組みや種類を紹介したのちに、いくつかの例を用いてhooksについて解説します!

hooksの仕様は頻繁に更新されるため、公式リファレンスの最新情報を確認することをおすすめします

hooksとは?

hooksとは、ClaudeCodeのセッションにおいて特定のイベントが発生した時に自動で実行されるカスタムシェルコマンドです

特定のイベント(セッションの終了時や編集を始める時)が発生するときに、
ユーザが登録したBashコマンドや特定の処理を実行してしてくれる機能になります!

hooksは8種類用意されております。

hooks名 イベントの発火条件
PreToolUse ツールの実行前に実行する
PostToolUse ツールの実行後に実行する
SessionStart セッションが開始・再開された時に実行される
Stop Claudeが会話を終了すると実行される
PermissionRequest 許可を求めてくる前に実行される
PreCompact コンテキストを圧縮する前に実行される
SubagentStop サブエージェントが終了する時に実行される
UserPromptSubmit プロンプトを送信すると実行される

これらのhooksの設定は/hooksのスラッシュコマンドを使うか、.claude/settings.jsonに直接書き込むことで可能です。
(.claude/settings.local.jsonに設定することでローカルのみに提供なども可能)

実際の例

PostToolUse

ClaudeCodeが書き込み・編集を行った後にコードフォーマッタを実行するフック

Javaのフォーマッタ
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs ./scripts/format-java.sh"
          }
        ]
      }
    ]
  }
}
scripts/format-java.sh
#!/usr/bin/env sh

case "$1" in
  *.java) ./gradlew -q spotlessApply ;;
esac

Stop

ClaudeCodeが対話を終了する際に、プロンプトで作業の内容を確認させる

stop
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "Review whether the task is complete. If all requirements are met, respond with 'complete'. If work remains, respond with 'continue' and specify what still needs to be done."
          }
        ]
      }
    ]
  }
}

終わりに

hooksを使うことによって、

  • コンテキストの忘却による不確実性を回避した処理実行
  • 繰り返し動作を定型化・自動化

といったメリットを受けることができます!

Claude.mdに明示するだけではなく、確実なルールとしてhooksを整備することは、
AI駆動開発の生産性・安全性を高めることができると思います!

最後まで、読んでいただきありがとうございました!

参考文献

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?