Идея для Agent API Вайб-Маркетолога: eval-слой между генерацией и запуском бюджета.
Генератор (/direct/ads-generate) выдаёт десятки комбинаций «заголовок × текст» за один
вызов — это сильно. Но дальше все они равноправны: какие комбинации реально готовы к запуску,
какие нарушают лимиты Директа или закон «О рекламе», а какие обещают то, чего нет на
лендинге клиента, — сегодня решает человек на глаз. На масштабе автопилота это дыра:
агент, который сам тратит бюджет, не имеет инструмента, чтобы сам себя проверить.
preflight.py — детерминированный контроль качества каждой комбинации до запуска:
| Проверка | Класс |
|---|---|
| Лимиты Директа: заголовок ≤ 56, текст ≤ 81, слова ≤ 22 зн. | БРАК (не пройдёт модерацию/обрежется) |
| Обещание объявления не подтверждено текстом лендинга (скидка N%, «доставка за час», гарантия N лет, «бесплатно», рассрочка…) | ГАЛЛЮЦИНАЦИЯ (риск: клики по невыполнимому обещанию = слитый бюджет + жалобы) |
| Превосходные степени без подтверждения («лучший», «№1», «самый») — ст. 5 ФЗ «О рекламе» | ИСПРАВИМО |
| CAPS, двойная пунктуация, покрытие ключевых фраз | ИСПРАВИМО |
Ключевой принцип: качество — число, а не вайб. Проверки детерминированные — без
LLM-судьи, поэтому результат воспроизводим, бесплатен в прогоне и пригоден как gate в CI
или как шаг автопилота перед /autopilot/run.
python preflight.py --url https://клиент.ru [--utp "..."] [--audit] [--out report.md]
POST /direct/ads-generate— пакет объявлений вашим генератором (с Idempotency-Key);- локально выкачивается текст лендинга;
- каждая комбинация прогоняется через чек-лист → вердикт
ГОДНО / ИСПРАВИМО / БРАК / ГАЛЛЮЦИНАЦИЯс причинами; --auditдополнительно снимает/direct/landing-auditв тот же отчёт.
Токен — из VIBE_API_TOKEN или файла, в код не зашивается. Скоупы: read + generate.
64 комбинации: ГОДНО 34 · ИСПРАВИМО 8 · БРАК 22.
34% выдачи бракуется ещё до запуска, и почти весь брак — один системный дефект: заголовки 58–59 знаков при лимите Директа 56. То есть генератору не хватает жёсткого пост-чека длины — ровно то, что preflight ловит за миллисекунды и бесплатно.
Полный отчёт с причинами по каждой комбинации: report.md.
- Gate для автопилота: перед
/autopilot/run— обязательный preflight; комбинации с вердиктом ГАЛЛЮЦИНАЦИЯ/БРАК не уходят в кампании. Плюс режим review-gate: изменения дороже порога — подтверждение одной кнопкой в Telegram (у вас уже есть inbox-механика). - Golden-set регрессия генератора: фиксированный набор лендингов + пороги (доля ГОДНО ≥ X%) — и каждое обновление промптов/моделей генератора проверяется автоматически, а не «на глаз». Это защита продукта от тихих деградаций.
- Отчёт клиенту как фича: тот же preflight в UI — «мы не просто сгенерировали, мы проверили и показываем почему» — аргумент продаж против генераторов-конкурентов.
Илья Шаповалов · ilya-proof.vercel.app · github.com/yagaMI-Reverse