AI Code Review

Ревьюер, который читает весь репозиторий, а не только диф

Skitflow проверяет каждый пулл-реквест по проиндексированному снимку базовой ветки, подтверждает каждую находку реальным кодом до публикации и выставляет готовность к мержу по шкале из 5. Self-hosted, на ваших моделях, внутри вашей сети.

#1248feat(billing): prorate plan downgrades
  1. queued
  2. indexing
  3. reviewing
  4. publishing
  5. completed

Готово к мержу

Готовность 4/5 проходит требуемый порог 3/5, блокирующих находок нет. Тот же вердикт уходит в check-run, по которому стоит branch protection.

mediumПовторная попытка может начислить возврат дваждыsrc/billing/prorate.ts:142
lowХелпер дублирует существующий clampToCyclesrc/billing/prorate.ts:201
Как проходит ревью

Каждая находка подтверждается кодом, прежде чем её увидит автор

Между генерацией кандидатов и публикацией стоит фаза Investigate: по каждому кандидату ищется доказательство в проиндексированном снимке базовой ветки, затем выносится один вердикт «подтвердить или убрать» на весь батч. То, что нечем подтвердить в коде, не публикуется.

Что ревьюер приносит в пулл-реквест

Контекст из всего репозитория

Ревью видит не только диф: контекст-пак собирается по изменённым файлам и их связям в проиндексированном снимке базовой ветки, плюс векторный поиск по вашей базе знаний.

Фаза Investigate

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

Шум отсекается политикой

Пороги severity и confidence по профилю строгости, подавление того, что ваша команда уже отклоняла, дедупликация повторов: всё это снимается до публикации, а не после.

Внутри вашей инфраструктуры

Ревьюер входит в состав self-hosted Skitflow: код, индекс и векторы остаются в вашем кластере, модели подключаются через ваш AI-шлюз.

Готовность к мержу

Один балл от 0 до 5, он же стоит в check-run

Балл выводится из опубликованных находок по понятным правилам, а не из настроения модели. Блокирующая severity никогда не даёт 5/5, а много мелочи опускает балл так же, как одна серьёзная проблема.

БаллКогдаПочему
5/5Одна находка не выше medium либо чистое ревью, в котором модель уверенаНечего исправлять до мержа
4/52–4 находки, ни одной выше mediumОграничение по количеству
3/55–9 находок, ни одной выше mediumОграничение по количеству
2/5Есть находка severity high или находок 10 и большеПотолок по severity / по количеству
1/5Есть находка severity criticalПотолок по severity
без баллаКачество находок деградировало, балл не выставляетсяГейт закрывается, а не пропускает молча

Порог выбираете вы

Требуемый минимум задаёте вы. «Готово к мержу» значит, что балл не ниже минимума и нет блокирующих находок.

Один вердикт на два места

Вердикт check-run и строка готовности в summary-комментарии считаются из одного значения, поэтому гейт branch protection и обсуждение в пулл-реквесте не могут противоречить друг другу.

Когда находок нет

Чистое ревью не получает 5/5 автоматически: отдельный reflection-проход оценивает его от 0 до 10, а балл готовности равен этой оценке, делённой на два.

Severity, а не P0/P1

Пять уровней: info, low, medium, high, critical. High и critical считаются блокирующими и опускают потолок балла.

Сравнение

Наш ревьюер и хостед AI-ревьюеры

Возможности сопоставимы там, где они сопоставимы. В таблице только то, что продукт делает, без бенчмарков и процентов. Два отличия принципиальные: ревью живёт внутри вашей инфраструктуры и знает вашу деплой-топологию.

SkitflowТипичный хостед AI-ревьюер
Где выполняетсяSelf-hosted в вашем кластере, модели через ваш AI-шлюзSaaS вендора: код и индекс уходят наружу
КонтекстПроиндексированный снимок базовой ветки плюс векторный поиск по вашей базе знанийПо-разному; у многих только диф
Проверка перед публикациейФаза Investigate подтверждает или убирает каждого кандидата по кодуОбычно публикуется то, что сгенерировала модель
Сигнал для мержаБалл готовности 0–5 и check-run, по которому стоит branch protectionЧаще комментарий или непрозрачная оценка
Контроль шумаТри профиля строгости с явными порогами severity и confidence плюс подавление по отклонениям вашей командыПереключатель «придирчивость»
Ваши правилаReview skills организации: YAML, область действия по glob путей, до 200 на организациюФайл с промптом, обычно на весь репозиторий
Выбор моделиТиры fast / balanced / premium / auto через ваш шлюзМодель вендора, без выбора
Знание инфраструктурыСтроит инфра-граф: желаемое состояние, задеплоенное и то, что предлагает этот пулл-реквестНет: ревьюер не знает вашу деплой-топологию
Провайдеры сегодняGitHub, GitLab, GiteaКак правило, в первую очередь GitHub
Настройка

Строгость задаётся числом, а не настроением

Профиль задаёт два явных порога: минимальную severity и минимальную уверенность. Всё ниже порога не публикуется.

chill

Только medium и выше, уверенность не ниже 85. Для репозиториев, где важен только серьёзный сигнал.

standard · по умолчанию

Low и выше, уверенность не ниже 70. Баланс по умолчанию.

strict

Low и выше, уверенность не ниже 60. Больше находок, включая пограничные.

Чему научите, то и запомнит

Память ревью

Если команда отклоняет находки одного вида, они подавляются. Порог явный: доля отклонений 60% и выше, а не догадка модели.

Review skills

Правила вашей команды в YAML, с областью действия по glob путей. Skills остаются только руководством для ревью: они не могут запрашивать файлы, переменные окружения, сеть или сторонние эффекты.

База знаний

Ваши документы индексируются в векторы и подтягиваются по релевантности к файлам, которые затрагивает пулл-реквест.

Метки и описание

До трёх меток на пулл-реквест из вашей таксономии, плюс сгенерированное описание изменений и запись в changelog.

Модели и провайдеры

Вы выбираете, сколько думать над ревью

Любой тир разрешается через ваш собственный AI-шлюз, поэтому модель и доступы остаются вашими.

fast

Быстрый проход для небольших пулл-реквестов.

balanced · по умолчанию

Рабочий вариант по умолчанию.

premium

Самая сильная модель для изменений, за которые тревожно.

auto

Тир подбирается за вас.

Где работает сегодня

Каждый провайдер включается флагом раскатки на организацию.

GitHub

GitHub App: webhooks, check-run, инлайн-комментарии, команды в комментариях.

GitLab

Merge request'ы через токен подключения.

Gitea

Self-hosted Gitea через токен подключения.

Частые вопросы

Уходит ли код из моей сети?

Нет. Ревьюер входит в состав вашей установки Skitflow: индекс, векторы и находки живут в вашей базе, а вызовы моделей идут через ваш AI-шлюз.

А если модель придумает проблему, которой нет?

Для этого и нужна фаза Investigate: кандидат без доказательства в коде не публикуется. Если качество находок деградировало, балл готовности вообще не выставляется, и гейт закрывается, а не пропускает молча.

Может ли ревью заблокировать мерж?

Только через check-run, который вы сами добавили в branch protection, и только по вашему порогу готовности. Вердикт check-run и строка в summary считаются из одного значения.

Учится ли он на нашем проекте?

Да, в узком смысле: семейства находок, которые ваша команда систематически отклоняет, подавляются по явному порогу. Это не дообучение модели на вашем коде.

Какие хостинги кода поддерживаются?

Сегодня GitHub, GitLab и Gitea, каждый за флагом раскатки.

Подключите ревью к своему первому репозиторию

Включается на уровне организации, настраивается на уровне репозитория и работает на инфраструктуре, которая у вас уже есть.