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

