AIに作業を任せると「触ってほしくない大事なファイル」まで変わってしまわないか不安ですよね。Claude Codeの「フック(hooks)」を使えば、保存の前に危険な変更を自動でチェックして止める安全網を作れます。その考え方と作り方を、コードが書けない人向けにやさしく解説します。
⚠️ この記事は2026年7月時点の情報です。Claude Codeやフックの仕様やサービスは変わる場合があるため、最新かつ正確な情報は各公式ドキュメント・公式サイトもご確認ください。あわせてCLAUDE.mdの書き方:AIを暴走させない安全設定もどうぞ。
AI(人工知能)に作業を手伝ってもらうのはとても便利ですが、こんな不安はありませんか。「知らないうちに、触ってほしくない大事なファイルまで書き換えられていたらどうしよう」。私も同じ気持ちでした。人間が一つひとつ画面を見張るのは疲れますし、見落としも起きます。
そこで役に立つのが、Claude Codeのフック(hooks)という仕組みです。これは「特定の操作の前後で、決めておいた確認を自動で実行してくれる」機能です。今回の記事を読むと、次のことが分かるようになります。
- フック(hooks)とは何か、たとえ話でイメージできる
- 「保存の前に危険な変更を止める」安全網を、どう考えて作るか
- 設定をどこに書くか(settings.json)のざっくりした場所
- 誤検知(false positive=安全な変更を誤って止めてしまうこと)との付き合い方
なお、この記事で作るのは「AIの行き過ぎを機械的に止める安全網」です。難しいプログラムを自分で書く話ではなく、考え方と作り方の枠組みを一般化してお伝えします。守っている中身そのものは各自の事情で変わるので、ここでは触れません。
フック(hooks)とは何か——「自動で動く見張り役」
フック(hooks)を日本語にすると「引っかけるための留め具・きっかけ」という意味です。プログラムの世界では、特定のタイミングに合わせて自動で処理を差し込む仕組みを指します。
たとえ話で考えてみましょう。家の玄関を出る前に「鍵・財布・スマホを持ったか」を自動で読み上げてくれる装置があったら便利ですよね。玄関を通るというきっかけ(トリガー)に合わせて、決めた確認が自動で走る。これがフックのイメージです。
Claude Codeでは、いろいろなタイミングにフックを仕掛けられます。今回の記事で主役になるのは、その中でも代表的なpre-commitフック(pre-commit hook)です。「commit(コミット=作業内容の保存・確定)」の前(pre)に自動で動くフック、という意味です。
ここで「コミット」という言葉を補足します。コミット(commit)は、ファイルの変更を「この状態で確定して記録する」操作です。文章を書くときに「ここまでを保存」とボタンを押す感覚に近いものです。この保存の直前に見張り役を置くのが、pre-commitフックです。
なぜ「保存の前」が良い場所なのか
変更を確定する瞬間は、いわば「作業を世に出す関所(せきしょ)」です。どんな変更であっても、必ずここを通ります。関所に見張りを一人立たせておけば、通るものを全部チェックできます。人間が毎回ぜんぶを目視しなくても、機械が同じ基準で淡々と確認してくれる——これがフックの一番おいしいところです。
「守りたいもの」を決めるのが最初の一歩
安全網を作るとき、いきなり設定ファイルを開くのはおすすめしません。順番が逆になりがちだからです。まず決めるべきは、技術ではなく「何を守りたいか」です。
ここは料理の下ごしらえに似ています。材料(守りたいもの)を先に並べてから、道具(フック)を出すと迷いません。次の3つを、紙でもメモアプリでも良いので言葉にしてみてください。
| 決めること | 質問の形にすると | 身近なたとえ |
|---|---|---|
| 守りたい対象 | 「絶対に勝手に変わってほしくないものは何か」 | 実印・通帳のような「重要書類」 |
| 止める条件 | 「どういう変更が来たら赤信号か」 | 重要書類に手が加わろうとした瞬間 |
| 止めた後の動き | 「止めたら何を表示して、どうさせたいか」 | 『これは要注意です』と貼り紙を出す |
この3つが決まっていれば、あとの設定は「それを機械に翻訳するだけ」になります。逆に、ここが曖昧なまま設定を書くと、何を止めたいのか自分でも分からなくなり、後で調整に苦労します。
「全部を厳しく守る」は最初は狙わない
安全網は、欲張って何もかも止めようとすると、かえって毎回引っかかって作業が進まなくなります。最初は「これだけは絶対に守りたい、というごく一部」に絞るのがコツです。守る範囲は、慣れてから少しずつ広げれば十分です。狭く始めて、育てる。これが失敗しにくい進め方です。
設定はどこに書くのか——settings.json のざっくり地図
Claude Codeの動きを決める設定は、settings.jsonという設定ファイル(settings=設定、json=データの書き方の一種)に書きます。JSON(ジェイソン)は、コンピュータに設定を伝えるための「決まった書式のメモ」だと思ってください。人間でいう「箇条書きのルール表」に近いものです。
大まかな流れは次のとおりです。細かい書式は環境によって変わるので、ここでは「地図」だけ共有します。
- どのタイミングで動かすかを決める:今回なら「保存(コミット)の前」というタイミングを指定します。
- 何を実行するかを書く:そのタイミングで走らせる「チェックの中身」を指定します。中身は、あらかじめ用意しておいた小さな確認処理(スクリプト)です。
- 止めるかどうかを結果で決める:チェックが「これは赤信号」と判断したら保存を止め、「問題なし」なら通します。
大事なのは、フックの主役はClaude Code(AI)ではなく、あなたが決めた仕組みそのものだという点です。AIが「気をつけよう」と心がけるのではなく、設定した仕組みが機械的に動きます。だからこそ、AIが調子に乗って行き過ぎそうになっても、関所で確実に止められるのです。心がけは疲れれば緩みますが、仕組みは疲れません。
用語のミニ整理
- フック(hooks):特定のタイミングで自動実行される仕組み。
- コミット(commit):変更を確定して記録する操作。いわば「保存の確定」。
- pre-commitフック(pre-commit hook):コミットの「前」に自動で走る見張り役。
- 誤検知(false positive):安全な変更を、誤って「危険」と判断して止めてしまうこと。
誤検知(false positive)との上手な付き合い方
安全網を作ると、ときどき「本当は問題ない変更なのに止められてしまう」ことが起きます。これが誤検知(false positive)です。火事でもないのに煙感知器が鳴ってしまう、あの感覚に似ています。
ここで大切なのは、誤検知が起きること自体は失敗ではないということです。むしろ「感知器がちゃんと敏感に働いている証拠」でもあります。問題は、鳴ったときにどう受け止めるかです。慌てず、次のように付き合っていきましょう。
| 起きたこと | まずやること | やってはいけないこと |
|---|---|---|
| 安全な変更が止められた | 「なぜ止まったか」の表示を落ち着いて読む | 面倒だからと安全網ごと外してしまう |
| 同じ誤検知が何度も起きる | 止める条件を少しだけ具体的にして狭める | 条件を大きく緩めて守りが穴だらけになる |
| 本当に止めるべき変更だった | 止まって正解。ゆっくり内容を確認する | 「またか」と中身を見ずに素通りさせる |
いちばんやってはいけないのは、誤検知に嫌気がさして安全網そのものを丸ごと外してしまうことです。煙感知器がうるさいから電池を抜く、というのと同じで、肝心なときに守ってくれなくなります。うるさいなら、感度を「少しだけ」調整する。この「少しだけ」の感覚が大切です。
誤検知を減らす考え方——「条件を具体的にする」
誤検知が多いときは、たいてい「止める条件がざっくりしすぎ」です。たとえば「重要そうな気配があったら全部止める」だと、関係ない変更まで巻き込みます。「この決まった対象に、この決まった種類の変更が来たら止める」というように、条件を具体的に絞るほど、誤検知は減っていきます。
ただし絞りすぎると、今度は本当に止めたい変更をすり抜けてしまいます。「うるさすぎず、ゆるすぎず」のちょうど良い点を、少しずつ調整して見つけていく。安全網は一度作って終わりではなく、育てていくもの、と捉えると気が楽になります。
この仕組みの正直な立ち位置
最後に、大事な前提を正直にお伝えします。私がこの記事のもとにしているシステムは観測・研究のためのもので、実際にお金を動かす操作(発注・売買)はしない設計です。フックは、その研究用システムを安全に育てるための「安全網」であって、何か特別な成果を保証する魔法ではありません。
フックにできるのは、あくまで「決めておいた条件で、機械的に止める」ことだけです。何を守るか・どこで止めるかを決めるのは人間の仕事です。ここを混同しないことが、安全に自動化と付き合うコツだと思っています。
まとめ:次の一歩
フック(hooks)は、非エンジニアにとってこそ心強い味方です。コードを深く書けなくても、「守りたいものを決めて、その関所に自動の見張りを置く」という考え方さえ持てば、AIの行き過ぎを機械的に止める安全網を作れます。
今日からできる最初の一歩は、設定ファイルを開くことではありません。次の1問に、紙でもメモでも答えてみることです。
- 「自分の作業で、絶対に勝手に変わってほしくないものは何か?」
これが1つでも言葉にできたら、あなたの安全網づくりはもう始まっています。最初は狭く、誤検知とは慌てず付き合いながら、少しずつ育てていきましょう。人間が見張らなくても機械が守ってくれる——その安心感は、AIと長く付き合っていくうえで大きな支えになります。
関連記事
無料テンプレート配布のお知らせ
Claude Codeを安全・便利に使うための設定テンプレート(CLAUDE.md)を無料配布しています。メールアドレスをご登録いただくと、すぐにダウンロードリンクをお送りします。
免責事項
本記事は執筆時点(2026年7月)の情報に基づいています。Claude Code・Git・各種フックの仕様は予告なく変更される場合があります。最新かつ正確な情報は各公式ドキュメント・公式サイトをご確認ください。本記事の内容を用いて生じたいかなる損害についても、筆者は責任を負いかねます。


コメント