🤔 Ревью на планировании - пайплайностроения пост
❓Все сталкивались с тем, что как только начинаешь ревьюить планы, то каждое следующе ревью находит всё новые и новые проблемы? Особенно если модели от клозедов сами пишут и сами себя проверяют. И всё это превращается в бесконечный цикл правок.
Сначала о ревью на планировании.
Плюсы: сокращает время реализации, повышает шансы успеха и уменьшает число проблем в будущем.
Минус - занимает время/токены на планировании.
🔵Как раньше делал я:
- планирование (Opus 5 high)
- ревью (Sol high)
- судья (Opus 5 high)
Роль судьи - отбросить несущественные замечания.
Важно: автор планов не является судьёй. Сила разделения ролей ☕️
Практика показала, что судья за 2 месяца отбросил только 14% замечаний. Существенной прибавки в скорости планирования он не дал.
🟢 На выходных сел вносить изменения в пайплайн. Что изменил, в том числе, но не только:
1) Нет смысла вылизывать планы до состояния perfect, практически это невозможно. Что-то всё равно упустим, но исправим это уже на реализации.
2) Больше ревьюеров с разными линзами на каждый раунд.
По истории: на 1 план в среднем приходилось по 8 раундов ревью и 25+ замечаний. При этом замечания второго и следующих раундов делились на:
⚪️ 42% "новая территория". Ревьюер в первом раунде просто не посмотрел.
⚪️ 40% - это дефекты, которые породила предыдущая правка. Исправили одно, сломали другое.
⚪️ 18% - одноклассники найденного ранее дефекта, т.е. сначала нашли в одном месте, а таких мест пять.
Причина бесконечного цикла "планирование - ревью" не в том, что модель слабая. А в том, что один ревьюер с широким вопросом "ищи проблемы" не способен охватить все сразу.
🟡 Как лечить? Должно быть несколько узких вопросов и их должно быть много. Задавать их надо все сразу в первом раунде, а не по очереди.
Линза - это один узкий вопрос-провал плюс список конкретных проверок под проект. Каждая линза - отдельная сессия модели, все линзы раунда запускаются параллельно, друг друга не видят.
Линзы 3-х типов:
🟠Ядро (5 линз), работает всегда:
- бизнес-результат и приёмка: что реально увидит пользователь, чем докажем "сделано"
- существование и объём: что из плана уже есть в репе, что выдумано сверх запроса
- контракты и данные: API, схема, права, ломающие изменения по стадиям
- доставка и пути: какие файлы, лимиты размера, границы модулей, тесты, конфликты с параллельными задачами
- исторические классы дефектов: проверка по каталогу наших прошлых промахов (об этом ниже, см п.5).
🟠Дополнительные линзы (4 шт), включаются по признакам плана:
- необратимость и прод: миграции, секреты, доступы
- опыт пользователя: если трогаем веб
- покрытие эпика: если это эпик с детьми
- гранты и агент-каталог: если появляются новые таблицы или роли
🟠 Кастомные линзы - планировщик имеет право создать и добавить линзу под конкретный план.
4) Две модели: Opus 5 high и Sol high
На прошлых прогонах судья чаще отбрасывал претензии Sol именно в оценочных вопросах (много шума), но по коду Sol надёжнее.
Поэтому Opus - оценочные линзы (бизнес, объём, UX, необратимость, эпики). Sol - линзы по коду (контракты, пути, история, гранты).
5) Каталог исторических дефектов.
Самое ценное, что накопилось за месяцы - это классы ошибок, которые мы уже оплатили временем и токенами.
Формат каталога - оглавление плюс файл на каждый класс. Ревьюер получает только оглавление и открывает лишь те классы, чьи триггеры совпали с планом. Контекст не раздувается. Пополняется по одному правилу: если дефект плана поймали только на реализации - он становится новым классом. Растёт только от реальных промахов.
6) Правила остановки - ограничиваем число раундов ревью на планировании + финишёр вместо бесконечного цикла.
Два раунда подряд без обязательных правок - стоп. Третий раунд - только с названной причиной.
🟡Раньше эпики могли крутиться по 6-14 раундов. Теперь так: если три раунда прошли и каждый находил дефекты, а PASS так и нет - планировщик вызывет "финишёра". Это Fable 5.1 high (если недоступен - Astra xhigh). Он получает всю историю: все версии плана, все диффы, все отчёты линз, все решения по замечаниям. И доделывает план сам.
🟡Планировщик принимает его текст как есть, ставит на задачу метку "прошла через эскалацию", пишет короткое резюме и выпускает в работу. Новых раундов нет.
Это осознанное исключение.
8) Убрал судью.
Его работу делает сам планировщик: сверяет каждое замечание с репой, склеивает дубли по причине, а не по формулировке, и каждому даёт ровно один маршрут - править сейчас, отложить, отклонить с доказательством, или "не решено" с указанием, что именно проверить.
Это осознное нарушение.
Гипотеза:
🔵 меньше раундов ревью на план
🔵 больше правок на раунд
🔵 планы собираются быстрее
🔵 планы будут достаточно хороши, а найденные проблемы планирования будут решены на реализации
Критерий успеха - пока не решил, будем посмотреть.
Post #177
218
- 👍 9
- 🔥 4
- ❤ 1