Вайб-код для настоящих инженеров: старые практики в новых реалиях

Вайб-код для настоящих инженеров: старые практики в новых реалиях

ИИ-разработка уже не мем, а реальность промышленного использования. Теперь не джун, а нейросеть может нарушить стабильность GitHub, Amazon, Cloudflare и даже сервисов Anthropic и OpenAI. Светила вроде Кента Бека и Дяди Боба осваивают агентскую разработку, вновь ощущая кураж созидания. Эра ИИ пришла — но разработчиков она не заменила, а трансформировала: они перестали писать код вручную.

Новая эра — новые вызовы

Агентская разработка сегодня — это дикий запад. Каждый делает по-своему, фреймворков десятки, если не сотни. Бест-практисов пока нет: каждый хвалит своё болото. Но начинать с чистого листа необязательно.

Опыт автора — 3,5 месяца работы с Claude, 4 тысячи коммитов, 1500 тестов (из них ~350 e2e), 25 тысяч строк продакшн-кода (12k Java, 12k TS/TSX) и столько же тестового кода. Он — техлид в расчётном центре одного из крупнейших банков РФ, фанат экстремального программирования, DDD и TDD. Делится практиками, которые уже запросили коллеги.

Коротко по теории

Согласованная база: LLM-модели систематически врут. Это не баг, а особенность. Придётся с этим жить.

Context Rot

Чем больше контекста загружено в модель — тем хуже её ответы. Явление называется Context Rot: деградация качества при росте объёма контекста. Это центральная проблема ИИ-разработки. Вся свистопляска вокруг — это попытки минимизировать его влияние. Процесс называется Context Engineering.

С одной стороны, LLM нужен контекст: условия, ограничения, связанный код. С другой — чем его больше, тем модель менее надёжна. Работа ведётся в узком диапазоне: между необходимым минимумом и порогом, после которого модель «сходит с ума».

Конкретные значения

На основе опыта и анализа исследований — ориентиры для моделей семейства Opus:

  • На контексте >80% модель превращается в «невменяемого олигофрена»; любая нормальная система в этот момент запускает компактизацию.
  • На контексте >70% (для 200К) и >40% (для 1М) модель справляется только с простыми задачами.
  • На контексте >50% (200К) и >20% (1М) — перестаёт стабильно решать сложные задачи.
  • На контексте <40% (200К) и <10% (1М) — модель работает оптимально.

Инструменты контекстного инжиниринга

Основные утилиты в агентских системах:

  • /clear — сброс контекста. Новая сессия, вся история теряется. Как в фильме «Город забвения»: модель просыпается с чистого листа. Процесс должен быть устойчив к таким «амнезиям».
  • /compact — сжатие контекста в рамках сессии. Модель кратко пересказывает всё. Как в анекдоте про Рабиновича: могут потеряться важные детали. Полезно указывать, что сохранить.
  • agents — делегирование задач субагентам. Помогает разгрузить память главного агента. Системы сами это делают, но можно им помогать — хотя они могут и не послушаться.
  • /statusline — редактирование статусной строки. Позволяет понимать, с кем сейчас работаешь: с Эйнштейном или Форрестом Гампом.
  • /context — отображение текущего контекста. Полезно, если статусная строка не работает.
  • /resume — возобновление сессии. Позволяет вернуться к прерванной работе. Большинство сессий с Claude у автора начинаются именно с этого.

Дополнительные техники:

  • Spec-Driven Development (SDD) — опора на документацию (часто генерируемую), чтобы после сброса контекста модель имела консистентное представление о системе и планах.
  • Прогресс-файлы (progress.md) — чек-листы с ходом выполнения задачи. Позволяют не терять прогресс при сбросе контекста.
  • Progressive Disclosure — структура файлов, при которой раскрываются только необходимые детали. Эффективное индексирование контекста.

Тон и философия взаимодействия

Сформировался консенсус, повышающий качество взаимодействия с LLM:

  1. Ask don't tell. LLM работает лучше как коллега, а не инструмент. Вместо «сделай так» — «какие есть варианты? какой нравится?». Запрос аргументов повышает качество ответа.
  2. Интервью. Вместо детального описания требований — глубокое интервью. Через несколько вопросов кажется, что LLM понимает задачу лучше вас. Позволяет выявить непонятные детали.
  3. Графика. Современные LLM читают и рисуют. Сложные вещи можно попросить изобразить. И наоборот — баг, который не описать словами, можно вставить скрином.
  4. Ревью вторым агентом. Первый агент выполняет задачу, второй — проверяет правила. Иногда нужен третий проход. Но агент с «чистым» контекстом может переусердствовать и начать строить «воздушные замки».
  5. Чек-листы. LLM часто пропускает инструкции. При сотнях требований — почти гарантированно. Чек-листы заставляют модель отчитываться по каждому пункту. Иногда обманывает — пишет, что сломанные тесты «не в скоупе». Но это лечится промптингом и ревью.

Prompt Harness

Со временем вы начнёте повторно использовать одни и те же промпты. У кого-то даже появляется древовидная структура с перекрёстными ссылками. Агентские системы уже поддерживают такие практики:

  1. Skills — переиспользуемые промпты для типовых задач.
  2. Rules — контекст, полезный в любой момент. Загружается каждый раз.
  3. Agents — параллелизация + борьба с Context Rot.
  4. Hooks — bash-скрипты, выполняемые по событию. Например, уведомление о завершении задачи.
  5. Skill-creator — встроенный в Claude инструмент от Anthropic. Помогает создавать скиллы и валидировать правки. Но при валидации нужно корректировать, чтобы не подсказывать тестовым агентам.

Три главных требования к ИИ-разработке

Автор выделяет три системные ошибки, в которые вляпываются почти все:

1. Нельзя без фреймворка

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

Каждая повторяющаяся проблема у автора превращалась в промпт. Сейчас — несколько тысяч строк, даже после агрессивного рефакторинга. Без фреймворка из десятка-другого скиллов и правил разработка превращается в рутину. С фреймворком — в ритмичный, спокойный процесс.

2. Нельзя без тестов

Автотесты — это атомы поведения системы. В обычной разработке их часто саботируют. В ИИ-разработке — 100% покрытие обязательно.

Тесты никогда не были так дёшевы в написании. Но ИИ-разработка — самая рискованная по багам. Достаточно вспомнить хит-парад сбоев в AWS, OpenAI, Anthropic, Azure, Cloudflare и GitHub.

3. Нельзя без ревью

Мнение, что ИИ может писать код сам, — опасно. Может. Но как в анекдоте: «Печатаю со скоростью 1000 знаков в минуту... но такая фигня получается!»

Когда Anthropic заявляет «Coding is solved», но не может показать две девятки доступности — это наводит на мысли. Для многих систем такой уровень — непозволительная беспечность.

Человека из цепочки принятия решений исключать нельзя. Модели регулярно ошибаются со стейтом, конкуренцией, корнер-кейсами. Тесты не ловят всё: нужны параноидальные кейсы. Чаще всего баг сначала нужно увидеть глазами, а потом уже понять, как его протестировать.

Каждая строка, написанная нейросетью, должна быть отсмотрена. Почему ревью кода от человека — дефолт, а от ИИ — можно пропустить? Ведь ИИ ошибается чаще. Видимо, в нас всех живёт своя внутренняя LLM — ветреная и непостоянная.

Итого: Нельзя без фреймворка с тестами и ревью

Для зрелой ИИ-разработки нужен фреймворк, содержащий правила, опирающийся на тесты как меру прогресса и включающий ревью в процесс.

TDD идеально ложится на эту структуру: сначала проектируем требования, потом — тест-план, затем реализуем. Это естественно для Spec-Driven Development.

Ревью должно быть максимально частым. Большие PR с комментарием «LGTM» — иллюзия. Чем больше код — тем выше шанс пропустить ошибку. Человеческий мозг просто не вмещает большие изменения.

Собственно, фреймворк

Есть ли такой фреймворк в открытом доступе? С оговорками — Superpowers. Он в топ-50 GitHub, опирается на SDD и TDD, open-source, не навязывает архитектуру. Подходит как выбор по умолчанию для лёгких, но дисциплинированных процессов.

Альтернатива

Автор начал без фреймворка, перенося командные практики на ИИ. Со временем промпты превратились в систему — и в итоге в собственный фреймворк. Он строже, чем Superpowers, и лучше соответствует подходам автора: ATDD, Clean Architecture.

После обсуждения в канале его попросили опубликовать наработки. Пример будет доступен во второй части.

Читать оригинал