AI PM Assistant. Вопросы, !update и журнал изменений
В прошлых статьях мы научили ИИ собрата различать бэк, фронт и дизайн, загрузили ему в голову всю архитектуру проекта, добавили глаза и долговременную память. Задачи стали на голову выше. Но нет-нет да проскальзывали косяки. Главный из них: если данных не хватало, нейронка иногда начинала галлюцинировать.
В конце прошлой статьи я обещал рассказать, как агент перестал галлюцинировать и начал задавать вопросы. Газ!
Как ИИ научился задавать вопросы?
Я добавил в логику основного сценария генерацию специального поля questions. Правило жёсткое: если не хватает данных (макет, роут, бизнес-логика), то не выдумывать, а написать пару вопросов постановщику задачи.
Вот как это выглядит в промпте (выдержка, обезличено):
Поля JSON:
Когда ИИ создаёт задачу, он отправляет в тред Slack не только ссылку на тикет, но и эти вопросы. Например: «Уточни цвет кнопки», «Приложи макет», «Какой роут?».
Проблему галлюцинаций это решило. Но появилась новая боль.
Мне всё равно приходилось руками вносить правки в Jira. Видишь вопросы в Slack, потом идёшь в задачу, дописываешь детали. Снова рутина, только в другом обличье.
Рождение команды !update
Я понял: нужен второй сценарий в Make. Пусть ИИ сам обновляет задачи по моим ответам.
Логика простая. В том же треде, где уже висит задача, я пишу команду !update. Дальше работает специальный промпт-апдейтер. Он получает:
текущее описание задачи из Jira, список активных вопросов из таблицы памяти, мои новые уточнения из Slack.
И обновляет задачу, фиксируя изменения.
Вот ключевые правила из промпта-апдейтера (тоже обезличены):
Changelog: кто, когда и что менял
А ещё апдейтер фиксирует каждое изменение. В таблице памяти есть колонка Changelog. При каждом !update туда дописывается краткое саммари того, какие поля обновлены и суть изменений. Пример: "- В 'Что реализуем' добавлен роут для редиректа\n- Обновлён блок 'Риски'".
Что получилось в итоге?
Мы не просто автоматизировали постановку задач. Мы создали гибкий пайплайн, который живёт своей жизнью.
Главный плюс его можно настраивать под любого разработчика. Фронтендеру нравится, когда ИИ пишет про роуты и GTM ивенты? Легко. Бэкендер хочет сухие JSON и HTTP-методы? Пожалуйста. Дизайнер ждёт списки состояний и адаптивность? Уже есть.
И самое важное. Если я уйду в отпуск, заболею или меня вдруг сократят (оптимизация, как-никак), разработка не встанет. Потому что новый PM, даже не погружённый в продукт, сможет использовать готовые сценарии.
ИИ не заменяет проджекта. Но он делает его работу такой, что без него команда просто не сможет так же быстро двигаться.
Что дальше?
В следующей (и, возможно, финальной) статье по этой теме расскажу на примере фронтенда, как мы внедрили AI-агентов в отдел разработки. Будет про код, про легаси и про то, почему живые разработчики пока не уволены.
Не переключайтесь!