Использование pre-commit для повышения качества и безопасности кода, созданного с помощью ИИ.

Практическая настройка pre-commit для рабочих процессов с ИИ-кодированием
Разработчик на r/ClaudeAI поделился своим подходом к повышению качества кода при использовании ИИ-ассистентов для программирования, таких как Claude Code. Он использует pre-commit с детальным файлом конфигурации, чтобы выявлять устаревшие пакеты, уязвимости и проблемы с качеством до коммита кода.
Детали конфигурации
Файл .pre-commit-config.yaml включает несколько хуков:
- Базовое форматирование: trailing-whitespace, end-of-file-fixer, check-yaml, check-merge-conflict
- Для Go: golangci-lint (v1.64.0) с аргументом --timeout=5m, govulncheck, go test -short
- Документация: markdownlint-cli (v0.43.0), yamllint (v1.35.1)
- Проверка текста: vale (v3.10.0) с --config=.vale.ini для лингвистической проверки
- Безопасность: checkov для сканирования Infrastructure as Code и GitHub Actions
Установка и рабочий процесс
Установите pre-commit через:
brew install pre-commitили
pip install pre-commitЗатем настройте глобально:
pre-commit init-templatedir ~/.git-template
git config --global init.templateDir ~/.git-templateЭто гарантирует автоматический запуск pre-commit при клонировании или создании репозиториев с файлом конфигурации.
Стратегии интеграции
Разработчик использует Makefiles для проектов на Go, чтобы контролировать действия, которые может выполнять Claude Code, перенаправляя все команды go через makefile. Это предотвращает случайное создание бинарных файлов Claude и обеспечивает сканирование безопасности и управление уязвимостями во время сборки.
Для Java с Maven аналогичные проверки можно интегрировать в mvn clean verify, чтобы обеспечить проверки на уязвимости и сканирование безопасности.
Почему этот подход работает
Разработчик отмечает, что Claude Code предлагает код на основе своего обучения, который часто не учитывает требования безопасности или содержит уязвимости. Когда коммит не проходит из-за проверок pre-commit, Claude Code может обнаружить и исправить проблемы. Этот подход не мешает редактированию файлов, как могут мешать хуки Claude, потенциально экономя токены.
Он считает этот метод более эффективным, чем добавление хуков Claude для форматирования и сканирования, с меньшим использованием токенов и преимуществами для ручной разработки.
Дополнительные упомянутые инструменты
- act для локального тестирования GitHub Actions
- actlint для проверки конфигураций GitHub Actions
- vale для лингвистической проверки, особенно полезен для тех, для кого английский не родной
Разработчик подчеркивает, что этот подход работает независимо от используемого ИИ-ассистента или модели, поскольку даже продвинутые модели вроде Opus 4.6 могут генерировать небезопасный код на основе обучающих данных.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

Использование сервера MCP для оптимизации приложений React Native с помощью Claude Code
Сервер MCP передает данные в реальном времени из приложения React Native в Claude Code, выявляя проблемы производительности, такие как ненужные перерисовки и избыточные рендеры.

FUTO Swipe: Модели набора текста свайпом с открытым исходным кодом достигают точности крупных технологических компаний
FUTO выпускает модели свайп-тайпинга с открытым исходным кодом и набор данных из 1 млн свайпов. Энкодер (635K параметров) + ContextLM (1.5M) + декодер (304K) достигают ~4% частоты ошибок в топ-4. Полностью офлайн в FUTO Keyboard.

OpenClaw Nerve WebUI добавляет голосовое управление и панель управления командой.
Nerve — это веб-интерфейс для OpenClaw, предоставляющий универсальную панель управления для мониторинга и управления ИИ-агентами, с голосовым управлением через двойное нажатие Shift для интеграции с Whisper и возможностями создания команд под-агентов.

Agents Elements: панель управления macOS для установок Claude Code и Codex
Нативное SwiftUI-приложение для macOS, которое сканирует ~/.claude и ~/.codex, показывая установленные навыки, подагенты, команды, плагины, MCP-серверы, хуки и статус сессий с информацией об использовании токенов.