用途:guard 用于在生产环境、敏感系统或破坏性操作附近工作时,按需启用安全护栏,防止会话中误执行危险命令。它不常驻,仅在调用 /guard 后对当前会话生效。\n\n主要能力:默认 careful 模式,检测到潜在破坏性操作时暂停并提示操作内容、影响与可逆性,由用户确认后才继续,不做强制拦截。检测范围包括 rm -rf、git reset --hard、git push --force、DROP TABLE、DELETE 无 WHERE、TRUNCATE、kubectl delete、docker rm、docker system prune、写入生产配置或 .env、修改 CI/CD 流水线等。freeze 模式让代理在指定目录/文件范围内进行 Edit/Write,作用域存入 guard/config.json,越界写入由代理自行拒绝,属于代理层纪律而非钩子强制拦截;unfreeze 解除限制并回到 careful 模式。\n\n使用方式:调用 /guard 激活,可指定模式;/freeze 或 /guard freeze 设定冻结范围;/unfreeze 解除。检查脚本 guard/bin/check-dangerous.sh 对每次 Bash 调用依次执行分层检查:先跑 block 规则(对完整命令字符串匹配,含 cat .env、find . -delete 等已知坏模式),再走允许列表(git status、ls、jq 在未命中 block 时短路通过),然后是阶段感知并发控制、项目内快速路径、冲刺阶段门(阻断 git commit/push 直到阶段图所需前置完成)、预算门和 warn 规则。被拦截时会给出更安全的替代命令。规则存于 guard/rules.json,含 ID、正则、类别、描述及替代建议,类别包括 mass-deletion、history-destruction、database-destruction、infra-destruction、production-access、remote-code-execution、security-degradation、safety-bypass,用户可自行添加。\n\n限制:careful 只警告不阻断;freeze 面向专注而非安全访问控制;guard 仅限当前会话,不跨会话持久。预算门是成本上限而非沙箱,不能防御仓库自身 git 配置触发的辅助程序,命令行中 -c、--ext-diff、--output、--exec-path= 等会转成命令执行的向量不予豁免。该脚本只是第一道防线,仍需人工判断。
guard
通用与其它
更新于 10-15 21:49