git-guardrails-claude-code

AI 智能 社区
解读按原文结构重写,命令、链接、术语均保留;右侧可核对作者原始 SKILL.md

设计思路

git-guardrails-claude-code 是给 Claude Code 装一套「Pretool 拦截 hook」——危险 git 命令在执行前就被拦下来,agent 收到「你没有权限跑这个」的信号,避免 git push --force 这种破坏性动作被无意触发。和 gstack 的 careful 思路一致,但专注 git 命令、且通过 .claude/settings.json 的 PreToolUse hook 实现。

默认拦截清单

  • git push(包括 --force 各变种)
  • git reset --hard
  • git clean -f / git clean -fd
  • git branch -D
  • git checkout . / git restore .

被拦时 Claude 会看到一条「你没有权限访问这些命令」的消息。

安装步骤

Step 1:问范围 project 范围(.claude/settings.json)还是全局(~/.claude/settings.json)。

Step 2:复制 hook 脚本 bundled 脚本在 scripts/block-dangerous-git.sh,按范围拷到:

  • Project:.claude/hooks/block-dangerous-git.sh
  • Global:~/.claude/hooks/block-dangerous-git.sh

chmod +x 加可执行位。

Step 3:注册 hook 项目级 settings 里:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
          }
        ]
      }
    ]
  }
}

全局 settings 把 command 换成 ~/.claude/hooks/block-dangerous-git.sh。settings 已存在时合并进 hooks.PreToolUse 数组——别覆盖其它配置。

Step 4:定制清单 问用户要不要加 / 减拦截模式,按需改 hook 脚本里的 patterns。

Step 5:验证

echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>

应该退出码 2、stderr 打 BLOCKED 信息。

适合谁

  • 用 Claude Code 自动跑 git 操作的人
  • 给团队 / 客户机器装 agent 工具时想加 git 安全网
  • 历史上被 force-push 烧过、不想再来一次的工程师

不适合

  • 你专门要做 force-push 类操作的工作流(rebase + push)——会一直被拦
  • 不是 Claude Code 环境(hook 配置不通用)

配套

careful(更广义的 bash 危险命令拦截)、freeze(编辑路径围栏)、unfreeze(解除围栏);三者叠加做多层 agent 安全网。

流狐档案 作者与许可取自来源;运行、权限和网络为流狐检测或估算
流狐分类
AI 智能
作者声明 Agent
未找到明确声明;不据此推断已兼容或已测试
静态检查
88 / 100 · 启发式扫描,不代表运行安全
作者 / 版本 / 许可
@mattpocock · 未声明 license
流狐 Token 估算
低消耗
流狐接入估算
需简单配置
是否需要外部 API Key
未发现要求
检测到的系统要求
未声明
底层运行要求
未声明
检测到的文件与系统行为
  • 只读
  • 允许写入 / 修改
  • Shell 执行
检测到的网络行为
仅限本地
安装命令数
无(仅作为资料)

档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

输出预览 git-guardrails-claude-code.preview
作者没有在当前 SKILL.md 中定义固定输出样例。

讨论

基于 GitHub Discussions。登录 GitHub 即可参与讨论、点赞、订阅更新。