**🔍 AI-ревьюер, который не может сломать проект** — 17 июля 2026 г. в 15:00:28.189
**🔍 AI-ревьюер, который не может сломать проект** В прошлых постах мы создали «Умного коммиттера» и вынесли общие правила в Skill. Теперь добавим в AI-команду второго специалиста — ревьюера. Он найдёт баги, уязвимости и пропущенные тесты, но не сможет изменить ни одной строки кода. **🎯 Почему ревьюеру нельзя давать edit?** Если агент одновременно проверяет и исправляет код, роли смешиваются. Он может незаметно изменить логику, «починить» спорное место или добавить новый баг ещё до того, как вы увидите замечание. Поэтому наш reviewer работает строго в режиме read-only: анализирует, объясняет риск и предлагает исправление текстом. Решение остаётся за разработчиком. **📁 Создаём агента** Сохраните файл `.opencode/agents/reviewer.md`: ```md --- description: Проверяет текущий diff на баги, уязвимости и регрессии mode: subagent permission: read: allow glob: allow grep: allow lsp: allow edit: deny external_directory: deny webfetch: deny bash: "*": deny "git status*": allow "git diff*": allow "git log*": allow "git show*": allow --- Проверяй staged и unstaged изменения. Ищи только конкретные проблемы: - ошибки логики и граничные случаи; - уязвимости и утечки секретов; - регрессии и нарушение совместимости; - гонки, утечки ресурсов и ошибки обработки исключений; - отсутствующие тесты для рискованных изменений. Для каждой находки укажи: 1. критичность P0–P3; 2. файл и строку; 3. что сломается и при каком сценарии; 4. минимальный способ исправления. Не придирайся к стилю без реального влияния на код. Не изменяй файлы. Если проблем нет — сообщи об этом явно. ``` **🔐 Что защищает проект?** `edit: deny` запрещает запись, редактирование и применение патчей. Все shell-команды сначала блокируются правилом `"*": deny`, после чего разрешаются только безопасные команды чтения истории и diff. В списке нет `git add`, `git commit` и `git push`. Даже если модель решит «помочь», выполнить эти действия она не сможет. **🚀 Запускаем ревью** ```text @reviewer проверь текущий diff ``` Пример результата: ```text [P1] src/auth/token.ts:84 Refresh-токен проверяется после обновления сессии. Повторно использованный токен успеет продлить доступ. Сначала валидируйте и отзывайте токен, затем создавайте сессию. ``` Критичность помогает быстро расставить приоритеты: P0 — блокирующая проблема, P1 — серьёзный дефект, P2 — обычная ошибка, P3 — небольшое улучшение. **💡 Главная идея** Хороший AI-ревьюер не переписывает код за вашей спиной. Он показывает конкретный риск, доказывает его сценарием и оставляет исправление под контролем человека. В следующем посте свяжем агентов в цепочку: сначала reviewer проверит изменения, и только после успешной проверки committer подготовит коммит. #AI #OpenCode #LLM #CodeReview #Security #DevTools

