安全護盾 — 防止破壞性操作
使用時機
- 操作生產系統時
- 代理以自動模式(全自動模式)執行時
- 想限制編輯僅限於特定目錄時
- 執行敏感操作(遷移、部署、資料變更)時
運作原理
三種保護模式:
模式 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/ 之外的寫入/編輯操作都會被阻止並附上說明。適用於希望代理專注於某個區域而不觸及其他無關程式碼的情況。
模式 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