AI PM Assistant. Вопросы, !update и журнал изменений

В прошлых статьях мы научили ИИ собрата различать бэк, фронт и дизайн, загрузили ему в голову всю архитектуру проекта, добавили глаза и долговременную память. Задачи стали на голову выше. Но нет-нет да проскальзывали косяки. Главный из них: если данных не хватало, нейронка иногда начинала галлюцинировать.

AI PM Assistant. Вопросы, !update и журнал изменений

В конце прошлой статьи я обещал рассказать, как агент перестал галлюцинировать и начал задавать вопросы. Газ!

Как ИИ научился задавать вопросы?

Я добавил в логику основного сценария генерацию специального поля questions. Правило жёсткое: если не хватает данных (макет, роут, бизнес-логика), то не выдумывать, а написать пару вопросов постановщику задачи.

Вот как это выглядит в промпте (выдержка, обезличено):

Поля JSON:

"questions": "Список из 1-3 вопросов к заказчику или строго '-'"

Когда ИИ создаёт задачу, он отправляет в тред Slack не только ссылку на тикет, но и эти вопросы. Например: «Уточни цвет кнопки», «Приложи макет», «Какой роут?».

AI PM Assistant. Вопросы, !update и журнал изменений

Проблему галлюцинаций это решило. Но появилась новая боль.

Мне всё равно приходилось руками вносить правки в Jira. Видишь вопросы в Slack, потом идёшь в задачу, дописываешь детали. Снова рутина, только в другом обличье.

Рождение команды !update

Я понял: нужен второй сценарий в Make. Пусть ИИ сам обновляет задачи по моим ответам.

AI PM Assistant. Вопросы, !update и журнал изменений

Логика простая. В том же треде, где уже висит задача, я пишу команду !update. Дальше работает специальный промпт-апдейтер. Он получает:
текущее описание задачи из Jira, список активных вопросов из таблицы памяти, мои новые уточнения из Slack.

И обновляет задачу, фиксируя изменения.

Вот ключевые правила из промпта-апдейтера (тоже обезличены):

Сценарий 1: Прямая команда (маркер "Для ИИ:") Если сообщение содержит "Для ИИ:" — это инструкция для тебя. Найди нужное поле, аккуратно внеси изменения. Остальной контекст скопируй слово в слово. Сценарий 2: Ответы на вопросы Если пользователь отвечает на вопросы — сопоставь ответы со списком актуальных вопросов. Вычеркни те, на которые ответили. Органично встрой новые данные в задачу, не стирая старый полезный контекст. Критическое правило сохранения контекста Категорически запрещено перефразировать, сокращать или «улучшать» текст в нетронутых полях. Копируй их слово в слово (verbatim). Любая потеря деталей считается критической ошибкой.

Changelog: кто, когда и что менял

А ещё апдейтер фиксирует каждое изменение. В таблице памяти есть колонка Changelog. При каждом !update туда дописывается краткое саммари того, какие поля обновлены и суть изменений. Пример: "- В 'Что реализуем' добавлен роут для редиректа\n- Обновлён блок 'Риски'".

Что получилось в итоге?

Мы не просто автоматизировали постановку задач. Мы создали гибкий пайплайн, который живёт своей жизнью.

Главный плюс его можно настраивать под любого разработчика. Фронтендеру нравится, когда ИИ пишет про роуты и GTM ивенты? Легко. Бэкендер хочет сухие JSON и HTTP-методы? Пожалуйста. Дизайнер ждёт списки состояний и адаптивность? Уже есть.

И самое важное. Если я уйду в отпуск, заболею или меня вдруг сократят (оптимизация, как-никак), разработка не встанет. Потому что новый PM, даже не погружённый в продукт, сможет использовать готовые сценарии.

ИИ не заменяет проджекта. Но он делает его работу такой, что без него команда просто не сможет так же быстро двигаться.

Что дальше?

В следующей (и, возможно, финальной) статье по этой теме расскажу на примере фронтенда, как мы внедрили AI-агентов в отдел разработки. Будет про код, про легаси и про то, почему живые разработчики пока не уволены.

Не переключайтесь!