From mattpocock-skills
Sets up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D) before execution. Useful for preventing destructive git operations in Claude Code.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mattpocock-skills:git-guardrails-claude-codeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.
Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.
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 access these commands.
Ask the user: install for this project only (.claude/settings.json) or all projects (~/.claude/settings.json)?
The bundled script is at: scripts/block-dangerous-git.sh
Copy it to the target location based on scope:
.claude/hooks/block-dangerous-git.sh~/.claude/hooks/block-dangerous-git.shMake it executable with chmod +x.
Add to the appropriate settings file:
Project (.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
Global (~/.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
If the settings file already exists, merge the hook into existing hooks.PreToolUse array — don't overwrite other settings.
Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.
Run a quick test:
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
Should exit with code 2 and print a BLOCKED message to stderr.
npx claudepluginhub esonhugh/marketplace --plugin mattpocock-skillsSets up PreToolUse hooks in Claude Code to block dangerous git commands (push, reset --hard, clean, branch -D). Useful when you want to prevent accidental destructive git operations.
Installs PreToolUse hooks that block dangerous git commands (push, reset --hard, clean, branch -D, checkout ., restore .) before execution.
Installs PreToolUse hooks that block destructive git/shell commands (force-push to protected branches, git reset --hard with unstaged work, rm -rf outside worktree). Useful before unattended runs or after a near-miss.