用途
git-guardrails-claude-code 用于为 Claude Code 设置 Git 防护栏。它通过配置一个 PreToolUse 钩子,在 Claude 执行危险 git 命令之前进行拦截并阻止,从而降低误操作破坏仓库的风险。
主要能力
该技能会阻止以下危险 git 命令:
- git push(所有变体,包括 --force)
- git reset --hard
- git clean -f / git clean -fd
- git branch -D
- git checkout . / git restore .
当命令被阻止时,Claude 会看到一条消息,告知它没有权限访问这些命令。
使用方式
这是一个确定性的配置任务,需要按文档给出的 bash 代码块原样执行。文档特别强调“先复制、再验证”的顺序很重要:绝不能注册一个指向不存在脚本的钩子,否则每个会话或 Bash 调用都会因 /bin/sh: …/block-dangerous-git.sh: not found 而失败。
前置条件:必须安装 jq(可通过 command -v jq 检查),因为后续合并操作会用到它。
步骤概览:
- 询问安装范围:仅当前项目(.claude/settings.json)还是所有项目(~/.claude/settings.json),并据此设置变量。
- 复制钩子脚本并验证其已就位。捆绑脚本位于 scripts/block-dangerous-git.sh;通过 npx skills add 安装后位于 ~/.claude/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh。若从克隆仓库运行,可将 SRC 指向仓库副本。复制后需 chmod +x,并确认脚本存在且可执行,否则不得进入下一步。
- 注册 PreToolUse 钩子(使用幂等的 jq 合并)。命令通过 bash 调用,并通过 $HOME / $CLAUDE_PROJECT_DIR 解析路径(不使用裸 ~,因为 /bin/sh 不总能展开它)。标记 block-dangerous-git 使合并保持幂等,并便于 uninstall.sh 后续找到该钩子。
- 询问是否自定义:是否要从阻止列表中添加或移除模式,并相应编辑已复制的脚本(而非捆绑源)。
- 验证:例如用 git push origin main 测试应得到 BLOCKED 消息且 exit=2;用 git status 测试应 exit=0 且无输出。
适用场景
适用于希望防止 Claude Code 执行危险 git 命令、避免误推送或破坏性重置等操作的用户。可选择仅对单个项目生效,或对所有项目全局生效。
限制
使用前必须安装 jq。安装与配置需按文档给定的 bash 步骤执行,并遵循先复制脚本再验证的顺序。关于收费、价格、平台支持范围等信息,资料中暂未提供。