git-guardrails-claude-code — скилл для Claude Code
Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения.
- Автор Matt Pocock
- Лицензия MIT
- GitHub ★ 302 251
- Установок 499 069
- Обновлён 2026-10-22
- Исходник показан ниже
Что делает git-guardrails-claude-code
git-guardrails-claude-code добавляет хук PreToolUse для Bash. Он перехватывает git push, включая варианты с --force. Также блокирует git reset --hard, команды git clean -f и git clean -fd, удаление веток через git branch -D, а также git checkout . и git restore ..
Скилл сначала уточняет область установки: текущий проект с .claude/settings.json или все проекты через ~/.claude/settings.json. Скрипт scripts/block-dangerous-git.sh копируется в каталог .claude/hooks либо ~/.claude/hooks, получает право на запуск через chmod +x, затем подключается в массив hooks.PreToolUse. Если настройки уже есть, хук нужно добавить без перезаписи других значений.
После установки можно изменить список запрещённых шаблонов в скопированном скрипте и проверить его через вход с tool_input.command. Это стоит ставить командам, которые хотят оставить Git-операции под контролем человека; для агента, которому намеренно разрешены push и очистка рабочего дерева, скилл будет мешать.
Какие задачи решает
- заблокировать
git pushперед запуском агентом - не дать выполнить
git reset --hard - остановить очистку файлов через
git clean -f - запретить удаление ветки командой
git branch -D - подключить проверку Git-команд к
PreToolUse
Как установить git-guardrails-claude-code
Команда из источника
/plugin marketplace add mattpocock/skillsКоманда из источника
/plugin install mattpocock-skills@mattpocockКоманда из источника
npx skills add mattpocock/skills --skill git-guardrails-claude-code -a claude-codeЧерез Skills CLI (Vercel)
npx skills add mattpocock/skills --skill git-guardrails-claude-code -a claude-codeВручную
~/.claude/skills/git-guardrails-claude-code/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/git-guardrails-claude-code/
Вручную
.agents/skills/git-guardrails-claude-code/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную
.cursor/skills/git-guardrails-claude-code/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
GitHub CLI (gh ≥ 2.90)
gh skill install mattpocock/skills git-guardrails-claude-codeВручную
.github/skills/git-guardrails-claude-code/SKILL.mdGemini CLI
gemini skills install https://github.com/mattpocock/skills --path skills/misc/git-guardrails-claude-codeВручную
.devin/skills/git-guardrails-claude-code/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Как пользоваться: примеры запросов
- «Установи git-guardrails-claude-code только для этого проекта.»
- «Настрой глобальный хук, который блокирует `git push`.»
- «Проверь, что хук остановит `git push origin main`.»
Исходный текст
SKILL.md · MIT
---
name: git-guardrails-claude-code
description: 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.
---
# 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](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`):
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
```
**Global** (`~/.claude/settings.json`):
```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 the 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:
```bash
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
```
Should exit with code 2 and print a BLOCKED message to stderr.
© Matt Pocock · MIT · mattpocock/skills
Вопросы о git-guardrails-claude-code
Как установить git-guardrails-claude-code в Claude Code?
Добавьте скилл командой npx skills add mattpocock/skills --skill git-guardrails-claude-code -a claude-code. Затем выберите установку в .claude/settings.json для проекта или в ~/.claude/settings.json для всех проектов.
Что делает git-guardrails-claude-code?
Он настраивает PreToolUse-хук для Bash и останавливает опасные Git-команды до выполнения Claude Code. При блокировке Claude получает сообщение, что у него нет полномочий на эту команду.
Какие Git-команды блокирует хук?
Хук запрещает git push, git reset --hard, варианты git clean -f, git branch -D, git checkout . и git restore .. Список шаблонов можно менять в скопированном скрипте.