Как не уничтожить свой проект при vibe coding: 7 обязательных правил
Я потерял production-базу за 3 секунды при vibe coding. 7 правил из реальных инцидентов: git commit перед промптом, лимиты на API, изоляция окружений, запрет AI в платёжной логике.
Я потерял production-базу данных за 3 секунды. Попросил Claude переписать миграцию, он сгенерировал скрипт, я запустил не глядя — привычка из часа продуктивного vibe coding, где всё летело. Скрипт содержал DROP TABLE в начале. На staging это было нормально — пересоздать таблицу с новой схемой. На production, куда я случайно был подключён, — катастрофа.
Восстановление из бэкапа заняло 4 часа. Данные за последние 2 часа — потеряны.
Vibe coding — термин, который точно описывает состояние: ты и AI в потоке, код рождается быстрее, чем ты привык, барьеры между «придумал» и «запустил» исчезают. Это невероятно продуктивно. И невероятно опасно — потому что скорость убирает тот самый зазор, в котором раньше работала осторожность.
За год я собрал 7 правил из собственных провалов и провалов знакомых. Каждое написано кровью — не метафорически, а конкретными инцидентами с конкретным ущербом.
Правило 1: Git commit перед каждым промптом
Перед тем как попросить AI что-то изменить — закоммить текущее состояние. Без исключений. Даже если «я просто хочу поправить одну строчку».
AI меняет файлы. Иногда — не те, которые ты ожидал. Иногда — удаляет код, который считает ненужным, но который нужен. Без коммита — откатить невозможно.
Алиас: alias vc='git add -A && git commit -m checkpoint before AI edit'
Инцидент: попросил AI оптимизировать импорты в Python-проекте. AI удалил неиспользуемые импорты — включая тот, который использовался через importlib динамически. Сервис упал.
Правило 2: Никаких секретов в коде — никогда, ни на секунду
AI генерирует код с плейсхолдерами. Ты заменяешь на реальный ключ, забываешь убрать, коммитишь, пушишь. Боты сканируют GitHub каждые 30 секунд. Секреты — только в переменных окружения. .env в .gitignore с первого коммита. gitleaks в pre-commit hook.
Инцидент: знакомый запушил AWS-ключ в публичный репо. Через 11 минут на его аккаунте майнили крипту. Счёт: 2 800 долларов.
Правило 3: Отдельные окружения — физически
Production и development — разные всё. Разные переменные окружения, разные конфиги, разные терминалы. Красный промпт с надписью PRODUCTION — невозможно не заметить. Prod credentials не существуют на dev-машине.
Правило 4: Лимиты на всех платных API с первого дня
AI генерирует код, который вызывает API. 10 000 раз, если так получилось. Каждый платный API-вызов — с бюджетом и rate limit. Класс BudgetedClient с max_calls_per_hour и max_cost.
Инцидент: AI написал скрипт для тестирования email-уведомлений. 4 200 клиентов получили тестовое письмо «Hello name this is a test».
Правило 5: Читай diff, не описание
Не читай, что AI сказал он сделал. Читай, что он реально сделал. git diff после каждого AI-редактирования. Красные флаги: изменения в файлах, которые не упоминал; удалённые строки; изменённые значения по умолчанию; новые зависимости.
Правило 6: Не давай AI трогать платёжную логику без ревью
Обработка платежей, расчёт цен, биллинг — всегда через ручной code review. CODEOWNERS для финансовых файлов.
Инцидент: AI изменил порядок применения скидки и налога. 800 транзакций с неправильной суммой за 2 недели.
Правило 7: Автоматические бэкапы перед деструктивными операциями
Любая операция, которая удаляет или изменяет данные — автоматический бэкап. safe-migrate.sh — обёртка, которая делает pg_dump перед миграцией.
Бонус: правило нулевого доверия
Не доверяй AI-коду больше, чем коду джуна на первой неделе. AI уверен в каждом решении, даже когда ошибается. У него нет страха перед production. Этот страх полезен — значит иметь должен ты.
Чеклист
- git commit перед каждым промптом
- секреты только в .env, gitleaks в pre-commit hook
- красный промпт для production-терминала
- лимиты на все платные API с первого дня
- читать git diff, не описание AI
- финансовый код — только ручной review
- автобэкап перед деструктивной операцией