Конвейер из агентов: транскрипт созвона превращается в смёрдженный код
Обычная история после планёрки: час разговора, десяток решений, и всё это надо превратить в задачи, код и релиз, ничего не растеряв по дороге. Собрал конвейер, который доводит запись созвона до кода в основной ветке, и с тех пор гоняю его регулярно - это рабочий процесс, а не разовый эксперимент.
Как устроен проход
Сначала разбор транскрипта. Распознавание речи уверенно выдумывает названия и цифры, поэтому на входе стоит гейт: всё, что не подтверждается контекстом созвона, помечается как догадка и не идёт дальше в задачи. Затем декомпозиция на задачи со связями между ними, дальше разработка по тестам - тест первым, реализация под него, - и ревью несколькими независимыми проходами по разным признакам: безопасность, корректность, производительность смотрят разные агенты и не видят выводов друг друга.
Что показал улов
Показательна не скорость, а находки. Стабильно больше половины задач возвращаются от ревьюеров с настоящими дефектами. Из пойманного: открытый редирект, две гонки счётчика, утечка наблюдателя пересечений. Это не стилистические придирки, а то, что дожило бы до прода и всплыло позже.
Отдельно ценно, что ревью многодоменное. Один проход по всему сразу вырождается в поверхностный осмотр: агент отмечает, что «выглядит нормально», и идёт дальше. Разделение по доменам заставляет каждый проход искать свой класс проблем и не отвлекаться на остальные.
Крупнейший прогон: восемнадцать задач, двенадцать коммитов, шестьсот пятьдесят шесть тестов. Это не рекорд ради рекорда - просто на входе был большой созвон.
Чему конвейер научил
Главный вывод не про агентов, а про швы между ними: пофазные ревью не видят дыр, которые образуются на стыке задач. Финальный проход по всему диффу целиком ловит то, что каждый отдельный этап считал не своей зоной ответственности - и именно там находятся самые дорогие ошибки.
Второй вывод: зелёный тест ничего не доказывает, пока не проверено, что он умеет краснеть. Тест, который проходит и при сломанной реализации, - это дефект, а не покрытие.