Промпт для ревью pull request начинается просто: роль, задача, формат. Потом ИИ слишком быстро предлагает правку — добавляется требование сначала определить границу задачи. Смешивает важные замечания с косметическими — появляется правило разделять блокеры и предложения. Уверенно пишет вывод без проверки — добавляется блок про evidence. Через несколько итераций один текст пытается удержать работу аналитика, архитектора, QA и редактора одновременно.

Автор материала на Habr называет такую конструкцию скилл-консилиумом. Снаружи пользователь обращается к одному ИИ-навыку и получает один ответ. Внутри задача проходит через несколько явно разделённых ролей, каждая из которых отвечает за свой тип проверки и знает, когда нужно остановить работу.

Роль внутри навыкаЗа что отвечаетКогда останавливает работу
Специалист по входуПонимает, что принесено на вход: diff, описание задачи, логи, ограниченияКогда контекста недостаточно для уверенного вывода
Предметный специалистСмотрит на смысл задачи в конкретной областиКогда решение уходит мимо исходной проблемы
Архитектор действияВыбирает порядок работы и минимальную безопасную правкуКогда план затрагивает неясную область
Проверяющий рисковИщет данные, права доступа, совместимость, необратимые действияКогда есть риск, который нельзя закрыть текстом ответа
Проверка качестваСмотрит на тесты, воспроизведение, критерии приёмкиКогда вывод невозможно проверить
Редактор результатаСобирает ответ так, чтобы человек понял решение и следующий шагКогда технически верный ответ трудно применить

Роли в базовой схеме выглядят так. Специалист по входу проверяет, достаточно ли контекста для уверенного вывода — есть ли diff, описание задачи, логи, ограничения. Предметный специалист смотрит, решает ли изменение заявленную проблему. Архитектор действия выбирает минимальный безопасный путь и останавливается, когда план затрагивает неясную область. Проверяющий рисков ищет данные, права доступа, совместимость, необратимые последствия. Проверка качества требует подтверждения вывода — тестом, воспроизведением или хотя бы честной пометкой об ограничениях. Редактор собирает финальный ответ так, чтобы человек понял решение и следующий шаг.

Скилл-консилиум — это один ИИ-навык с несколькими явно разделёнными зонами ответственности: вход, предметная область, архитектура, риски, QA, редактура.

На примере ревью PR разница хорошо видна. Без ролевой структуры ИИ возвращает список вроде: «стоит улучшить название переменной», «возможно, нужен тест», «проверьте обработку прав доступа». Формально ревью есть, но автору PR всё равно нужно самому расставить приоритеты. В скилл-консилиуме редактор собирает ответ в три блока: блокеры (например, код возвращает закэшированные данные после ошибки авторизации), вопросы (есть ли тест на сценарий authorization failure) и предложения (разделить fallback для технических ошибок и отказа в доступе). Итог однозначен: PR рано принимать, нужно явно обработать отказ в доступе и подтвердить тестом.

Для багфикса ролевая структура решает другую проблему: запрос «вот ошибка, почини» толкает модель сразу искать файл и предлагать правку, минуя диагностику. Специалист по входу отделяет факты от догадок — что именно произошло, какие шаги воспроизведения, какая версия окружения. Проверяющий рисков задаёт неудобные вопросы: затрагивает ли правка миграции, публичный API, фоновые задачи, продакшен. Финальный ответ короткий, но содержательный: причина, изменение, способ проверки, остаточный риск.

Подход не привязан к конкретному инструменту. Автор упоминает skill для Codex, отдельный ассистент, системный промпт, набор правил в репозитории — форма вторична. Главное, что каждая роль делает отдельную работу и знает свои критерии остановки. Это снижает число слепых зон: когда проверяющий рисков существует как явная роль, риск сложнее пропустить, чем когда он растворён в общем потоке инструкций.

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