Когда ИИ-конструктор приложений теряет нить: как вернуть сборку в нужное русло, не начиная всё заново
Есть особое ощущение, которое люди описывают после нескольких часов работы с ИИ-конструктором приложений. Первый час — отличный. Вы набрасываете идею, наблюдаете, как штука собирается прямо у вас на глазах, кликаете по своему наполовину готовому приложению и улыбаетесь. А потом где-то к третьему часу всё начинает буксовать. ИИ исправляет баг, о котором вы сообщили, но страница над ним теперь выглядит иначе. Вы просите откатить — и он меняет что-то ещё. К пятому часу вы уже не понимаете, что сохранилось, а что нет, и начинаете думать, не стоит ли просто начать заново.
Не стоит. ИИ-конструктор не сломался — он потерял нить. Это вполне поправимое состояние, и вам не нужно сносить весь проект, чтобы из него выбраться.
Что на самом деле значит «потерять нить»
Когда ИИ-конструктор приложений выдаёт хорошие результаты, это потому, что сошлись две вещи: у него есть ясная картина того, чего вы хотите, и ясная картина того, как приложение выглядит сейчас. Большинство «штопоров» с плохой сборкой возникают из-за того, что одна из этих двух картин размывается.
Это немного похоже на просьбу к другу переставить мебель в комнате по телефону. Если он видит комнату и понимает цель — он молодец. Но если он вспоминает комнату по фотографии, которую вы прислали два часа назад, а цель за это время менялась три раза, он начнёт расставлять вещи по углам, которых уже не существует. ИИ находится ровно в том же положении. Он работает по снимку, а ваш снимок устарел.
Обычно вы замечаете это по одному из трёх признаков.
Признак 1: ИИ переписывает одно и то же
Вы просите ИИ исправить кнопку входа. Он переписывает кнопку входа. Вы просите исправить ту же самую кнопку входа снова — той же фразой, тем же запросом — и он переписывает её опять, немного по-другому. Ещё два круга — и кнопка теперь уже третьего цвета и живёт в другой части страницы.
Это сигнал дрейфа памяти. ИИ перестал использовать свою прежнюю работу как фундамент и начинает заново от вашего описания на каждом шаге. Новая версия не всегда хуже, она просто другая — а это то же самое, что хуже, если старая вам уже начала нравиться.
Когда такое случается, фокус в том, чтобы его «заякорить». Перестаньте описывать изменение абстрактно («сделай кнопку входа аккуратнее») и начните описывать его в терминах, которые ИИ сможет сопоставить с тем, что реально на экране («кнопка сейчас называется „Войти“, расположена по центру и синяя — сохрани всё три свойства, просто скругли углы»). Вы вручаете ИИ свежий снимок. Что стабильно помогает не-разработчикам выбраться из этого цикла — это фраза вида «сейчас оно делает X — измени только Y».
Признак 2: каждая правка ломает что-то ещё
Вы сообщаете о сломанной форме регистрации. ИИ чинит форму. Вы перезагружаете страницу — а раскладка дашборда съехала. Вы просите вернуть дашборд на место. Форма регистрации снова ломается.
Это тот самый штопор, который пугает людей до того, что они начинают всё заново, и это самая частая причина, по которой сборки бросают на 80% готовности. А под капотом происходит вот что: ИИ трогает файлы или компоненты, которые влияют на большее, чем та область, о которой вы просили. Один основатель, за работой которого я недавно наблюдал, попросил ИИ «исправить цвета на главной странице» и в итоге получил другую панель навигации повсюду — потому что стили, питавшие и то и другое, лежали в одном месте, и ИИ исправил их разом. Он думает, что чинит одну вещь; на самом деле он редактирует две.
Решение механическое. Попросите ИИ простыми словами изменить только тот файл, страницу или компонент, который вас волнует, и оставить всё остальное в покое. Большинство ИИ-конструкторов приложений соблюдают это ограничение, когда вы его задаёте. «Редактируй только страницу регистрации. Не трогай раскладку дашборда, не добавляй новые файлы, ничего не реорганизуй». Если баг находится в общем коде — скажем, в стилях, которые питают и форму, и дашборд, — ИИ вам об этом скажет. Это полезная информация, и это гораздо более удачная отправная точка, чем гадание.
Ещё одна вещь, которая здесь помогает: перестаньте накапливать правки. Если сборка в наполовину сломанном состоянии — возьмите маленькую победу, сохраните её и двигайтесь дальше. ИИ-конструкторы приложений умеют быстро накручивать проблемы, потому что у каждого запроса предыдущее наполовину сломанное состояние идёт на вход. Чистая точка сохранения разрывает эту цепочку.
Признак 3: ИИ задаёт вам одни и те же вопросы
Три хода назад он спрашивал, какую базу данных вы хотите. Вы ответили: Postgres. Теперь он спрашивает снова, но формулирует иначе — «должны ли эти данные сохраняться между сессиями?» — и вы понимаете, что он дрейфует обратно к тому же самому решению.
Обычно это значит, что ИИ потерял контекст уровня проекта. Он работает с последними несколькими сообщениями, а не с архитектурными решениями, которые вы приняли раньше. Винить его особо не за что: люди делают то же самое на долгих совещаниях. Но в результате вы будете снова и снова пересматривать фундамент, пытаясь при этом построить второй этаж.
Выход — написать короткое описание проекта простыми словами и вставлять его обратно, когда ИИ начинает дрейфовать. Двух-трёх предложений достаточно: «Это веб-приложение для записи на уроки игры на гитаре. Преподаватели управляют своим расписанием. Ученики бронируют слот, платят и получают письмо с подтверждением. Используй Postgres для хранения и Stripe для оплаты». Этот абзац — именно то, что ИИ важнее всего держать под рукой, и именно то, что он чаще всего забывает. Относитесь к нему как к записке на холодильнике.
Небольшой план, как сдвинуться с мёртвой точки
Когда вы наталкиваетесь на один из этих трёх признаков, вот что обычно помогает, по порядку. Делать всё необязательно — как правило, достаточно первого шага, который снимает симптом.
Сохраните то, что работает. Прежде чем делать что-либо ещё, убедитесь, что те части приложения, которые пока работают, сохранены как версия или контрольная точка. У большинства конструкторов это встроено; если у вашего нет — сделайте скриншоты и перепишите видимое поведение в заметку. Вам понадобится точка отсчёта.
Сформулируйте цель в одном предложении. Вслух, письменно, где угодно. «Я пытаюсь сделать так, чтобы форма регистрации принимала email и пароль и отправляла приветственное письмо». Если вы не можете назвать цель в одном предложении — это отчасти и есть причина, по которой ИИ дрейфует: он отзеркаливает на вас вашу же неопределённость.
Изолируйте сломанную часть. Скажите ИИ, какую страницу, компонент или функцию ему разрешено трогать. Будьте конкретны. «Редактируй только форму регистрации. Больше ничего не меняй». Если вы не можете точно назвать, что сломано, попросите ИИ кратко изложить, что он менял в последний раз; это часто вытаскивает на поверхность реальную «подвижную деталь».
Привяжите изменение к тому, что есть сейчас. Опишите текущее состояние и целевое состояние. «Сейчас под полем пароля показывается красное сообщение об ошибке. Я хочу, чтобы это сообщение исчезало, когда пользователь снова начинает печатать». Конкретное «было и стало» бьёт абстрактное намерение.
Возьмите победу и остановитесь. Самая трудная часть всего этого списка. Когда сборка вернулась в рабочее состояние, сохранитесь и отойдите на несколько минут. Не пытайтесь сразу же чинить следующее. Сборки, которые накручивают четыре-пять правок подряд, обычно входят в очередной штопор. Сборки, которые чинят одну вещь, сохраняются и делают паузу, — обычно нет.
Когда действительно пора начинать заново
Иногда правильное решение и впрямь — начать с чистого листа, и стоит знать признаки. Если ваш проект сильно «петлял» — изначальная идея больше не является настоящей идеей, и приложение отражает три-четыре разные версии «что это вообще такое», — чистый старт с новым запросом будет быстрее, чем распутывание. То же самое, если вы итерируете так долго, что уже сами не знаете, что находится в проекте. Невозвратные затраты будут говорить вам продолжать. А ваше завтрашнее «я» скажет вам спасибо за перезапуск.
Но это исключение. Повседневная версия «эта сборка идёт куда-то не туда» чинится за пять минут, если знать, на что смотреть. ИИ не разучился собирать приложения. Он просто забыл, какое именно из них вы собираете.
Если вы уже проходили через один из этих штопоров — циклы, каскадные правки, одни и те же вопросы по кругу — попробуйте записать цель проекта в одном предложении где-нибудь, откуда её можно вставить обратно. Это маленькая привычка, которая делает следующий тупик короче.