validate-branch-name — хук для Claude Code: проверка имён веток
Хук перехватывает команды Bash перед запуском и не даёт создать ветку, которая не подходит под Git Flow.
npx claude-code-templates@latest --hook git/validate-branch-nameЧто делает validate-branch-name
Хук висит на событии PreToolUse с матчером Bash. Как только Claude Code собирается выполнить команду в терминале, запускается скрипт .claude/hooks/validate-branch-name.py через python3, и он смотрит на имя ветки. Подходят три шаблона: feature/*, release/v*.*.*, hotfix/*. Всё остальное блокируется до выполнения команды.
Установка идёт через npx claude-code-templates@latest --hook git/validate-branch-name, настройка прописывается в .claude/settings.json. Скрипт лежит внутри проекта, поэтому запускается через python3 — интерпретатор должен быть доступен в окружении, иначе хук не сработает.
Если в команде ветку создают с другим префиксом, например fix/login, она не пройдёт. Это не баг, а весь смысл хука: он держит имена в одном формате, пока вы работаете с агентом.
Какие задачи решает
- запретить создание веток вне Git Flow
- поймать неверный префикс до выполнения команды
- удержать единый формат имён веток в проекте
- не дать агенту завести ветку вида
fix/...
Примеры запросов агенту
- Создай ветку
feature/user-authи переключись на неё - Заведи ветку
release/v1.2.0от текущего main - Сделай hotfix-ветку
hotfix/login-crash
Как установить validate-branch-name
1Через claude-code-templates
npx claude-code-templates@latest --hook git/validate-branch-name2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Вопросы о validate-branch-name
Как установить validate-branch-name в Claude Code?
Выполните npx claude-code-templates@latest --hook git/validate-branch-name. Хук пропишется в .claude/settings.json, а скрипт появится в .claude/hooks/.
Какие имена веток пропускает хук?
Только три вида: feature/*, release/v*.*.* и hotfix/*. Остальные префиксы блокируются.
Что нужно для работы хука?
В проекте должен быть python3, потому что команда хука вызывает скрипт через него.
Исходный текст
validate-branch-name.json · MIT
{
"description": "Validate Git Flow branch naming conventions before checkout. Ensures branches follow the pattern: feature/*, release/v*.*.*, hotfix/*. Prevents creation of branches that don't follow Git Flow standards.",
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/validate-branch-name.py"
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates