safety-guard

safety-guard

热门

使用此技能,防止在生产系统上工作或自主运行代理时执行破坏性操作。

23万Star
3.5万Fork
更新于 2026/7/19
SKILL.md
readonly只读
name
safety-guard
description

使用此技能,防止在生产系统上工作或自主运行代理时执行破坏性操作。

Safety Guard — 防止破坏性操作

何时使用

  • 在生产系统上工作时
  • 代理自主运行(全自动模式)时
  • 希望将编辑限制在特定目录时
  • 敏感操作期间(迁移、部署、数据更改)

工作原理

三种保护模式:

模式 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