SuperAPI AI 工具集

git-guardrails

智能体与模型

查看项目

更新于 10-15 20:35

技能介绍

用途:为 Claude Code 设置 PreToolUse 钩子,在 AI 代理执行前拦截并阻止危险 git 命令,防止破坏性操作。

主要能力:拦截并阻止 git push 全部变体、git push --force、--force-with-lease、git reset --hard、git clean -f/-fd、git branch -D、git checkout .、git restore .,以及在 main/master 上的 rebase。被阻止时 Claude 会收到无权限提示,需用户手动执行。

使用方式:先确认安装范围(项目 .claude/settings.json 或全局 ~/.claude/settings.json);将 reference/block-dangerous-git.sh 复制到对应 hooks 目录并 chmod +x;在设置文件的 hooks.PreToolUse 数组中加入 matcher 为 Bash 的 command 钩子,项目范围用 "$CLAUDE_PROJECT_DIR"/.claude/hooks/block-dangerous-git.sh,全局用 ~/.claude/hooks/block-dangerous-git.sh;已有设置需合并而非覆盖。可选自定义增删拦截模式,如增加 git stash drop、git tag -d,或仅拦截 push 的 force 变体。验证:echo '{"tool_input":{"command":"git push origin main"}}' | <脚本路径> 应退出码 2 并输出 BLOCKED;echo '{"tool_input":{"command":"git status"}}' | <脚本路径> 应退出码 0。

适用场景:希望防止 AI 代理执行破坏性 git 操作、为新项目添加 git 安全护栏时。

限制:依赖 jq 解析输入,未安装 jq 时钩子会 fail open(放行所有命令),需安装并确认;仅拦截 AI 代理执行的命令,用户仍可在终端手动运行任意 git 命令;不修改 git 配置,只拦截 Claude Code 工具调用;模式使用正则匹配。