SuperAPI AI 工具集

git-guardrails-claude-code

编程与开发

查看项目

更新于 10-16 01:10

技能介绍

用途:为 Claude Code 设置 Git 防护栏,通过 PreToolUse 钩子在命令执行前拦截危险 git 操作。

拦截范围:git push(含 --force 等所有变体)、git reset --hard、git clean -f / git clean -fd、git branch -D、git checkout . / git restore .。命令被拦截时,Claude 会收到提示,告知其无权访问这些命令。

使用方式:先询问用户作用范围——仅当前项目(.claude/settings.json)还是所有项目(~/.claude/settings.json)。将自带脚本 scripts/block-dangerous-git.sh 复制到对应位置:项目为 .claude/hooks/block-dangerous-git.sh,全局为 ~/.claude/hooks/block-dangerous-git.sh,并用 chmod +x 赋予可执行权限。然后在对应设置文件中注册钩子:matcher 为 Bash,钩子类型为 command,项目作用域命令为 "$CLAUDE_PROJECT_DIR"/.claude/hooks/block-dangerous-git.sh,全局作用域命令为 ~/.claude/hooks/block-dangerous-git.sh。若设置文件已存在,将钩子合并进现有 hooks.PreToolUse 数组,不要覆盖其他设置。

自定义与验证:可询问用户是否增删拦截列表中的命令模式,并相应编辑脚本。验证方式为运行 echo '{"tool_input":{"command":"git push origin main"}}' | <脚本路径>,应返回退出码 2 并向 stderr 打印 BLOCKED 消息。

限制:资料未提供该技能的运行环境要求、版本兼容性及与用户自定义 git 包装脚本的交互情况。