Git安全护栏
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/git-guardrails-claude-code。
技能介绍
要解决的具体问题
自动化 agent(如 Claude Code)执行 Git 命令时,易出现误操作:比如误执行 git push 推送未验证的代码、用 git reset --hard 清除未保存的修改、或通过 git branch -D 删除关键分支,这些破坏性操作可能导致代码丢失、协作混乱甚至生产环境故障。而 agent 通常缺乏“命令危险程度判断”能力,需要一道硬护栏在命令执行前拦截风险。
技能如何工作
作为安全配置助手,该技能核心是为 Claude Code 配置 PreToolUse 钩子,在 Git 命令执行前完成拦截。关键步骤包括:
- 确定范围:根据需求选择配置到本项目(
.claude/settings.json)或所有项目(~/.claude/settings.json); - 放置钩子命令:在目标位置(项目
.claude/hooks/或全局~/.claude/hooks/)准备可执行文件,逻辑为读取工具输入 JSON 的command字段,匹配拦截模式则非0退出并打印BLOCKED,否则放行(技能仅规定行为,不提供脚本); - 写入设置:将钩子加入对应
settings.json的hooks.PreToolUse(matcher 为Bash),若已有设置则合并而非覆盖; - 定制拦截:按需求增删被拦截的 Git 命令;
- 校验有效性:用模拟输入(如
{"tool_input":{"command":"git push origin main"}})验证,预期退出码2且stderr打印BLOCKED。
适用边界与注意点
该技能仅描述配置方法与钩子逻辑(instruction-only),不附带可执行脚本文件,钩子命令的实现需用户/环境自行提供。被拦截的 Git 命令包括:git push(含--force)、git reset --hard、git clean -f与-fd、git branch -D、git checkout .与git restore .。配置后,所有经 Bash 执行的 Git 命令受钩子约束,与协作类技能(如 resolving-merge-conflicts)使用时,以护栏为优先拦截标准。
使用场景
- 开发时担心agent误推送未验证代码到远程仓库,需要阻止其执行git push操作
- 整理项目分支时怕agent误删关键分支,需要拦截git branch -D这类破坏性命令
- 清理代码时担心agent误用git reset --hard清除未保存的修改,需要前置阻止
- 协作开发中怕agent误执行git clean -f删除未纳入版本控制的文件,需要限制其行为
适合人员
- 使用Claude Code编写代码的开发者,需要防止agent误执行破坏性Git命令
- 管理团队代码仓库的负责人,希望为agent添加Git操作硬约束避免协作故障
- 负责维护自动化开发流程的工程师,需要在命令执行前拦截风险操作
- 参与多人协作项目的成员,担心agent误删分支或清除文件影响进度