Памятка вайбкодера: безопасность, правила и как не утонуть в нейрослопе

Короткая печатная памятка с чек-листами — что проверить до, во время и после вайбкодинга, и как распознать код, который только выглядит рабочим.

Вайбкодинг 8 мин

Эту памятку удобно распечатать и держать рядом, пока вы собираете себе маленький инструмент с нейросетью. Про сам маршрут сборки — как вайбкодить внутренний сервис. Здесь — только правила и чек-листы.

1. Коротко: что такое «нейрослоп» в коде

Нейрослоп — это код, который выглядит солидно, но не выдерживает проверки. Признаки: раздутые и продублированные куски, ссылки на библиотеки и функции, которых не существует, заглушки, которые притворяются работой, ошибки, которые тихо проглатываются. К этому добавляется отчёт модели «всё готово и протестировано» — за которым на деле ничего не стоит: никто ничего не запускал и не проверял.

Опасность не в том, что модель ошиблась — ошибается и человек. Опасность в уверенном тоне отчёта: он снимает у вас желание проверить.

2. До начала — правила данных

  • Только вымышленные данные — имена, суммы, даты придумывайте сами или просите модель сгенерировать.
  • Никаких паролей, ключей, токенов доступа — ни в чат, ни в код, даже «временно».
  • Не подключайте прототип к рабочим системам, почте, базам данных.
  • Не выкладывайте прототип в общий доступ — пусть остаётся на вашем компьютере.

Подробнее о границе — в статье «Что можно и нельзя вводить в чат».

3. Во время работы — правила шага

  • Одна просьба — одно изменение. Не просите сразу три вещи.
  • После каждого шага проверьте руками — кликните, введите, посмотрите на результат.
  • Перед крупной правкой сохраните копию рабочей версии: папка «версия-1», «версия-2» или git, если умеете.
  • Просите объяснить непонятный кусок простыми словами. Не принимайте то, чего не понимаете.
  • Если модель ходит по кругу — не спорьте с ней третий раз подряд, откройте новый чат и коротко опишите, в каком состоянии сейчас код.
Безопасный цикл работы с прототипом Не работает / модельходит по кругу →новый чат с кратким описанием 1Одна просьба —одно изменение2Проверили руками3Сохранили копиюверсии4Следующий шаг И снова к шагу 1
Рисунок 1. Один шаг цикла: просьба → проверка руками → копия версии → следующий шаг.

4. Безопасность — отдельный чек-лист

  • Пароли и ключи никогда не лежат в коде. В учебном прототипе они вообще не нужны: если модель просит ключ — остановитесь и разберитесь, зачем.
  • Перед установкой библиотеки проверяйте, что она реально существует и что ей пользуются: откройте страницу пакета, посмотрите на число загрузок и дату последнего обновления. Модели иногда выдумывают названия пакетов, а злоумышленники заранее регистрируют такие имена под настоящим видом — это явление называют slopsquatting, «захват выдуманных имён».
  • Не запускайте команды, смысл которых вам не понятен, — особенно если в них есть удаление файлов или права администратора.
  • Открывайте прототип только на своём компьютере (localhost), не пробрасывайте его наружу.
  • Не разрешайте модели самой отправлять что-либо в интернет без вашего явного шага.

5. Как распознать нейрослоп — признаки

Семь признаков нейрослопа Одна функцияв трёх вариантах Код, которыйнигде не вызывается Демо-данныезашиты в код «Исправлено», аничего не изменилось Ошибкимолча скрываются Комментариидлиннее кода Новая библиотекаради мелочи
Рисунок 2. Семь признаков нейрослопа: если видите два-три сразу — пора прибраться.
  • Одна и та же функция существует в трёх слегка разных вариантах.
  • В проекте есть файлы и куски кода, которые нигде не вызываются.
  • «Демо-данные» зашиты прямо в код — поэтому «всё работает», а на других данных не сработает.
  • Модель пишет «исправлено», но поведение на экране не изменилось.
  • Ошибки перехватываются и скрываются, а не показываются вам.
  • Комментарии длиннее самого кода, который они описывают.
  • Внезапно появилась новая библиотека ради одной мелкой функции.

Если увидели два-три признака из списка — не продолжайте наращивать, попросите модель сначала прибраться.

6. Как не допускать — формулировки запросов

Сделай минимальное решение, без лишних файлов и библиотек.
Не добавляй функций, о которых я не просил.
Перед изменением скажи, какие файлы тронешь.
Покажи, как проверить, что это работает, — шаги для меня руками.
Найди в коде дубли, неиспользуемое и заглушки, ничего не исправляя — только список.
Если не уверен, что библиотека существует, скажи об этом.

7. Перед показом коллегам или ИТ — финальный чек-лист

  • Все данные в прототипе вымышленные, проверено ещё раз глазами.
  • Ни одного пароля, ключа или токена в коде.
  • Прототип запущен только локально, наружу не пробрасывался.
  • Вы прошли весь сценарий сами, кнопка за кнопкой, и знаете, где он ломается.
  • Попросили модель дать список дублей и заглушек — и посмотрели на него.
  • Можете объяснить своими словами, что делает каждая часть кода.
  • Есть сохранённая рабочая копия на случай, если правки всё испортят.
  • Готова короткая формулировка, что это учебный прототип, а не рабочий сервис.

Что дальше делать с готовым прототипом и как разговаривать с ИТ — в статье «Навайбкодил за вечер. Что теперь с этим делать ИТ».

8. Чего эта памятка не заменяет

Памятка не заменяет проверку специалиста по безопасности — если прототип планируют подключать к реальным данным или показывать за пределами вашего компьютера, его должен посмотреть человек, который этим занимается профессионально. И она не делает прототип рабочим сервисом: даже идеально прибранный вечерний код — это черновик, а не то, что можно сразу поставить на боевой сервер отдела.

Все статьи · Курсы и лабораторные работы

Ещё по теме