Хватит кодить «на авось». Как мы заставили нейросеть работать по ТЗ, а не генерировать дичь
Привет, VC! Иван Алмазов на связи. Помните старую поговорку «семь раз отмерь, один раз отрежь»? В мире AI-кодинга она превратилась в «семь раз объясни тупому стажеру, что ты хочешь, один раз нажми „сгенерировать“».
90% разработчиков используют AI как пьяного джуна: кидают в него идею и надеются на чудо. В ответ получают работающий, но абсолютно неуправляемый «космолет», который невозможно поддерживать. Мы в своей команде прошли через это, набили шишек и выработали подход, который называем AI-Driven Development (AIDD). Это не магия, а набор простых правил, которые заставляют нейросеть из генератора дичи превратиться в адекватного партнера. Сегодня я покажу, как мы прошли путь от идеи до готового Telegram-бота за 3 часа, просто перестав относиться к AI как к волшебной палочке.
Проблема: AI — гениальный, но безответственный джун
Большие языковые модели (LLM) — это идеальный инструмент для генерации кода. Но у них есть фундаментальный недостаток: они не знают, ЧТО вы на самом деле хотите. Без четкого ТЗ они склонны к оверинжинирингу, выбирают самые хайповые технологии и создают монстров, в которых потом сами же и путаются.
Наш подход основан на простом принципе: AI — это не замена программиста, а его усилитель. И чтобы этот усилитель работал правильно, его нужно настроить.
Шаг 1. От идеи к ТЗ (idea.md → vision.md)
Все начинается с идеи. «Хочу сделать Telegram-бота с LLM». Вместо того чтобы сразу просить AI «напиши мне бота», мы делаем шаг назад. Мы заставляем его стать нашим архитектором.
Мы создаем файл vision.md и просим AI спроектировать решение вместе с нами.
Наш промпт: «Давай создадим vision.md. Опиши технологии, архитектуру, модель данных, деплой. Задавай мне вопросы. Предлагай варианты. Наша цель — максимальная простота по принципу KISS. Никакого оверинжиниринга».
Вместе с нейросетью мы проходим по всем пунктам: Python или Go? PostgreSQL или SQLite? Docker или bare metal? AI предлагает, мы утверждаем. В результате хаотичная идея превращается в полноценный технический проект. Теперь мы оба — и я, и нейросеть — знаем, что и как мы строим.
Шаг 2. «Контракт» с нейросетью (conventions.md)
Представьте, что вы нанимаете нового разраба. Вы же не кидаете ему на стол салфетку с идеей? Вы даете ему гайдлайны, объясняете стандарты кодирования. С AI — то же самое.
Мы создаем файл conventions.md, где прописываем наши «законы»:
- Пишем код по таким-то принципам (KISS, YAGNI).
- Структура проекта — вот такая.
- Категорически запрещено использовать библиотеку X, потому что она легаси.
Это наш контракт. Нейросеть теперь не просто творит, а работает в заданных рамках.
Ша-г 3. Декомпозиция (tasklist.md)
Дальше мы разбиваем всю работу на мельчайшие, итеративные задачи. Это критически важно. LLM, как и человек, работает лучше, когда фокусируется на чем-то одном.
Мы создаем tasklist.md:
- Итерация 1: Сделать простого эхо-бота.
- Итерация 2: Подключить LLM.
- Итерация 3: Добавить память (историю диалога).
- ...и так далее, до деплоя в Docker.
Каждая итерация — это маленький, но работающий и тестируемый кусок продукта.
Шаг 4. Правила игры (workflow.md)
План есть, но нужен процесс. Как мы взаимодействуем? Мы создаем workflow.md — наш регламент работы:
- Берешь задачу из tasklist.md.
- Сначала предлагаешь решение с кусками кода. Не генерируешь все сразу!
- Я согласовываю.
- Только после этого реализуешь.
- Отчитываешься, ждешь подтверждения.
- Делаешь коммит.
- Переходишь к следующей задаче.
Это превращает хаотичный «вайб-кодинг» в предсказуемый инженерный процесс.
Шаг 5. «Промывка мозгов» AI (Настройка IDE)
Все эти vision.md, conventions.md, tasklist.md и workflow.md — это наш контекст. Мы должны «скармливать» его нейросети при каждом запросе. В AI IDE вроде Cursor для этого есть специальные «Правила» (Rules). Мы добавляем туда все наши документы с режимом «Always» (Всегда).
Теперь AI при каждом обращении «перечитывает» все наши договоренности. Он всегда в курсе, что мы строим, по каким правилам и на каком мы сейчас этапе.
Результат: 3 часа от идеи до production-ready
Только после всей этой подготовки мы пишем первый промпт: «Начинаем работу по плану».
И процесс идет как по маслу. AI предлагает решение для первой итерации, мы согласуем, он генерирует код. Мы тестируем. Он делает коммит, обновляет статус в tasklist.md и переходит к следующему шагу.
За 3 часа мы получили:
- Полноценного Telegram-бота с памятью и обработкой ошибок.
- Docker-контейнеризацию для деплоя.
- Автоматизацию через Makefile.
- Логирование и мониторинг.
- И даже автосгенерированную документацию для новых разработчиков.
Вывод: Перестаньте быть просителем, станьте архитектором
Грамотный AI-driven подход — это не про то, как написать идеальный промпт. Это про то, как выстроить процесс. Вы перестаете быть кодером, который делегирует рутину. Вы становитесь архитектором, который управляет мощным, но требующим надзора инструментом.
Это и есть разница между «вайб-кодингом», который приводит к хаосу, и инженерной дисциплиной, которая позволяет создавать надежные продукты.
P.S. Этот подход — лишь один из примеров того, как мы в Кнопке* превращаем хайповые технологии в работающие бизнес-инструменты.
Чтобы вы всегда были в курсе того, что действительно работает в мире AI, подписывайтесь на мой Telegram-канал. Там я публикую только самые свежие и важные новости из мира нейросетей, без воды и кликбейта. Только факты и краткий анализ, что они значат для нас с вами.
Подписывайтесь и жмите на Кнопку*, чтобы получать инсайты, а не просто новости: