MITBenAHammond/code-auditor-mcp

Code Auditor

Code Auditor читает весь ваш код и говорит, что с ним не так — включая проблемы, которые существуют только между файлами. Установите один навык, и агент будет поддерживать порядок при каждой правке.

Две команды для установки везде:

npm install -g code-auditor-mcp
code-audit install --agent all

Claude Code, Cursor, Codex, Gemini CLI и любой агент со SKILL.md. Блокирующие хуки в Claude Code и Codex; отчётность через MCP везде. code-audit install --list показывает матрицу поддержки.

Как это работает

Унаследовали кодовую базу? Возвращаетесь к той, которую не трогали месяцами? Быстро что-то собрали и теперь хотите понять, что внутри? Запустите аудит один раз, чтобы увидеть всю картину, и пусть агент поддерживает чистоту при каждой правке. В любом случае анализ детерминирован.

Наведите порядок в коде

code-audit audit

Запустите его на любом проекте TypeScript, JavaScript, Go или CSS/SCSS и получите полный структурированный отчёт — одно замечание на каждое правило. Исправьте реальные проблемы, зафиксируйте остальное как базовый уровень и начните с чистого листа.

  1. Детерминированный, а не модельный

    Анализ выполняют tree-sitter и ast-grep — замечания одинаковы при каждом запуске, с любой моделью или вообще без неё.

  2. Отчёт, с которым можно работать

    HTML · JSON · CSV · SARIF 2.1.0

    Панель покрытия показывает, что измерялось, затем файл, строка, серьёзность, идентификатор правила и сообщение для каждого замечания. Зафиксируйте известные проблемы как долг, и выделяться будут только новые.

Поддерживайте чистоту

code-audit changed

После установки агент проверяет только те файлы, которые он только что изменил. Замечания блокирующей серьёзности — по умолчанию critical и warning — обнаруживаются и исправляются до попадания в репозиторий, без повторного чтения всего кода, поэтому затраты на модель остаются низкими.

  1. Установите навык

    code-audit install --agent claude

    Добавляет SKILL.md и хук PostToolUse в вашего агента — Claude Code и Codex.

  2. Он проверяет diff

    code-audit changed --json

    Только изменённые файлы, а не весь проект. Хук срабатывает после каждого Write и Edit.

  3. Блокирующие замечания останавливают изменение

    hardcoded-secret · critical · src/login.ts:52

    Агент читает идентификатор правила, серьёзность, файл, строку и сообщение — исправляет — и в репозиторий попадает только код без блокирующих замечаний. Блокирующие серьёзности настраиваются через gateSeverities в .codeauditor.json.

TypeScript, JavaScript, Go и CSS/SCSS — разбор с помощью грамматик tree-sitter и ast-grep.

Что он находит

Десять анализаторов плюс три кросс-языковых, для TypeScript, JavaScript, Go и CSS/SCSS. Каждый пример ниже — реальное показание из реальной кодовой базы; большинство невидимы в отдельном файле.

N+1-запросы

for (const org of orgs) { await db.select().from(organizations) }

Цикл, отправляющий один запрос на каждую итерацию, найденный при обходе иерархии в живом модуле запросов. Каждый узел — ещё один запрос к базе.

Мёртвый модуль

compliance-enhanced.ts — 563 lines, 0 external importers

563 строки, ноль внешних импортёров, вытеснен более новыми соседями и всё ещё в дереве. На него ничего не ссылается, поэтому никто его не замечает.

Удалённая таблица всё ещё запрашивается

SELECT * FROM generation_queue // dropped in migration 0198

Миграция удалила таблицу, но восемь мест вызова по-прежнему на неё ссылаются. Схема ушла вперёд, код — нет.

Закодированный пароль

page.type('#password', 'vyy8AUVvish34Fq')

Пароль открытым текстом лежит в скрипте и готов попасть в релиз. Находится чтением файла — без запуска.

Полный каталог — десять анализаторов плюс три кросс-языковых

Принципы SOLID

Пять принципов, соблюдаемых механически.

DRY

Копипаст, пойманный до того, как станет долгом.

Доступ к данным и безопасность

SQL-инъекции, утечки между тенантами, N+1.

Качество документации

Недокументированные экспорты — будущие баги.

Лучшие практики React

Ошибки, которые переживают ревью.

Осведомлённость о схеме

Запросы, ссылающиеся на несуществующие столбцы.

Инвариантные правила

Правила вашей команды как жёсткие инварианты.

Определения схемы
кросс-языковой

Когда схема и код расходятся.

Контракт API
кросс-языковой

Эндпоинты, поля, авторизация против контракта.

Граф зависимостей
кросс-языковой

Циклы, связность, хабы, сироты.

Стили

Дрейф токенов, разрастание z-index.

Соглашения

Изучает конвенции вашего кода, помечает отклонения.

Междоменный

То, что видно только на границах.

По каждому изменению, при каждой правке

Ваш агент запускает code-audit changed по только что изменённым файлам, а не по всему проекту. Каждый анализатор возвращает структурированные замечания — файл, строка, серьёзность, идентификатор правила и сообщение, которое агент может прочитать и исправить.

JSON вывод
SARIF 2.1.0 вывод
CSV вывод
HTML вывод

Чего он не делает

Три честных границы, сказанные прямо.

Он не пишет исправления

Он сообщает. Правку делает человек — или агент. Code Auditor говорит, что и где не так; он никогда не правит код за вас.

Он не заменяет линтер

Запускайте его вместе с ESLint, Prettier и остальными. Линтер читает один файл; Code Auditor читает всю кодовую базу. Они отвечают на разные вопросы.

Правила размера — пороги, а не вердикты

Длина функции, число параметров, размер класса — это настраиваемые измерения, а не приговор. Это замечания: порядок действий, но никогда не вердикт вашему коду.