Над чем работаю · 02 мая 2026 · автоматизация

QA-конвейер заблокировал деплой с 19 нарушениями. И это хорошо

Автомат поймал «гарантия 4 недели» из договора в публичных текстах сайта. Без него ушло бы в прод. Что внутри pre-deploy линтера агентства.

Сегодня мой автомат поймал то, что я бы пропустил руками. Pre-deploy QA-чек проверяет тексты сайта на запреты §10 (гарантии, имена клиентов, AI-штампы) и блокирует заливку на FTP при RED-нарушениях. Прошёл 19 RED и 31 YELLOW: деплой остановлен. Что внутри этого контура и зачем он любому, кто ведёт сайт агентства с клиентскими кейсами.

Картина дня Что показал отчёт QA-PRE

  • 19 RED: критичные нарушения, блокируют деплой
  • 31 YELLOW: мягкие предупреждения, деплой проходит, но висят как долг
  • Статус: BLOCKED. Заливка на FTP физически не запускается
  • Время: 11:48:02. Один взгляд в отчёт и сразу понятно где чинить

Что именно поймал автомат Договорные формулировки в публичных текстах

Самое неприятное и самое полезное. Формулировка «гарантия 4 недели после приёмки» расползлась с описания услуги на 5 страниц: главную, страницу продуктов, страницу проектов «Диспетчер», «Контент-фабрика 50 инфлюенсеров» и в шаблон.

В договоре с клиентом эта фраза на своём месте. Стороны подписали, всё прозрачно. На публичном сайте она нарушает мои собственные правила из §10 SUPER_PROMPT: никаких маркетинговых гарантий результата. Договорная гарантия живёт в документе клиента, а не на странице сайта.

Ещё одна находка: на странице кейса автосервиса в OG-метатеге (служебный тег, который задаёт превью ссылки в соцсетях) торчало имя бренда клиента, которого я обязался не упоминать в публичных коммуникациях. На странице написано «студия автосвета», а в OG сидел реальный бренд. Типичная ситуация: переименовываешь page-title и забываешь про OG, потому что глазами он не виден.

Динамика Как это исправлялось

8 итераций pre/post QA-отчётов за один день, с 11:48 до 14:43. Схема одна: правлю файл, запускаю deploy_mwb.py (скрипт публикации), QA-чек либо пропускает, либо снова блокирует с уточнённым отчётом.

Финальный отчёт QA-POST в 14:43:17: статус OK, RED 0, YELLOW 0. С первой попытки до полного OK прошло 2 часа 55 минут. Без автомата это была бы полу-ручная вычитка через grep с неизбежными пропусками или честно написанная статья за 8 часов с привлечением второго человека.

Ценность не в сэкономленном времени на правки. Исчезает тревога «что я там забыл проверить». Когда отчёт говорит OK, он действительно OK по тем правилам, которые в него зашиты.

Главное про QA-чеки Автомат защищает от собственной небрежности

Главная польза не в том, что скрипт «находит нарушения». Он защищает меня от моей же небрежности: скопировал блок текста с одной страницы на другую и не вспомнил, что внутри была договорная формулировка под конкретного клиента.

Память на «откуда этот блок 3 месяца назад» просто не работает. Скрипт один раз получил список запретов и проверяет его при каждом деплое: без усталости, без «ладно, в этот раз пройдёт».

Технически Как это устроено

Это qa_check.py, скрипт на Python ~300 строк. При каждом запуске deploy_mwb.py сначала вызывается run_qa("pre"). Он сканирует все HTML-файлы в _build/content/ и собранные страницы по regex-шаблонам (регулярным выражениям):

  • guarantee_result: обещания результата без оговорок (маркетинговые гарантии, не договорные)
  • client_brand_leak: имена клиентов из списка обезличенных
  • ai_stamp: характерные AI-маркеры в текстах (распиаренные слова-паразиты)
  • banned_brand: список финально запрещённых партнёров и брендов

Каждое правило — кортеж из (regex, описание, severity). RED блокирует deploy, YELLOW только предупреждает. Отчёт сохраняется в site/reports/qa-pre-YYYYMMDD-HHMMSS.md и параллельно отправляется в Telegram владельцу. После успешного deploy запускается run_qa("post"): он curl-ит живые URL и проверяет 200 OK.

Кому пригодится Признаки бизнеса, которому нужен такой контур

  • Сайт агентства с клиентскими кейсами, NDA или обезличиванием
  • Публикуете тексты часто (1+ раз в неделю): что-то упустить реально
  • Используете AI для черновиков. Он любит «революционно/бесшовно», их надо отлавливать
  • Есть свой свод запретов по тону, брендам, гарантиям. Без машины он не соблюдается
  • Работаете один или малой командой, второй человек для вычитки не предусмотрен

Соберу такой QA-контур под ваш сайт за выходные

Пишем список запретов под ваш бренд, вшиваем в pre-deploy hook, настраиваем алерты. После этого деплой проходит через автомат и не пропускает то, что вы не хотите видеть в проде.

Запросить аудит →
Владимир Кулиев

Об авторе

Меня зовут Владимир Кулиев. Сначала я занялся вайбкодингом сам: собрал себе сайты, ботов и автоматизацию. Теперь делаю такое же для клиентов.

  • 13 лет веду свою кайт-школу, 2000+ клиентов
  • Собрал публикатор для нескольких площадок и Telegram-бота с метками для рекламы
  • Настраиваю Яндекс Директ и Яндекс Бизнес
  • Строю SEO-систему для собственного сайта

Что собрал

Все кейсы

Клиентов показываю без названий.

Какой продукт вам нужен

Выберите свою ситуацию, покажу, что подходит и сколько стоит.

Начните с доступа

Гайд про регистрацию и оплату Claude из России: текст со скриншотами, что делать, если не проходит карта.

Схематично: вопрос про доступ и ответ из гайда

Группа, один на один или установка

Вы собираете своё, я рядом: в Zoom с группой или лично.

Схематично: встреча в Zoom

Сделаю за вас

Разработка и ведение под ваш процесс. Типовые сайты и боты лежат в услугах.

Схематично: выбор задачи

Помочь выбрать продукт

Сделать самому

Гайды, уроки и шаблоны без живой поддержки, в своём темпе.

  • Гайд «Старт с Claude»

    Регистрация в Claude из России: номер, почта, оплата и защита от бана.

    Что внутри

    • 15 глав текстом, около 3,5 часа
    • VPN, оплата картами и USDT
    • Модели, проекты, артефакты
    990 ₽ разово
  • Гайд «Claude Code глубже»

    Sub-агенты, hooks и MCP-серверы. 10 глав, доступ навсегда.

    Что внутри

    • 10 глав, около 6-7 часов
    • MCP-серверы, скиллы, Computer Use
    • Cron и бенчмарк моделей
    990 ₽ разово
  • Семь уроков по вайбкодингу

    Лендинг, Telegram-бот и парсер данных на Claude Code. Без поддержки.

    Что внутри

    • Около 4 часов
    • Установка, промпты, отладка
    • Безопасность и секреты
    1 490 ₽ разово
  • 12 готовых шаблонов

    Заготовки для Claude Code, MCP и n8n, чтобы не собирать с нуля.

    Что внутри

    • CLAUDE.md и промпт-паки
    • Конфиги MCP и сценарии n8n
    • Обновления без подписки
    4 990 ₽ разово

Работать со мной

Практикум и менторство я веду сам. Группа идёт неделю, менторство один месяц.

  • Практикум на неделю

    Группа 8-10 человек в Zoom, 7 встреч по 2 часа. За неделю собираете бота, сайт и таблицу-CRM на своём сервере.

    Что внутри

    • Лендинг, Telegram-бот, Google Sheets
    • Деплой на сервер и безопасность
    • Записи встреч остаются у вас
    15 000 ₽
  • Менторство один на один

    Четыре встречи по 2 часа за месяц на вашем проекте, всего 8 часов. Беру двух человек одновременно.

    Что внутри

    • Бриф и разбор вашего стека
    • Личный чат в Telegram
    • Запись каждой встречи
    72 000 ₽ за месяц

Разработка под заказ

Если делать самому некогда, я собираю и веду систему за вас.

  • Кастомная разработка

    CRM, платежи и связка систем под ваш процесс. Стандартные боты и ИИ-агентов беру как услугу.

    Что внутри

    • Бриф и разбор задачи до договора
    • Договор, оплата этапами 50% и 50%
    • 4 недели сопровождения после сдачи
    Цена по согласованию
  • Абонемент на ведение

    Помесячное ведение собранной системы: правки, новые сценарии, отчёт.

    Что внутри

    • Три тарифа: 20 000, 35 000 и 60 000 ₽ в месяц
    • Реакция в течение рабочего дня
    • Договор помесячный
    от 20 000 ₽ в месяц

Остались вопросы по новости?

Напишите мне в Telegram: подскажу, с чего начать. Или оставьте заявку, я отвечу сам.

Claude CodeChatGPTAntigravityVS CodeGeminiCodexGigaChatYandexGPT
Хватайте и бросайте

Или оставьте контакты, я свяжусь

Напишите, что хотите разобрать или настроить.

Данные нужны только для ответа вам

Форма работает с включённым JavaScript. Напишите мне в Telegram или позвоните +7 909 457‑10‑62.