mattpocock-git-guardrails-claude-code

mattpocock/skills · updated Apr 27, 2026

$npx skills add https://github.com/mattpocock/skills/blob/main/git-guardrails-claude-code/SKILL.md --skill git-guardrails-claude-code
0 commentsdiscussion
summary

Set up Claude Code hooks to block dangerous git commands before they execute.

skill.md

Setup Git Guardrails

Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.

What Gets Blocked

  • git push (all variants including --force)
  • git reset --hard
  • git clean -f / git clean -fd
  • git branch -D
  • git checkout . / git restore .

When blocked, Claude sees a message telling it that it does not have authority to access these commands.

Steps

1. Ask scope

Ask the user: install for this project only (.claude/settings.json) or all projects (~/.claude/settings.json)?

2. Copy the hook script

The bundled script is at: scripts/block-dangerous-git.sh

Copy it to the target location based on scope:

  • Project: .claude/hooks/block-dangerous-git.sh
  • Global: ~/.claude/hooks/block-dangerous-git.sh

Make it executable with chmod +x.

3. Add hook to settings

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.

4. Ask about customization

Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.

5. Verify

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.

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.575 reviews
  • Hana Gonzalez· Dec 20, 2024

    mattpocock-git-guardrails-claude-code reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Henry Rao· Dec 16, 2024

    Solid pick for teams standardizing on skills: mattpocock-git-guardrails-claude-code is focused, and the summary matches what you get after install.

  • Kwame Kim· Dec 16, 2024

    mattpocock-git-guardrails-claude-code has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Isabella Park· Dec 8, 2024

    mattpocock-git-guardrails-claude-code has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Benjamin Liu· Dec 4, 2024

    mattpocock-git-guardrails-claude-code fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Ama White· Nov 27, 2024

    mattpocock-git-guardrails-claude-code fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Henry Patel· Nov 23, 2024

    mattpocock-git-guardrails-claude-code has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Hana Reddy· Nov 11, 2024

    I recommend mattpocock-git-guardrails-claude-code for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Henry Gill· Nov 7, 2024

    We added mattpocock-git-guardrails-claude-code from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Ava Patel· Nov 7, 2024

    mattpocock-git-guardrails-claude-code fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

showing 1-10 of 75

1 / 8