Этот документ объясняет, как быстро читать PR-коммент Revieko и какие действия выбрать: принять, запросить правку, упростить, изолировать изменение или углубиться в полный отчёт.
Revieko — это радар для ревью, который подсвечивает места, где PR нетипично меняет структуру/поведение относительно привычного “рисунка” репозитория.
В отчёте есть три независимых слоя сигнала:
NET_IO/DB/FILE_IO/EXEC/LOG) и рядом какие источники (USER_INPUT/SECRET/...).Важное: это не SAST и не баг-файндер. Инструмент не “доказывает” ошибку — он помогает сфокусировать внимание ревьюера.
Обычно в GitHub вы видите:
Содержит:
Status, risk_level, ci_status, analysis full/partial),struct_risk,Markdown / JSON.Нужен, когда:
analysis=partial и важно понять, что именно было пропущено,Top-N hotspots в PR-комменте — это лимит вывода, а не ограничение понимания. Это “первые по приоритету” участки, чтобы не превращать комментарий в простыню.
Смотрите сразу 4 поля:
risk_level (low|medium|high)struct_risk (0–100)ci_status (ok|warn|fail)analysis (full|partial)Быстрое правило:
risk_level=high → почти всегда идём в hotspots и главный файл.analysis=full → весь код, который CodeGuard умеет анализировать в этом репозитории (на текущем этапе — Python), был обработан.analysis=partial → в PR есть файлы вне профиля анализа (например, YAML/CSV/Markdown и т.п.), и по ним CodeGuard не делал анализ. Python-часть PR при этом обработана полностью.Откройте Per-file structural risk и ответьте:
Если один файл тащит всё — ревью ускоряется: начинайте с него.
Откройте Top hotspots и пройдитесь по первым 3–5 строкам.
Для каждого hotspot ответьте:
Если в колонках Effects / Taint / Control что-то есть — начинайте с них. Это обычно более “прикладной” риск, чем чистая форма кода.
После просмотра нескольких hotspots вы должны выбрать один из путей:
risk_level и struct_riskstruct_risk — число 0–100: “насколько структура выбивается”.risk_level — дискретный уровень для быстрого решения.Как читать:
low → обычно достаточно убедиться, что hotspots не содержат неприятных effects/taint.medium → почти всегда смотрим top-3 hotspots.high → смотрим главный файл + top hotspots и решаем: simplify/isolate/обосновать.ci_statusЭто сигнал для CI/дашборда:
ok → инструмент не видит проблемных пороговых ситуаций.warn → “обязательно посмотри глазами”.fail → в строгом режиме CI это может блокировать (зависит от политики проекта).analysis: full|partialfull → CodeGuard проанализировал весь поддерживаемый код в PR (на текущем этапе — Python).partial → PR содержит изменения в файлах, которые CodeGuard не анализирует (не-код/неподдерживаемые расширения). В этом режиме отчёт “частичный” не потому, что Python разобран не до конца, а потому что часть PR лежит вне области анализа.Правило ревью:
kind и scorekind — тип локальной аномалии (что именно “не похоже на норму”).score — приоритет (какое место смотреть раньше), а не “вероятность бага”.Типовые kind (интуитивно):
struct_pattern_break — “вставили нетипичный структурный рисунок” (часто это новые сущности/паттерны/стиль).depth_spike — “слишком выросла вложенность/условность”.control_outlier — “перегреты пути исполнения” (условия/ошибки/return-хвосты).mixed — смесь факторов.risk_level=low, ci_status=ok, analysis=fullОбычно:
risk_level=medium или ci_status=warnОбычно:
risk_level=highМинимум:
Per-file structural risk,analysis=partialОбычно означает, что PR содержит файлы вне области анализа (например, YAML/CSV/Markdown).
Что делать:
“CodeGuard подсветил нетипичное усложнение в <участок>. Это сделано для <цель>. Добавлены/обновлены тесты <...> и комментарий к контракту.”
“В этом месте появляется структурный разрыв относительно стиля репозитория. Предлагаю переписать как <простая функция/без lambda/без генератора>, чтобы сохранить предсказуемость кода.”
“Похоже на внедрение новой мини-архитектуры/алгоритма. Давайте вынесем в отдельный модуль/класс с явным интерфейсом и короткой документацией, чтобы изменение было локализовано.”
“Изменение меняет режим/математику/контракт. Нужны тесты на <инвариант/крайние случаи/стабильность> или явный флаг конфигурации.”
Если вы видите:
Status: High riskstruct_risk: 69.49control_risk_level: lowstruct_pattern_breakИнтерпретация:
Переходите к Full report, если:
Effects/Taint/Control и нужно оценить безопасность/границы/контракты,analysis=partial,REPORT_FIELDS_REFERENCE — справочник всех полей отчёта (подробно).REVIEW_PLAYBOOKS — плейбуки (high struct, high control, effects/taint, partial).CASE_STUDIES — разборы реальных PR (как принимать решения на примерах).