/pre-commit-check
Проверки перед коммитом: security scan, lint, типы, debug-код. Всё в одной команде.
Описание
Простым языком
Перед тем как сохранить изменения в историю проекта — хорошо бы убедиться что всё в порядке. Нет паролей в коде, нет отладочных пометок, нет очевидных ошибок. /pre-commit-check делает все эти проверки разом — как чек-лист перед вылетом.
Раньше нужно было помнить про пять разных проверок по отдельности. Теперь одна команда /pre-commit-check — и видишь сразу все проблемы с указанием что именно исправить.
Что делает
/pre-commit-check запускает полный набор проверок staged изменений перед коммитом: security scan, lint, typecheck, поиск debug-кода, проверка форматирования. Одна команда заменяет пять. Результат: "готово к коммиту" или структурированный список проблем с severity.
Синтаксис
# Проверка staged изменений
/pre-commit-check
# Без аргументов. Анализирует git diff --staged.Пошаговый процесс
- Получает список staged файлов через
git diff --staged --name-only - Security: grep по паттернам (
API_KEY=,sk-,ghp_,PASSWORD=, хардкод секретов) - Lint: ESLint (JS/TS) или ruff check (Python) — только на staged файлы
- Typecheck:
tsc --noEmitилиpyright— только на staged файлы - Debug-код:
console.log,debugger,print(),breakpoint() - Format: prettier --check — без изменений, только проверка
- Показывает итог: готово / список проблем с Critical/Major/Minor
Примеры использования
Чистый результат
Написали фичу аккуратно — все проверки проходят. Видите чёткое "готово к коммиту".
/pre-commit-check
Staged файлов: 4
src/api/frameworks/route.ts
src/app/framework/page.tsx
src/lib/data.ts
src/types/index.ts
Security scan OK — секретов не найдено
ESLint OK — 0 ошибок, 0 предупреждений
TypeScript OK — 0 ошибок типов
Debug-код OK — console.log не найдено
Форматирование OK — всё отформатировано
Готово к коммиту.Проблемы найдены
Второпях оставили console.log и один тип с any. /pre-commit-check покажет точно что нужно исправить.
/pre-commit-check
Security scan OK
ESLint OK
TypeScript FAIL
[Major] src/api/frameworks/route.ts:67
Argument of type 'any' not assignable to 'FrameworkData'
→ заменить any на правильный тип
Debug-код WARN
[Minor] src/lib/data.ts:34
console.log('frameworks:', result)
→ удалить или /cleanup
Форматирование OK
Не готово к коммиту. Исправьте Critical/Major.Автоматизация
Integrate в git pre-commit hook — тогда проверки запускаются автоматически при каждом git commit. Если что-то нашлось — коммит блокируется до исправления.
# .git/hooks/pre-commit (установка):
#!/bin/sh
# Запуск через Claude Code hooks (альтернатива):
# .claude/settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": ["bash ~/.claude/hooks/pre-commit-check.sh"]
}]
}
}
# Хук проверяет git commit команды
# и запускает security scan автоматическиПроверка перед коммитом — это фильтр. В репозиторий попадает только то, что точно нормально.
> Пока нет комментариев
Связанный контент
Похожие инструменты
branch-guard
Блокирует прямой push в main/master. Предлагает создать PR через GitHub CLI.
Открыть →destructive-guard
Блокирует деструктивные bash-команды: rm -rf, DROP TABLE, git reset --hard. Спрашивает подтверждение.
Открыть →protect-secrets
Блокирует запись файлов с секретами: .env, токены, пароли, приватные ключи. Не даёт случайно закоммитить.
Открыть →security-scan
Автоматическое сканирование кода на SQL-инъекции, XSS и другие уязвимости при каждом Write/Edit.
Открыть →