git-safety-hooks

git-safety-hooks is a skill for Claude Code from ronmkr/PromptBook. It costs 60 tokens per session (588 once invoked), scanned B, a copy of git-guardrails-claude-code, Apache-2.0.

A setup guide for hooks that stop an coding agent from running dangerous Git commands before they execute.

In plain words
What is it for?
Use it to block commands such as force pushes, hard resets, forced cleans, branch deletion, and restoring or checking out all files.
Why use it?
It reduces the chance of accidentally deleting work, rewriting history, or pushing changes without permission.

Skill for Claude Code

Written for Claude Code: $CLAUDE_PROJECT_DIR variable. Also seen: reads .claude/ paths.

Good fit Use it to block commands such as force pushes, hard resets, forced cleans, branch deletion, and restoring or checking out all files.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ronmkr/promptbook/git-safety-hooks
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ronmkr/PromptBook --skill git-safety-hooks
Clone the repo
git clone --depth 1 https://github.com/ronmkr/PromptBook

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for git-safety-hooks

README.md
[![agentmods](https://agentmods.dev/badge/skills/ronmkr/promptbook/git-safety-hooks/github.svg)](https://agentmods.dev/skills/ronmkr/promptbook/git-safety-hooks)
Your own site
<a href="https://agentmods.dev/skills/ronmkr/promptbook/git-safety-hooks"><img src="https://agentmods.dev/badge/skills/ronmkr/promptbook/git-safety-hooks/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for git-safety-hooks

Your own site · 80×15
<a href="https://agentmods.dev/skills/ronmkr/promptbook/git-safety-hooks"><img src="https://agentmods.dev/badge/skills/ronmkr/promptbook/git-safety-hooks.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 60 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 588 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin 89% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00060 $0.00588
Opus 5 $0.00030 $0.00294
Sonnet 5 $0.00012 $0.00118
Haiku 4.5 $0.00006 $0.00059

Measured 9d ago against content hash 4f275f8fe679, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade B, and why

git-safety-hooks scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/block-dangerous-git.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

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

This is a copy

89% identical to git-guardrails-claude-code — 10 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/technical/git-safety-hooks/SKILL.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Setup Git Guardrails

Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before The Agent 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, The Agent 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.

Read the full file on GitHub · 96 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 96 lines · 60 tokens per session scan B 4f275f8fe679

Subscribe to this mod's changes

git-safety-hooks is a skill published in the GitHub repository ronmkr/PromptBook (2 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 60 tokens to every session and 588 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). It is 89% identical to git-guardrails-claude-code, differing in 10 lines, and is treated as a copy.

Related

Other skills, from other repositories

setup-pre-commit

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

twaldin/flt · 62 tokens

git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

twaldin/flt · 62 tokens

github-wake

Register an existing GitHub issue so the current Codex or Claude Code session is woken when its first future comment arrives. Use when work is genuinely blocked on a GitHub reply and the session must resume asynchronously.

pchalasani/claude-code-tools · 47 tokens

ccmanager-config

Set up, review, or repair a CCManager config — .ccmanager.json at a git repository root, or the global /.config/ccmanager/config.json. Use when someone wants ccmanager to launch a different agent CLI (codex, gemini, cursor-agent, copilot…), add command presets, run a command on session state changes or worktree…

kbwo/ccmanager · 123 tokens

github-explorer

Explore and summarize popular GitHub projects. Use when the user wants to discover trending GitHub repositories, analyze project details, or get summaries of popular projects.

echoVic/blade-code · 35 tokens

pi-package-sandbox-test

Use when verifying that published Pi packages install and load for normal users, including pi.dev package compatibility checks, release validation, Daytona sandbox tests, and package installability audits.

spences10/my-pi · 40 tokens