セーフティガード — 破壊的な操作を防止する
使用するタイミング
- プロダクションシステムで作業するとき
- エージェントが自動実行されているとき(フルオートモード)
- 特定のディレクトリに編集を制限したいとき
- 機密性の高い操作(マイグレーション、デプロイ、データ変更)を行うとき
仕組み
3つの保護モードを提供します:
モード 1: 注意モード
実行前に破壊的なコマンドをインターセプトし、警告を表示します:
監視対象パターン:
- rm -rf(特に /、~、またはプロジェクトルート)
- git push --force
- git reset --hard
- git checkout .(すべての変更を破棄)
- DROP TABLE / DROP DATABASE
- docker system prune
- kubectl delete
- chmod 777
- sudo rm
- npm publish(誤公開)
- --no-verify 付きのコマンド
検出時:コマンドの内容を表示し、確認を求め、より安全な代替案を提案します。
モード 2: フリーズモード
ファイル編集を特定のディレクトリツリーにロックします:
/safety-guard freeze src/components/
src/components/ 以外への書き込みや編集はブロックされ、その理由が説明されます。エージェントに1つの領域に集中させ、関係のないコードに触れさせたくない場合に便利です。
モード 3: ガードモード(注意モード + フリーズモードの組み合わせ)
両方の保護が有効になります。自律エージェントに最大限の安全性を提供します。
/safety-guard guard --dir src/api/ --allow-read-all
エージェントはどこでも読み取り可能ですが、書き込みは src/api/ のみ可能です。破壊的なコマンドはすべての場所でブロックされます。
ロック解除
/safety-guard off
実装
PreToolUseフックを使用して、Bash、Write、Edit、MultiEditの各ツール呼び出しをインターセプトします。実行を許可する前に、コマンドやパスをアクティブなルールと照合します。
統合
codex -a neverセッションではデフォルトで有効にする- ECC 2.0 の観測可能性リスクスコアリングと組み合わせる
- ブロックされたすべてのアクションを
~/.claude/safety-guard.logに記録する