IVYXON
記事一覧に戻る
Hooks中級🧪 Recipe

「やらかしを未然に防ぎたい」Hooksでガードレールを作る

rm -rfの実行防止、機密ファイルへのアクセスブロックなど、Hooksで安全装置を作る方法。

2026年3月13日2分で読めます

なぜガードレールが必要?

Auto Acceptモードで作業してると、Claude Codeが予期しない操作をすることがある。Hooksで「やってはいけないこと」をブロックできる。

危険なコマンドをブロック

{
  "hooks": {
    "preToolUse": [
      {
        "matcher": "Bash",
        "command": "echo $CLAUDE_TOOL_INPUT | grep -qE 'rm -rf|drop table|git push.*--force' && echo 'BLOCKED: Dangerous command' && exit 1 || exit 0"
      }
    ]
  }
}

ブロックされるコマンド:

  • rm -rf
  • drop table
  • git push --force

機密ファイルの保護

{
  "hooks": {
    "preToolUse": [
      {
        "matcher": "Edit|Write",
        "command": "echo $CLAUDE_FILE_PATH | grep -qE '\\.env|credentials|secret' && echo 'BLOCKED: Sensitive file' && exit 1 || exit 0"
      }
    ]
  }
}

.envcredentialssecret を含むファイルの編集をブロック。

特定ディレクトリの保護

{
  "matcher": "Edit|Write",
  "command": "echo $CLAUDE_FILE_PATH | grep -q '/migrations/' && echo 'BLOCKED: Migration files are protected' && exit 1 || exit 0"
}

マイグレーションファイルの意図しない変更を防止。

全部Claude Codeに設定させる

Hooksで安全装置を設定して。
以下をブロックしたい:
- rm -rfの実行
- .envファイルの編集
- git push --force
- production を含むコマンドの実行
.claude/settings.json に書いて。

ブロックされたとき

Hookがブロックした場合、Claude Codeに理由が伝わる。必要なら:

さっきブロックされたけど、今回は意図的な変更だから許可して。
Hookを一時的に無効化して実行して。