Использование 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
👀 Смотрите также

Кула: Автономный мониторинг серверов Linux без зависимостей
Kula — это легковесный инструмент мониторинга Linux-серверов, который работает как единый бинарный файл без внешних зависимостей или баз данных. Он собирает системные метрики каждую секунду из /proc и /sys, сохраняет их во встроенном многоуровневом кольцевом буфере и предоставляет как веб-панель управления, так и интерфейс терминала (TUI).

Сервер Detrix MCP добавляет отладку в реальном времени для AI-агентов программирования.
Detrix — это бесплатный, открытый MCP-сервер, который позволяет совместимым с MCP агентам наблюдать за живыми переменными в выполняемом коде без перезапусков или изменений кода. Он поддерживает приложения на Python, Go и Rust, работающие локально или в Docker.

Cloudflare Dynamic Worker Loader: Изоляция AI-агентов с помощью изолятов
Динамический загрузчик воркеров Cloudflare, который теперь находится в открытой бета-версии, позволяет воркерам создавать новые воркеры с кодом, указанным во время выполнения, в изолированных песочницах с использованием изолятов V8, обеспечивая запуск в 100 раз быстрее, чем контейнеры, и без глобальных ограничений на параллелизм.

Sylve: Управляющая плоскость FreeBSD для виртуализации, контейнеризации и систем хранения данных
Sylve — это управляющая плоскость для FreeBSD с лицензией BSD-2, которая обеспечивает единый контроль над виртуальными машинами Bhyve, контейнерами FreeBSD Jails, хранилищем ZFS и сетевыми настройками. Она использует модель консенсуса RAFT для кластеризации и включает управление общими ресурсами Samba с автоматизацией снимков ZFS.