.cc-safety-net/ 下,每个克隆都会自动读取,成员无需任何操作。
所以最简的团队配置,就是确保每位成员都安装了 CC Safety Net。
确保每位成员都已安装
每位成员在每台机器上、为每个智能体 CLI 安装一次 hook。任何仓库都无需重复这一步:--claude-code、--codex、--cursor 等目标标志可非交互地安装单个目标;npx -y cc-safety-net install --help 列出全部标志。
自动化安装
把安装并入项目已有的初始化步骤。这一步取决于项目的语言和工具链:npm 项目的postinstall 脚本、Makefile 或 justfile 的初始化目标、dev container 的 postCreateCommand、mise 任务。没有初始化步骤的项目,把一行命令写进上手文档即可。
例如,在 npm 项目中:
- 初始化步骤往往也会在 CI 和容器里运行,而在那里安装智能体 hook 是无用功。上面的
process.env.CI守卫会在这些环境里跳过安装。 - 安装按机器、按智能体 CLI 进行,所以请选择团队实际使用的目标标志。混用多种 CLI 的团队更适合写明交互式一行命令。
统一仓库配置(可选)
成员自己的策略已经在 standard 预设下阻止破坏性命令和对机密的访问。只有团队想要的不止这些——某个特定预设、自定义阻止规则或额外的受保护路径——才需要把配置提交到.cc-safety-net/ 下。可提交的配置有两类:
.cc-safety-net/policy.json:稀疏的项目策略,叠加在每位成员的用户策略之上,涵盖安全预设、内置保护开关、单条规则覆盖和额外的受保护路径。合并契约见项目策略。.cc-safety-net/rule.json与.cc-safety-net/rules/:项目自定义规则。落盘的 rulebook 文件是普通的已提交文件,队友无需运行任何命令即可获得。格式见自定义规则。
1
提交项目策略
把团队要共享的策略字段写进提案文件,校验后应用:
policy check 打印相对于合并后生效策略的差异。你在终端确认该差异后,policy apply 才会写入 .cc-safety-net/policy.json。npx -y cc-safety-net gui 的策略标签页也能起草项目策略。保持文件稀疏,只设置团队要统一的字段;其余字段继续从每位成员的用户策略继承。2
添加项目规则
3
提交并验证
提交
.cc-safety-net/ 目录。推送前确认当前检出受到的保护符合预期:成员看到什么
项目策略按原样生效,削弱是可见的,不会无声发生。项目文件相对成员用户策略放宽的每个字段都会在status、doctor、状态行、explain 和 GUI 中产生一行报告,例如 project policy lowers level: strict -> standard 和 project policy disables rule <id>。完整列表见项目策略。
成员保有的边界:
- **成员的用户策略仍归成员所有。**项目文件只做叠加。未设置的字段继续继承,成员可以运行比项目基线更严格的用户策略。
- **审计始终是用户范围。**项目策略中的
audit部分会被忽略并报告。项目无法改变成员本地记录的内容。 - **项目规则无法触及用户规则。**指向用户范围规则的项目覆盖会被忽略并给出警告。
策略变更必须经过人
policy apply 在没有可确认的终端时拒绝运行,智能体对它的调用会被直接阻止,无论经由直接执行的二进制、npx/bunx/pnpx 还是运行时入口。预期流程正如上文。智能体可以起草提案文件并用 policy check 校验,但由人来阅读差异并应用。再加上策略文件本身的防篡改守卫,提交到仓库的策略变更总会经过人手,通常是一个改动 .cc-safety-net/ 的、经过评审的拉取请求。
持续验证
rule verify 离线校验已提交的规则配置和每个 rulebook 目录,可以直接放进 CI:
npx -y cc-safety-net status 查看生效策略,npx -y cc-safety-net doctor 做完整的安装检查。