Гриллинг
Назначение
Отдать готовый план агенту на допрос: он безжалостно интервьюирует вас о каждом аспекте — вопрос за вопросом, ветка за веткой, — пока дыры не всплывут и не возникнет подтверждённое общее понимание. Стресс-тест вашего мышления до начала работ, а не сбор требований.
Также известен как
Grilling, допрос с пристрастием; /grilling в скилах Мэтта Покока.
Проблема
План написан и выглядит убедительно — вам, его автору. В этом и беда:
- Свои дыры не видны: план убедителен ровно потому, что построен на ваших же допущениях — та же авторская слепота, что у агента с собственным кодом.
- Ревью коллеги дорого и часто поверхностно: «выглядит разумно» — самый частый и самый бесполезный отзыв на план.
- Дыры всплывают в реализации — в самой дорогой точке: недодуманная ветка дизайна оборачивается переделкой, а не репликой в разговоре.
Решение
Перед началом работ — допрос:
Интервьюируй меня безжалостно о каждом аспекте этого плана, пока мы не придём к общему пониманию. Иди по веткам дерева решений, разбирая зависимости между решениями по одной. К каждому вопросу предлагай свой рекомендуемый ответ. Спрашивай по одному вопросу за раз. Факты ищи в кодовой базе сам — но каждое решение выноси мне и жди ответа. Не начинай работу, пока я не подтвержу, что понимание общее.
Три правила держат конструкцию:
- По одному вопросу. Пачка вопросов сразу сбивает с толку — и позволяет ответить на удобные, пропустив неудобные.
- Факты — из кода, решения — от вас. Всё, что можно выяснить чтением кодовой базы, агент выясняет сам; вам достаются только настоящие развилки.
- Рекомендация к каждому вопросу. Вопрос с предложенным ответом — это позиция, с которой можно спорить; голый вопрос — перекладывание работы.
У каждого вопроса три исхода: ответ закрывает ветку; ответ вскрывает дыру — план правится, допрос продолжается; вопрос не решается разговором — он выносится в одноразовый прототип. Финал один: явное подтверждение общего понимания — и только после него начинается работа.
Структура
Слева готовый план — убедительный для автора, с невидимыми ему дырами. В центре цикл допроса: вопрос с рекомендацией, решение разработчика, следующая ветка. Справа три исхода: вскрытая дыра возвращается правкой в план — и допрос продолжается; вопрос, не решаемый разговором, уходит в прототип; исчерпанные ветки завершаются подтверждением общего понимания — единственной дверью к началу работ.
Участники / Компоненты
- План — предмет допроса: написанный документ, а не идея в голове.
- Агент-интервьюер — ведёт по дереву решений, ищет факты в коде, рекомендует ответы; инструктирован быть безжалостным.
- Разработчик — отвечает за решения; его мышление и есть то, что тестируется.
- Дыры — продукт допроса: недодуманные ветки, вскрытые до реализации.
- Общее понимание — критерий финала: явное подтверждение, без которого работа не начинается.
Когда применять
- Перед стартом значимой работы по плану, написанному в одиночку: чем дороже реализация, тем дешевле час допроса.
- Решение трудно обратимо: архитектурный выбор, публичный контракт, миграция.
- План «слишком гладкий»: ни одного открытого вопроса — верный признак, что вопросы просто не задавались.
Не нужен для планов на полчаса работы — там дыра стоит дешевле допроса. И не путайте с интервью у агента: интервью строит спецификацию с нуля, гриллинг атакует готовый план.
Последствия и компромиссы
- ➕ Дыры всплывают за столом, а не в реализации, — по цене реплики, а не переделки.
- ➕ Рекомендации агента делают допрос содержательным: вы спорите с позицией, а не отвечаете на анкету.
- ➕ Решения проговорены явно: после допроса план разделяют двое, а не предполагает один.
- ➖ Неприятно: план обстреливают, и хорошо построенный допрос находит дыры почти всегда. Это цена, а не дефект.
- ➖ Время: настоящий допрос — это десятки вопросов; на него надо заложить сессию, а не пять минут.
- ➖ Агент-соглашатель бесполезен: без явного «безжалостно» допрос вырождается в комплименты плану.
Реализация
- Допрашивайте документ, а не мысль: план должен быть написан — по написанному агент строит дерево решений, а не гадает.
- Стартуйте промптом с тремя правилами: безжалостно, по одному вопросу, факты из кода — решения от меня, финал — подтверждение понимания.
- Отвечайте честно, включая «не знаю»: незнание — это найденная дыра, а не провал допроса.
- Правьте план по ходу: вскрытая дыра — немедленная правка документа, а не заметка «потом поправлю».
- Выносите нерешаемое в прототип: спор, в котором кончились аргументы, — сигнал для одноразового прототипа, а не для упорства.
- Фиксируйте решения на месте: устоявшиеся термины и принятые развилки — в словарь домена и ADR, пока они горячие.
- Завершайте явно: «понимание общее, начинаем» — сказанное словами, а не подразумеваемое молчанием.
Пример
Разработчик написал план миграции тарифов и перед стартом отдаёт его на допрос. Агент идёт по веткам:
В плане апгрейд тарифа применяется немедленно, а про даунгрейд не сказано. Рекомендую: даунгрейд — с начала следующего периода, без пропорционального возврата. Так?
Разработчик соглашается — ветка закрыта, план дополнен. Через несколько вопросов:
План предполагает, что подписка всегда привязана к оплате. Но в словаре домена зачисления создаются и корпоративными контрактами — без подписки вообще. Как мигрируют корпоративные тарифы с отложенным стартом?
Об этом в плане нет ни слова — дыра. Обсуждение упирается в модель отмен: аргументы кончились, обе стороны правдоподобны. Вопрос выносится в прототип — так начинается история, знакомая по главам о передаче сессии и прототипе. Остальные ветки закрываются за час; разработчик подтверждает общее понимание, и работа начинается — по плану, в котором самая дорогая дыра найдена до первой строчки кода.
Анти-паттерны и частые ошибки
- Допрос идеи вместо плана. Без написанного документа гриллинг вырождается в интервью — это другой инструмент для другой стадии.
- Пачки вопросов. Пять вопросов разом — и вы отвечаете на удобные три. По одному, с ожиданием ответа.
- Агент отвечает сам себе. Интервьюер, закрывающий свои же вопросы своими же рекомендациями без вашего ответа, тестирует не ваше мышление, а своё.
- Дыры «на потом». Вскрытая дыра, не внесённая в план немедленно, испаряется к концу сессии.
- Вежливый интервьюер. Без инструкции о безжалостности агент хвалит план и задаёт вопросы для галочки — стресс-теста не происходит.
Известные применения
- Скилы Мэтта Покока —
/grilling: первоисточник с формулой «безжалостно, по одному вопросу, факты из кода — решения от пользователя, не начинай без подтверждения»; в связке/grill-with-docsрешения оседают в CONTEXT.md и ADR, а в карте исследования гриллинг — штатный тип тикета. - Претмортемы — доагентная родословная: «представьте, что проект провалился, — почему?»; гриллинг автоматизирует роль скептика, задающего этот вопрос по каждой ветке.
- Ревью дизайн-документов — та же функция в командной инженерной культуре; агент делает её доступной командам из одного человека.
Связанные паттерны
- Интервью у агента — зеркальный сосед: интервью строит спецификацию, гриллинг атакует готовый план.
- Одноразовый прототип — выход для вопросов, не решаемых разговором: спор превращается в эксперимент.
- Писатель и рецензент — тот же принцип «автор не видит своих дыр», применённый к коду; гриллинг применяет его к плану — и к вам.
- Словарь домена — приёмник решений допроса: термины и развилки фиксируются, пока они горячие.