
Claude Codeのhooksで事故を止める、制作会社の3つの使い方──実行前に止めるPreToolUse、編集後に整えるPostToolUse、待ちを知らせるNotificationと、入れる前の注意
この記事は、Claude Codeの hooks(フック)を使って、制作会社の作業の事故を止める方法を扱います。
「.env は触らないで」と書いたのに、触られた
CLAUDE.md に「.env と本番の設定は編集しない」と書いておいた。
それでも、ある日の作業で、AIが設定ファイルに手を入れようとした。
指示書に書いたことは、守られることが多くても、必ず守られるとは限りません。
公式ドキュメントも、CLAUDE.md は強制ではなく文脈として扱われると説明しています。
hooksとは、Claude Codeの作業の決まった時点で、自社が書いたコマンドを必ず実行させ、操作を止めたり整えたり知らせたりする仕組みである
黒字化の外科医です。Claude Codeの hooks を、事故を止める道具として解剖します。
hooks を使うべき理由は、三つあります。
第一に、AIの判断に頼らず、必ず動くから。
公式ドキュメントは、hooks を「決まった時点で必ず動く」決定的な制御として説明しています。
第二に、操作の前に止められるから。
PreToolUse(道具を使う前)の hook が終了コード2で終わると、その操作は止まり、理由がAIに伝わります。
第三に、権限モードを変えても止まるから。
公式ドキュメントでは、hook が deny を返した操作は、確認を飛ばす bypassPermissions のモードでも止まると説明されています。
Claude Codeのhooks、公式で確認できたこと
2026年10月27日に、公式ドキュメント(code.claude.com/docs の Automate actions with hooks、Hooks reference、Example settings files)で確認した内容です。
【書く場所】settings.json の "hooks"
~/.claude/settings.json(自分の全プロジェクト)
.claude/settings.json(プロジェクト、コミットして共有できる)
.claude/settings.local.json(自分だけ)/組織の管理設定 など
【制作会社がまず使う3つの時点】
PreToolUse:道具を使う前。止められる(終了コード2、または JSON で deny)
PostToolUse:道具が成功した後。もう起きた操作は取り消せない
Notification:Claude Codeが通知を出すとき(承認待ち、入力待ちなど)
【確認】
/hooks で、登録された hook を一覧で確かめられる今すぐ試せる:止めたい操作を hooks に落とすプロンプト
私はWeb制作会社の技術責任者です。Claude Codeの hooks で止めたい操作を整理してください。
(顧客名や秘密情報は入力しません)
【前提】
・これまでにAIでひやりとした操作:〔記載〕
・編集させたくないファイル(.env、ロックファイル、本番設定など):〔記載〕
・社員のPCのOS:〔記載〕
・すでに permissions の deny に入れているもの:〔記載〕
1. 止めたい操作を「permissions の deny で足りる」「hooks で中身を見て止める」「人のレビューで止める」に分ける。
2. hooks で止めるものについて、PreToolUse の matcher(Bash、Edit|Write など)と、判定の条件を書く。
3. hook が止めたときにAIに返す理由の文面を、短く書く。hooks工場:制作会社の3つの雛形
1. 守るファイルの編集を止める(公式の例)
公式ドキュメントの例をそのまま使います。`.claude/hooks/protect-files.sh` に保存します。
#!/bin/bash
# protect-files.sh
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
# Normalize Windows backslash separators so the patterns below match
FILE_PATH="${FILE_PATH//\\//}"
PROTECTED_PATTERNS=(".env" "package-lock.json" ".git/")
for pattern in "${PROTECTED_PATTERNS[@]}"; do
if [[ "$FILE_PATH" == *"$pattern"* ]]; then
echo "Blocked: $FILE_PATH matches protected pattern '$pattern'" >&2
exit 2
fi
done
exit 0`.claude/settings.json` に登録します。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/protect-files.sh"
}
]
}
]
}
}PROTECTED_PATTERNS に、自社の守るファイル(例:wp-config.php)を足します。スクリプトは jq を使い、macOS・Linuxでは実行の許可(chmod +x)が要ります。
2. 編集のあとに整形する
公式には、PostToolUse に `"matcher": "Edit|Write"` を指定し、編集したファイルに Prettier をかける例があります。書き方の統一を、人の注意ではなく仕組みで行えます。
3. 承認待ちを知らせる(公式の Windows の例)
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
}
]
}
]
}
}通知は個人の `~/.claude/settings.json` に入れます。承認待ちに気づかず止まっている時間が減ります。
計算例:入れる手間と、事故1回の手間(数字はすべて例)
hooks を作って試す時間:2時間 × 7,645円 = 15,290円
設定ファイルを壊して直す時間:8時間 × 7,645円 = 61,160円事故が1回でも防げれば、作る手間は回収できます。時間単価は例です。自社の数字に置き換えてください。
構造的なリスク
逆説を指摘しておきます。
hooks は、あなたのユーザーの権限で、どんなコマンドでも動かせます。公式も、ファイルを変更・削除できるため、入れる前に必ず中身を読み、試すよう警告しています。
リポジトリに入った hook のスクリプトは、取り込んだ全員のPCで動きます。
だから、hooks の追加と変更は、コードと同じくレビューを通します。
また、止める規則は hooks だけに頼らず、permissions の deny と sandbox を重ねます。
▶ Claude Codeのsettings.jsonをチームで共有する設定──共有・個人・組織の4つの置き場所、permissionsのallow・ask・denyの決め方、効かないときの確かめ方
よくあるQ&A
Q. Windowsでも動くか?
公式の例のうち、シェルスクリプトは Bash 向けです。hook ごとに `"shell": "powershell"` を指定して PowerShell で動かす方法も公式に載っています。社内の標準のOSで、まず1つ試してください。
Q. 「rm -rf」を止めたい。
公式には、Bash の PreToolUse で rm -rf を含むコマンドを終了コード2で止める組み合わせの例があります。あわせて、コマンドの書き方で規則をすり抜けることがある点も、公式が注意しています。
## 最後に
hooks は、指示書では守りきれない決まりを、操作の前で必ず止める仕組みです。
守るファイル、整形、通知の3つから小さく始め、追加と変更をレビューする会社だけが、AIに任せる範囲を広げても事故を増やさずにいられるのです。
hooks を含む設定ファイル一式と、点検の運用表は、導入設定キットにまとめました。
▶ Claude Code導入設定キット、制作会社がそのまま置くファイル一式──チーム共有・個人・組織のsettings.json、CLAUDE.mdの雛形、hooksの守りの設定、席の割当表と運用表
これまでの記事は、メンバーシップ「黒字化オペ室」でまとめて読めます。月額1,980円、記事2本分の金額です。詳しくはプロフィールから。
#Web制作会社 #ClaudeCode #hooks #事故防止 #AIコーディング #品質管理 #制作会社経営 #中小企業 #AI駆動開発 #生成AI