开发与工程 destructive-command-preventiongit-safetyfilesystem-safetyshell-analysisaudit-loggingcodexnode-js

CC Safety Net 安全拦截器

在 AI 编程代理执行前拦截破坏性 Git 和文件系统命令。

FollowSkills 评估 · FSRS-2.0
不推荐
53/ 100 五分制 2.7 / 5
信任安全17 / 25 · 3.4/5

证据显示工作流要求预览新增或合并的 JSON、保留无关配置、执行验证,并规定自定义规则只能增加限制且配置错误时 fail-closed;因此具备一定的最小化与恢复意识。扣分原因是多次使用 `npx -y` 获取并执行未固定版本的外部包,写入用户或项目配置前没有明确的最终确认步骤,也未说明完整回滚方案;发布者身份亦未由 FollowSkills 注册表验证。

可靠稳定8 / 20 · 2.0/5

证据显示流程包含文档查询、现有配置检查、规则生成、同步、验证、测试、列表检查及失败时展示原始错误,且有明确的作用域和合并要求。扣分原因是该技能依赖运行时网络、Node.js/npx 与包发布状态,未提供静态可复现的命令输出;关键规则路径未在所给证据中直接执行验证,异常输入和工具不可用时的处理仍不完整。

适用触发9 / 15 · 3.0/5

证据显示目标是为 CC Safety Net 配置用户级、项目级或 GitHub 共享规则,覆盖添加、编辑、禁用、迁移和解释等场景,并区分本地与共享规则路径。扣分原因是触发条件仍较宽泛,未明确非适用场景、输入输出模板或何时必须停止询问;没有中文语言支持证据,且核心 `npx` 与 GitHub/远程规则流程可能受中国大陆网络可达性影响。

规范维护9 / 15 · 3.0/5

证据显示技能有清晰的工作流、规则约束、作用域说明、迁移指导和验证清单;仓库材料还提供 MIT 许可证、安全政策、版本号、CI 与文档入口。扣分原因是技能本身没有版本、变更记录、维护责任或更新路径说明,且依赖和故障排查主要委托给远程 `rule doc` 输出,渐进披露和示例不足。

有效结果6 / 15 · 2.0/5

证据显示该技能能够把用户意图转换为 rulebook JSON,编辑对应文件并执行同步、验证和测试,核心配置任务的直接价值明确。扣分原因是静态阅读无法证明命令实际生成正确配置或覆盖全部规则场景,且结果依赖外部 CLI 文档与网络;用户可能仍需处理未展示的具体错误或环境问题。

证据核验4 / 10 · 2.0/5

证据包括 revision 固定的源文件、README 中的能力说明、CI 工作流和提交的测试文件,具备一定审计基础。扣分原因是所给测试主要覆盖 CLI 状态线和命令路由,没有直接覆盖该技能的 rule 配置流程;未执行任何命令,也没有第三方或独立复现证据,因此仅给有限分数。

证据充分度: 评估于 2026年7月19日 审查版本 9fa3c5bdd927
使用前请注意
  • 安装和执行流程使用未固定版本的 `npx -y cc-safety-net`,应确认包来源、版本和网络可达性后再运行。
  • 该技能会修改用户或项目规则配置;写入前应人工审阅预览并保留可恢复的备份。
  • 静态材料未证明自定义规则配置路径和测试流程在当前环境中可执行。
  • 不要把 fail-closed 视为完整安全边界,仍应结合沙箱、权限控制和版本锁定。
查看完整评分方法 →

它能做什么 & 适用场景

CC Safety Net 是一个 PreToolUse hook,在 AI 编程代理运行命令前分析并阻止破坏性 Git 和文件系统操作。它支持 Claude Code、Codex、Gemini CLI、GitHub Copilot CLI、Kimi Code、OpenCode 和 Pi,并可运行于 Windows、macOS 和 Linux。项目按命令语义分析操作,能够识别 shell 包装器和解释器单行代码。它适合需要硬性命令防护、审计日志和自定义规则的 AI 编程环境。

拦截 AI 编程代理发起的 Bash 或相关命令,分析 rm、git reset --hard、git checkout --、git push --force、git stash clear、git clean -f、find -delete、dd、mkfs 和 shred 等操作;递归检查 bash -c、sh -c 等 shell 包装器,最多分析 10 层;检查 python -c、node -e、ruby -e 和 perl -e 中的破坏性代码;在默认或严格模式下对格式错误、无法解析的输入或无效配置采取阻止处理;读取用户或项目范围的规则簿;将被阻止的命令写入 ~/.cc-safety-net/logs/<session_id>.jsonl,并自动脱敏秘密信息。

  1. 使用 Claude Code 或 Codex 修改真实项目,希望阻止 rm -rf、git reset --hard 等误操作的开发者。
  2. 在项目目录可写的沙箱环境中工作,但仍需要防止 Git 丢弃、强制推送或目录删除的团队。
  3. 需要在 Windows、macOS 和 Linux 上统一拦截破坏性命令的工程团队。
  4. 希望通过用户级或项目级规则簿增加自定义阻止规则的维护者。
  5. 需要查看被拦截命令及会话记录,以便审计 AI 编程代理行为的团队。

优缺点一览

优点
  • 按命令语义分析,能够处理参数重排、shell 包装器和解释器单行代码。
  • 默认对格式错误、无法解析的命令和无效配置采取故障关闭策略。
  • 支持七种 AI 编程代理 CLI 以及 Windows、macOS 和 Linux。
  • 提供自定义规则簿、SHA-256 固定的 GitHub 规则源和自动脱敏审计日志。
  • 采用 MIT 许可证。
局限
  • 需要 Node.js 18 或更高版本。
  • 部分安装和规则配置依赖具体 CLI,不能仅凭 README 确定通用 Agent Skill 文件夹的安装方式。
  • 安全拦截不是完整沙箱;项目明确建议与沙箱结合使用。
  • 严格模式可能因无法解析命令而阻止执行;OpenCode 还可能使用过期缓存插件版本。
  • SKILL.md 未缓存,无法核实其具体 frontmatter、正文和标准技能目录结构。

如何安装

Skill path 未提供,且 SKILL.md 未缓存;README 只提供各 CLI 的安装方式。Codex:先在 ~/.codex/config.toml 中启用 [features] plugin_hooks = true,然后运行 codex plugin marketplace add kenryu42/cc-marketplace,启动 Codex,在 TUI 中运行 /plugins,选择 [cc-marketplace] 并安装插件,再运行 /hooks,选择 safety-net PreToolUse hook 并按 t 信任。Claude Code:运行 /plugin marketplace add kenryu42/cc-marketplace、/plugin install safety-net@cc-marketplace、/reload-plugins。Gemini CLI:运行 gemini extensions install https://github.com/kenryu42/gemini-safety-net。Copilot CLI:运行 /plugin install kenryu42/copilot-safety-net。Kimi Code:运行 npx -y cc-safety-net hook install --kimi-code。OpenCode:运行 opencode plugin -g cc-safety-net。Pi:运行 pi install npm:cc-safety-net。

如何使用

安装并启用对应 CLI 集成后,让代理执行常规命令即可由 hook 自动检查。可运行 npx cc-safety-net doctor 验证安装并执行自测,运行 npx cc-safety-net explain "git reset --hard" 查看逐步分析结果;两者均支持 --json。可通过 CC_SAFETY_NET_STRICT=1、CC_SAFETY_NET_PARANOID=1、CC_SAFETY_NET_PARANOID_RM=1、CC_SAFETY_NET_PARANOID_INTERPRETERS=1 和 CC_SAFETY_NET_WORKTREE=1 调整模式。

对比同类

与工作区可写沙箱相比,CC Safety Net 处理的是沙箱仍可能允许的操作,例如项目目录内的 git reset --hard、git push --force 和 rm -rf。沙箱负责限制写入范围,CC Safety Net 负责拦截破坏性命令;README 建议两者结合使用。

常见问题

它需要什么运行环境?
README 明确要求 Node.js 18 或更高版本,并支持 Windows、macOS 和 Linux。
它会记录被阻止的命令吗?
会。每条被阻止的命令写入 ~/.cc-safety-net/logs/<session_id>.jsonl,并自动脱敏秘密信息。
无法解析的命令会怎样?
在严格模式下,无法解析的命令会被阻止;格式错误的 hook 输入、无效配置和损坏的规则簿默认也会阻止而不是放行。
它能替代沙箱吗?
不能。README 说明沙箱和 CC Safety Net 防护范围不同,建议结合使用。

相关 Skills