直近90日間で、 Claude Code が利用者の作業を消去する事故が連続して報告されている。 rm -rf の暴走で717GB が消えた事例、 DROP DATABASE で7.8GBのデータが消えた事例、 副の作業者が git checkout -- <files> で親の利用者の未公開の編集を巻き込みで消去した事例など。
本記事では、 これらの事故を予防する3つの PreToolUse hook を、 settings.json への3行の追加で1分で導入する手順を整理する。 cc-safe-setup の751件の例の中から、 90日間の事故の85パーセントを直接予防する最小の3件を選別した。
導入の前と後で、 同じ命令を claude で実行して、 阻止の挙動を確認できる。
3つの hook の選別の根拠
cc-safe-setup の examples/ の751件の hook の中から、 直近90日間の130件の事故の系統 (取り返し不能の bash の命令、 未公開作業の消去、 データベースの破壊)を全件で被覆する最小の3件を選別した。
選別の条件は次の3つ。
- 阻止の対象が明確で、 利用者の通常の運用を妨げない
- 例外の経路 (
node_modules等)が組み込み済みで、 即時に導入できる - 起源の事故が
GitHubの起票で確認できる
1件目, rm-safety-net.sh (取り返し不能の bash の命令の予防)
最初の hook は rm-safety-net.sh (以前の名前は destructive-guard.sh で、 5月11日に改名された)。 起源の事故は Reddit の717GB の消去の事例と、 起票56738 (24,472行のSQL の削除)と、 起票54912 (ファイルシステムの大小の区別の事故)。
rm -rf や git reset --hard や git clean -fd の系統を一括で阻止する。 node_modules や dist や build や /tmp の中の rm -rf は許可する判定が組み込み済みなので、 通常の運用は妨げない。
導入の手順。 cc-safe-setup を npm 経由で導入すると、 ~/.claude/hooks/rm-safety-net.sh に配置される。 ~/.claude/settings.json の hooks の PreToolUse の配列に、 一致条件を Bash、 命令を $CC_HOOKS/rm-safety-net.sh とする要素を1件追加する。
導入の後、 claude で rm -rf ~/Desktop 等の命令を実行すると、 阻止のメッセージが出る。 通常の rm -rf node_modules は通る。
2件目, block-database-wipe.sh (データベースの破壊の予防)
2番目は block-database-wipe.sh。 起源の事故は起票56738 (24,472行のSQL の削除)と起票56255 (7.8GBの PostGIS の DROP DATABASE)。
7つの系統のデータベースの破壊命令を阻止する。 Laravel の migrate:fresh、 Django の flush、 Rails の db:drop、 raw SQL の DROP DATABASE と TRUNCATE、 Symfony の schema:drop、 Prisma の migrate reset、 PostgreSQL の dropdb。
導入の手順は1件目と同じ形式で、 命令の経路を $CC_HOOKS/block-database-wipe.sh に置き換えて1行を追加する。
claude で psql -c "DROP DATABASE production" 等を実行すると阻止される。 テスト環境での migrate:fresh は環境変数 CC_DB_TEST_ENV=1 で許可できる。
3件目, uncommitted-discard-guard.sh (未公開作業の消去の予防)
3番目は uncommitted-discard-guard.sh。 起源の事故は起票57463 (副の作業者が sed の復旧として git checkout -- <files> を実行し、 親の利用者の未公開の編集を巻き込みで消去)。
git checkout -- . や git restore . や git checkout -- <files> で未公開の編集を捨てる命令を阻止する。 該当ファイルに変更がない場合は許可するので、 通常の運用は妨げない。
導入の手順は1件目と2件目と同じ形式で、 命令の経路を $CC_HOOKS/uncommitted-discard-guard.sh に置き換えて1行を追加する。
導入の後、 claude の副の作業者が git checkout -- <files> で未公開の編集を捨てようとすると、 阻止される。 親の利用者の作業が git stash list から復旧できる経路を残す。
3件の組み合わせの被覆の範囲
3件の hook で、 直近90日間の130件の事故の系統のうち、 取り返し不能の bash の命令 (6件)、 データベースの破壊 (2件)、 未公開作業の消去 (3件)の合計約110件 (85パーセント)を直接予防する。
残りの15パーセント (ファイルシステムの大小の事故、 ホームの場所の消去、 gh の道具の破壊操作、 副の作業者の範囲の越境)は、 追加の11件の hook で被覆できる。 全14件の構成は cc-safe-setup の examples/ で取得できる。
動作の確認の手順
3件の導入の後、 claude で次の命令を実行して、 阻止の挙動を確認できる。
-
rm -rf /tmp/test-dir-does-not-existは通る (/tmpは許可の経路) -
rm -rf ~/Desktop/testは阻止される (~/Desktopは許可の経路ではない) -
psql -c "DROP DATABASE test"は阻止される (環境変数の指定がない) - 変更ありの状態で
git checkout -- README.mdは阻止される
阻止のメッセージは標準エラーに出る。 claude の本体は阻止の理由を読み、 別の経路を提案する。
1分で導入する手順の要約
cc-safe-setup を npm 経由で導入する。 npx cc-safe-setup install を実行すると、 14件の例の hook が ~/.claude/hooks/ に配置される。
~/.claude/settings.json の hooks の PreToolUse の配列に、 3件の要素を追加する。 各要素の一致条件は Bash で、 命令の経路は順に $CC_HOOKS/rm-safety-net.sh、 $CC_HOOKS/block-database-wipe.sh、 $CC_HOOKS/uncommitted-discard-guard.sh の3件。
claude を再起動する。 これで導入は完了。
まとめ
直近90日間で連続している Claude Code の事故の85パーセントは、 3つの PreToolUse hook で予防できる。 cc-safe-setup の751件の例の中から、 起源の事故が GitHub の起票で確認できる最小の3件を選別した。
settings.json への3行の追加で導入できるので、 利用者の運用の最初の段階で組み込む事を推奨する。
3件で被覆できない事故 (ファイルシステムの大小、 ホームの場所の消去等)に対しては、 cc-safe-setup の追加の11件の hook で対応する。 全14件の構成は本記事の続編で整理する予定。
関連の事例集 (2026-05-22 launch)。 本記事の3件の hook が予防する事故の系統は、 Claim-Verify Handbook で130件の文書化を整理。 起票 #57288 の8.94米ドルの取引の事故、 起票 #57485 の80-135米ドルの API spend の事故、 起票 #57463 の git checkout の編集の消去の事故などの具体な事例の三段階の枠組み (operator の意図 → system の主張 → runtime の動作) での分類。 cc-safe-setup の14件の hook の選別の理由の理解の自然な延長。
- 本書 Claim-Verify Handbook (Gumroad、 19米ドル) — 130件の事例の文書化、 2026年5月22日発売
Claude Code は毎月のように仕様が変わり、費用の膨らみ方も事故の新種も毎月出ます。「先月から何が変わったか・今すぐ直すべき設定や貼るべき hook はどれか」を毎月15日ごろ短く受け取りたい人には、Claude Code 事故まとめ(無料・月次)もあります(本は腰を据えて読む手引き、便りは毎月の鮮度で走らせる運用の線、という住み分けです)。
この記事の3つの防衛 hook をさらに広げ、90日の事故報告で繰り返し出た事故そのものを症状別に復旧と予防までまとめたのが 事故防止本(¥800・第3章まで無料) です。無料の cc-safe-setup の hook が止めるのは、危ない操作を機械的に検知できる型です(この記事の85%がそこ)。一方で、取り消しの効かない削除をその場でどう判断するか、複数の作業者やチームで同じ事故をどう防ぐか、毎月のように出る新しい手口にどう先回りするかは、静的な hook だけでは埋まりません。残りのその部分を、実際に起きた事故から逆算して症状別に体系立てて埋めるのが本書です。無料で足りる方はそれで十分、自分の運用の穴を一度に塞いでおきたい方への手引きです。
普段 Amazon で本を読む方へ: 同じ事故防止本の Kindle 版もあります(Kindle Unlimited 対応): https://www.amazon.co.jp/dp/B0H69B7SVZ
ほかにも、800時間の運用データから、トークン消費の削減・複数ベンダー(Claude / Codex / Gemini / Copilot)の並行運用・サブエージェントの沈黙の失敗対策など、テーマ別の手引きを公開しています。気になる人は著者の本の一覧から、価格と評価を見て選べます。