フック : 作業の前後に自分の処理を挟む
フックを使うと、決まった場面で自分のスクリプトが走ります。ツールを使う前後、モデルを呼ぶ前後、作業が終わるときの5か所に挟めます。
用意するもの
- プロジェクトのフォルダ
- 実行するスクリプト
1. hooks.json を置く
`.agents/hooks.json` を作り、いつ・何を実行するかを書きます。
2. 場面を選ぶ
`PreToolUse`(ツールを使う前)、`PostToolUse`(使った後)、`PreInvocation`(考え始める前)、`PostInvocation`(考えた後)、`Stop`(終わるとき)から選びます。
3. 対象を絞る
ツールの前後では `matcher` で対象を絞ります。`"run_command"` ならコマンド実行だけ、`"browser_.*"` ならブラウザ操作すべてです。
4. 答えを返す
スクリプトは標準入力でJSONを受け取り、標準出力でJSONを返します。`PreToolUse` なら `{"decision":"deny","reason":"..."}` で実行を止められます。
コピーして使える依頼文
.agents/hooks.json を作って。コマンドを実行する前に scripts/guard.sh を呼び、本番のデータベースに触るコマンドなら止めるようにして。
この依頼文だと、こう返ってきます
実際の返答はそのときの資料や状況で変わります。形の目安として載せています。
完成チェック
- 決めた場面でスクリプトが走った
- 止めたいコマンドが実際に止まった