Три дня назад два AI спорили о том, как устроить мою контент-машину. GPT победил, Claude реализовал. Всё заработало: берёт рабочие логи, извлекает истории, генерирует черновики для блога, Telegram, Threads. Конвейер крутится, файлы создаются. Одна проблема: на выходе были негодные тексты.
Работало всё, кроме результата
Extractor вытаскивал истории из логов. Drafter упаковывал в форматы. Всё по спекам. Технически ноль ошибок.
Но когда я начал читать готовые черновики, стало понятно: публиковать это нельзя. Extractor путал хронологию, потому что брал дату модификации файла вместо реальных timestamps сообщений. Drafter додумывал факты, которых не было в brief. А text-review, который должен был ловить косяки, пропускал повторы и AI-маркеры.
Отдельно порадовало: я показал черновик другому AI-агенту (тому, что работает с сайтом), и он нашёл кучу проблем, которые text-review пропустил. Один генерирует, другой ловит. Первый не замечает своих ошибок.
Мета в квадрате
Конвейер генерации контента сам стал объектом контента. Build-log генерирует текст. Текст оказывается плохим. Я чиню конвейер. Он генерирует текст о своей починке. Но это не шутка, а реальная проблема любого, кто строит автоматизацию контента. Посты создаются, метрики зелёные, а читать невозможно.
Что конкретно сломалось и что я переделал
Из 11 изменений — пять, которые дали больше всего эффекта.
Timestamps вместо дат файлов
Extractor определял «когда произошло событие» по mtime файла. Отредактировал лог сегодня — событие недельной давности получало сегодняшнюю дату. Хронология превращалась в кашу.
Фикс: парсинг timestamps сообщений внутри лога. Плюс дедупликация с предыдущими briefs. Если история уже извлечена вчера, повторно она не появляется.
Скилл /text-review
Раньше отдельного шага полировки текстов не существовало. Drafter генерировал черновик, и это считалось финальным результатом.
Создал отдельный скилл для текстового контента. Он проверяет частоту слов (если «система» встречается 15 раз на 800 слов — проблема), ловит FAQ-антипаттерн (когда FAQ выглядит как допрос самого себя), ищет повторы между постами серии, проверяет ссылки.
Единые категории для всех платформ
Блог, Telegram, Threads, Reels — каждая платформа жила по своим правилам. Один и тот же текст мог быть «Build Log» в блоге и «AI-инструменты» в Telegram.
Теперь 4 категории: Build Log, AI + Работа, Деньги и выбор, Мышление. Едины для всех платформ. Категория — это угол подачи, не тема.
Platform profiles
Drafter получал слишком много контекста. Загружались все ресёрчи, все правила, все примеры. Результат: раздутые тексты, которые пытались угодить всем правилам сразу.
Решение: 4 сжатых профиля платформ (blog, telegram, threads, reel-pack). Каждый содержит конкретные правила для конкретного формата.
Структура по датам
Мелочь, но показательная. Раньше все briefs и drafts лежали в одной папке. За неделю накапливалась каша. Реорганизовал в папки по датам. Когда работаешь с ежедневным конвейером, структура хранения — не косметика, а необходимость.
Больше шагов. Медленнее. Но можно публиковать
Главная ловушка автоматизации контента — метрика «количество сгенерированных текстов». Конвейер выдаёт 5 черновиков в день. Графики красивые. Но если ни один черновик нельзя опубликовать без полной переработки, конвейер бесполезен.
V1: extractor, drafter, готово. V2: extractor (с timestamps и дедупликацией), drafter (с platform profiles), text-review (с подсчётом слов и антипаттернами). И только потом я читаю и правлю.
Медленнее. Зато на выходе тексты, которые можно публиковать.
Итоги
- Работающий конвейер и полезный конвейер — разные вещи. V1 генерировала тексты, публиковать их было нельзя
- Главный фикс не в алгоритмах, а в шагах проверки. Text-review, дедупликация, подсчёт частоты слов
- AI отлично генерирует и плохо проверяет сам себя. Нужен или другой агент, или человек
- Мета-контент (конвейер пишет о себе) работает, если за ним стоит реальная проблема, а не игра слов
- 11 изменений за 2 дня. V2 запущена, обкатывается