Code Quality
проверяет качество кода ИИ-агентовв каталоге с 2026Агент больше не спрячет баг за зелёными тестами: шлюз ловит подделки

Code Quality

Оцените первым
Бизнес-модель
Бесплатно

Code Quality — детерминированный шлюз качества кода (quality gate) для ИИ-агентов программирования: Claude Code, Codex, Grok, pi, omp и OpenCode. Через Git-хуки и Stop-хуки он поможет понять, действительно ли агент починил код или просто «подогнал» тесты под зелёный цвет. Пригодится разработчикам и командам, которые отдают агентам реальную работу в репозитории. Инструмент открытый, распространяется под лицензией MIT.

Главная идея в том, что проверки не спрашивают мнения модели. Скрипт смотрит на дифф и либо пропускает его, либо возвращает код выхода 1 с отчётом, где указаны правило, файл и строка. Так агент не сможет уговорить шлюз, что «всё и так нормально». Если результат — GATE FAIL, у агента будет один раунд на исправление. Когда на изменённых строках не останется новых находок, он получит GATE PASS.

Прежде всего Code Quality поможет поймать подделку тестов. Классический трюк агента — пометить падающий тест как пропущенный через it.skip. Шлюз выдаст на это tamper/test-skipped. Удаление или ослабление утверждений тоже не пройдёт незамеченным: если toEqual вдруг превратился в toBeTruthy, в отчёте появится tamper/assertion-weakened. Заблокирована и правка baseline вместе с кодом (tamper/baseline-touched). А вот новый мок для тестируемого модуля попадёт в отчёт только как заметка, без блокировки. Таксономия подделок взята из исследования TRACE.

Для каждой изменённой функции действует одна и та же планка:

  • цикломатическая сложность — не выше 10;
  • метрика CRAP — не выше 30;
  • покрытие добавленных строк — не ниже 80%;
  • никаких новых циклических зависимостей и нового мёртвого кода;
  • никаких секретов.

Покрытие считается именно по диффу. Допустим, агент добавил 50 строк, а тесты задевают 31 из них. Тогда отчёт покажет cov/diff: 62% при минимуме 80%. Старый технический долг работе не помешает. Командой --update-baseline создаётся снимок, который фиксирует существующие находки как долг. Провал вызовут только новые проблемы на изменённых строках, так что легаси-проект можно подключить без предварительного рефакторинга.

Команда check на реальном репозитории отрабатывает за 3–19 секунд. Полный прогон с тестами и покрытием запускается вручную. Поддерживаются 12 языков через адаптеры: TypeScript, Python, Go, Rust, Java, Kotlin, C#, Swift, PHP, Ruby, C/C++ и Dart. Сложность считается через lizard, покрытие берётся из lcov. Под капотом также работают jscpd, ast-grep, gitleaks, osv-scanner, dependency-cruiser, knip, ESLint и Radon. Вся настройка живёт в одном файле .quality.toml, сервер не нужен.

Отдельно продумана защита от обхода. В репозитории с .quality.toml по умолчанию заблокированы git commit --no-verify и -n, git push --no-verify, а также подмена core.hooksPath через git -c или git config. Если такая строгость мешает, защиту можно отключить параметром block_bypass = false в секции [hooks].

Есть и опциональный классификатор Jev на основе модели. Он включается через [review] jev = true и задаёт пять откалиброванных вопросов «да/нет» о новых фрагментах тестов. Например, проверяет, не тавтологическое ли свойство проверяет тест и не скрывает ли мок изменение. Jev только добавляет заметки и никогда не меняет код выхода, поэтому детерминированность шлюза сохраняется. Для него понадобится ключ TypeSafe (TYPESAFE_API_KEY) или OpenRouter (OPENROUTER_API_KEY) в переменных окружения.

В Claude Code и Codex плагин ставится двумя командами через маркетплейс и подгружает хуки Stop и PreToolUse. В Codex эти хуки нужно просмотреть и подтвердить через /hooks. Для pi, omp и OpenCode есть свои способы установки. С Grok сложнее: на версии 1.0.40 хуки плагина не вызывались, поэтому их придётся установить глобально отдельной командой. После перемещения или обновления плагина эту команду нужно запустить заново. Можно поставить только навык через npx skills add, но тогда хуков не будет. Каждый репозиторий подключается командой install-hooks, при этом существующие хуки выстраиваются в цепочку. Для Claude Code, Codex, pi и OpenCode V2 плагин можно включить всей команде, закоммитив настройки проекта.

Для работы шлюза и shell-хуков нужен Bun. В OpenCode есть нюанс: попытку обхода инструмент заблокирует заранее, а при красном шлюзе напишет сообщение в сессию. Заставить агента сделать ещё один ход по событию простоя он не сможет. В документации есть справочник всех правил с пометками, что блокирует, а что только отмечается, описание адаптеров, настройка .quality.toml и хуков, а также SKILL.md — справочник, который читает сам агент.

Был ли материал полезен?
Поделиться

Похожие нейросети

Все нейросети →

Rejudge

Три модели проверяют код одного агента, четвёртая выносит вердикт

09.09.2026

Skills For Real Engineers

Настоящая инженерия вместо вайб-кодинга: навыки для работы с агентами

09.09.2026
Бесплатно

Agent Skills

Как научить ИИ-агента писать код как опытный разработчик

09.09.2026

Repowise

Код думает, а сервис уже давно всё знает наперёд

★ 5,0 · 1·09.09.2026

Нейросеть Code Quality была впервые опубликована 24-09-2026 21:18:02 и ещё не редактироваласьРедактор

Каталог приложений Telegram Mini Apps

340+ проверенных мини-приложений: нейросети, утилиты, игры. Открываются прямо в мессенджере — без установки.

Открыть →

Будьте в курсе новых нейросетей — подпишитесь на наш Telegram-канал

Ежедневные обзоры свежих AI-инструментов, лайфхаки и инструкции прямо в вашем мессенджере.

Подписаться
Бесплатно · Нейросеть

Генерация изображений прямо в Telegram

3 бесплатные генерации в день через нейросеть nano banana — просто подпишись на канал @n_seti

Быстро Точно Качественно
Попробовать @gen_neurosila_bot

Нейросети и ИИ-инструменты

Все теги →
github329 text-to-text183 ии-агенты142 api138 text-to-image136 tool117 self-hosted107 mcp76 desktop-приложение66 claude code55 языковая модель54 image-to-image53 text-to-video51 python47 каталог44 автоматизация рутины38 работа с pdf37 маркетинг34 voice-to-text33 создание чат-ботов32
AILibri – главная страница
Ctrl / ⌘+K

Избранные нейросети

Без регистрации. Список сохраняется в этом браузере.