Claude Code は端末をフルに操作できます。rm -rf / を走らせてファイルシステムごと消すことが、実際に起きています。これは仮の risk ではありません。GitHub に報告された実際の事故です。
🆕 1,500ファイル・50GBが永久に消えた(2026年4月)
Claude がファイルをサブディレクトリへ移動し、その後で親ディレクトリを rm -rf した——移動したばかりのファイルごと破壊した。移動先が移動元の子だったという、計画の論理の失敗。
#49129 — 48時間で3件目のデータ消失
C:\Users ディレクトリ全体が NTFS ジャンクション経由で消えた
rm -rf が NTFS のジャンクションを辿り、ユーザープロファイルのディレクトリ全体を消した。文書も設定もインストール済みのプログラムも、すべて消失。
#36339 — 40件以上の反応
Remove-Item -Recurse -Force で全ソースコードが破壊された
Claude がリポジトリのルートで Remove-Item -Recurse -Force * を実行し、未 push のソースコードをすべて破壊した。
午前3時に force-push が共有ブランチの履歴を書き換えた
自律で動いていた Claude Code のセッションが、開発者が眠っている間に main へ force push し、共有ブランチの履歴を書き換えた。
🆕 Opus 4.7: 安全の分類器が壊れ、3日で23件以上のデータ消失(2026年4月)
auto モードの安全の分類器が Opus 4.6 に固定されていた。既定のモデルが Opus 4.7 になると分類器が機能せず、auto モードの利用者は安全の関門なしで走っていた。結果: ~/.ssh が消えた、git-credentials が消えた、bash_profile と zshrc が0バイトに切り詰められた。
hook はモデルに依存しません。どの Opus の版で走っていても効きます。
CLAUDE.md のルールはプロンプトの文脈の一部です。文脈が一杯になると、ルールは押し出されます。Claude はそれを無視できますし、実際に無視します。「rm -rf を決して走らせるな」というルールはお願いであって、強制ではありません。
Claude Code の Hooks はプロセスの層で、モデルの制御の外で動きます。終了コード2で終わる PreToolUse の hook は、その道具の呼び出しを止めます。モデルはこれを迂回できません。
destructive-guard.sh — rm -rf を止める hook:
#!/bin/bash
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
# Block rm -rf with dangerous targets
if echo "$COMMAND" | grep -qE 'rm\s+.*-[rRf]*[rR][rRf]*\s+(/|~|\$HOME|\.\.)'; then
echo "BLOCKED: Destructive rm command targeting root/home" >&2
exit 2
fi
exit 0
npx cc-safe-setup
rm -rf を止め、main への force push を防ぎ、秘密の漏洩を捕まえ、編集のたびに構文を検証します。9,200以上のテスト 734の hook
npx cc-safe-setup --verify
各 hook にテストの入力を送り、正しく止まることを確認します:
destructive-guard:
✔ rm -rf / → BLOCKED
✔ rm -rf node_modules → ALLOWED
8/8 hooks verified
npx cc-health-check
無料の20点の診断。80点を下回るなら、Claude Code の設定に隙間があります。
cc-safe-setup はオープンソースで、依存はなく、グローバルには何も入れません。すべての hook はローカルで動きます。GitHub でソースを見る。
さらに詳しく: 事故防止の実践ガイド(Zenn) · English version · 全ツール