Git guardrails
Set up Claude Code hooks to block dangerous git commands before they execute. TRIGGER when: user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code. DO NOT TRIGGER when: user is asking about git workflow or branching strategy.From its SKILL.md
npx -y skills add DROOdotFOO/agent-skills --skill git-guardrailsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>`.
SKILL.md
2.3 KB, 467 tokens by cl100k_base, as published. Nobody here has run it
Git Guardrails
Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.
What You Get
- PreToolUse hook blocking destructive git operations
- Project-scoped or global installation
- Customizable blocked command patterns
- Verification test command
What Gets Blocked
git push(all variants including--force)git reset --hardgit clean -f/git clean -fdgit branch -Dgit checkout ./git restore .
When blocked, Claude sees a message telling it that it does not have authority to run these commands.
WRONG: no guardrails, Claude runs destructive commands silently
# Claude decides to "clean up" and runs:
git reset --hard HEAD~3 # 3 commits of work gone
git clean -fd # untracked files deleted
git push --force # rewrites shared history
CORRECT: hook blocks before execution
$ echo '{"tool_input":{"command":"git push --force"}}' | block-dangerous-git.sh
BLOCKED: git push is not allowed. Ask the user to run it manually.
Setup Steps
- Ask scope -- project (
.claude/settings.json) or global (~/.claude/settings.json)? - Copy hook script -- bundled at scripts/block-dangerous-git.sh. Copy to
.claude/hooks/(project) or~/.claude/hooks/(global). Make executable. - Add to settings -- see settings-config.md for the JSON
- Customize -- ask if user wants to add/remove patterns from the blocked list
- Verify --
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>should exit code 2 with BLOCKED message
Reference
| File | Topic |
|---|---|
| settings-config.md | Project and global settings JSON |
| scripts/block-dangerous-git.sh | The hook script |
What ships with it: 2 files
1.4 KB alongside SKILL.md, 1 of them executable
scripts/
- block-dangerous-git.shruns539 B
- settings-config.md879 B