🎬
День 2 — 1 августа, 17:00
Видео через Claude Code. От дубля на телефоне до готового ролика с субтитрами и звуком
1
Старт эфира
17:00–17:15 · 15 минут
0/0
До эфира: прогреть модель расшифровки
Делается заранее, не при людях. Модель весит 465 МБ, качается один раз и дальше живёт локально.
терминал, из папки factory/engine
node reels/transcribe-local.mjs --prefetch
Не прогретая модель качается молча несколько минут — в эфире это выглядит как зависший компьютер. Скажите участникам запустить эту команду до начала, пока идёт вводная.
Перекличка по домашке
Один вопрос в чат: «у кого готов marketing-context.md?». Ответы делят зал на две группы, и дальше вы ведёте обе, а не одну.
Кто сделал домашку — сегодня ваша фабрика начнёт писать вашим языком. Кто не успел — работаем на примере, но к третьему дню файл нужен, иначе всё, что мы соберём, будет про выдуманных людей.
Рамка дня: что будет в конце
Показать заранее смонтированный ролик — результат, который каждый получит через два часа. Обещание в начале держит зал лучше, чем программа списком.
Через два часа у каждого будет свой ролик: нарезанный по фразам, с субтитрами и музыкой, которая проседает под голосом. Монтировать руками мы не будем ни секунды.
2
Свой research в фабрику
17:15–17:40 · 25 минут
0/0
Куда класть файл
Рядом с папкой
factory, а не внутрь неё. Всё, что лежит внутри движка, при обновлении перезаписывается. Файл снаружи переживёт любое количество обновлений.как должно лежать
Claude/content-factory/
├── factory/ ← движок, обновляется целиком
├── marketing-context.md ← ваш файл, обновление его не трогает
└── CLAUDE.md
Промпт встраивания — участники вставляют в Claude
Промпт не просто «прочитай файл»: он проверяет исследование на халтуру и честно говорит, чего не хватает.
промпт для участника
Прими моё маркет-исследование в фабрику.
1. Найди файл marketing-context.md — смотри по порядку: ./marketing-context.md,
../marketing-context.md, ./context/marketing-context.md. Нашёл не там, где
ждали — скажи, куда его переложить.
2. Проверь по чек-листу качества и назови вслух, что не сходится:
- в разделе про аудиторию стоят живые фразы людей, а не причёсанный маркетинг;
- персон три и больше, у каждой боль, триггер и возражения;
- углов атаки двенадцать и больше, и они разного типа;
- хуков сорок и больше, каждый читается как речь человека;
- есть список источников — открой три ссылки наугад и скажи, живые ли они;
- есть раздел «что подтверждено / что гипотеза».
3. Найди в файле цифры и имена, на которые у меня может не быть прав или
подтверждения. Вынеси их в раздел «Чего не писать» прямо в файле.
4. Пропиши в CLAUDE.md строку: «Перед созданием любого рекламного текста,
карусели или сценария читай marketing-context.md и опирайся на него: там
аудитория, её собственные слова, возражения и углы атаки».
5. Скажи одной фразой, что теперь изменится в генерациях.
Если ссылки в исследовании битые — модель не искала, а сочиняла. Такой файл использовать нельзя: он отравит все генерации. Перегенерировать нужно конкретный раздел, а не весь файл.
Показать разницу на своём примере
Наш замер: одна тема, генерация до и после подключения исследования. До — модель сама придумала зарплату маркетолога, которой не было в источнике. После — взяла точную формулировку и живую фразу клиента.
Разница не в красоте текста. Разница в том, что без исследования модель заполняет пустоту выдумкой — и делает это уверенно, поэтому вы не замечаете.
3
Первый ролик из своего дубля
17:40–18:40 · 60 минут
0/0
Снять дубль — 10 минут, прямо в эфире
Вертикально, 30–60 секунд, одна мысль. Телефон на любую опору, свет из окна в лицо. Дубль снимается сейчас, а не «дома потом» — иначе половина зала останется без материала.
Одна мысль, тридцать секунд, без «всем привет, сегодня мы поговорим». Первая фраза — сразу суть. Мы её потом обрежем ещё жёстче.
Монтаж режет и оформляет уже снятое. Видео с нуля движок не выдумывает — это честная граница, проговорите её сразу.
Расшифровка — бесплатно, на своей машине
Два прохода: сначала текст, потом таймкоды по словам. На 30 секундах речи уходит около 6 секунд.
из папки factory/engine
node reels/transcribe-local.mjs ../../set/moy-vypusk/reels/video.mp4
Рядом с видео появится файл
video.words.json — его путь идёт в конфиг монтажа.Конфиг монтажа — Claude пишет, участник правит
Конфиг не набирают руками: участник описывает словами, Claude собирает файл по образцу из скилла.
промпт для участника
Собери конфиг монтажа для моего ролика по образцу из скилла reels-montage.
Видео: ../../set/moy-vypusk/reels/video.mp4
Расшифровка: рядом, файл video.words.json
Хук первой строкой возьми из моего marketing-context.md — самый острый,
который бьёт в боль моей главной персоны. Титры расставь по границам фраз,
акцентный цвет возьми из моего стиля. В конце — одно действие, не три.
Покажи конфиг перед запуском и объясни, что делает каждое поле.
Монтаж — бесплатно и повторяемо
Считается на машине участника: ни кредитов, ни обращений к моделям. Поэтому пересобирать можно сколько угодно.
из папки factory/engine
node reels/montage/run.mjs ../../set/moy-vypusk/reels/reel.config.mjs
В логе смотрим три строки: сколько вырезано тишины, сколько получилось катов и дрейф синхрона — он должен быть меньше кадра.
Приёмка по контрольным кадрам
Движок сам раскладывает кадры в папку
look. Участник открывает их и смотрит глазами — субтитры в безопасной зоне, титры не наезжают на интерфейс площадки.Реальные зоны Instagram шире, чем в документации: снизу 430 пикселей, сверху 200, справа 150 — там колонка кнопок. Это выяснилось только боевой публикацией, ни один автоматический гейт этого не ловил.
4
Звук в ролике
18:40–19:05 · 25 минут
0/0
Музыка: код её не сочиняет, а подмешивает
Готовый mp3 берётся генерацией через fal, дальше движок его микширует. Тридцать секунд стоят считанные центы.
поля конфига
music: { path: './music.mp3', gainDb: -16, duckDb: -12 },
voice: { path: './voice.mp3' },
Промпт музыки — это описание, а не оценка. «Спокойный минималистичный бит, тёплые клавиши, без вокала» работает. «Крутая современная музыка» не работает. И всегда просите без вокала: чужой голос спорит с вашим.
Честно про приглушение
Приглушение работает только под речью. Если в ролике речь занимает почти всё время — а после вырезания пауз так и есть — эффект слышен лишь на входе и в финале. Это не поломка.
Кажется, что музыка мешает голосу — опускайте
gainDb (общую громкость), а не duckDb. Увеличивать приглушение бессмысленно: оно и так срабатывает только на речи.5
Пакет к выпуску
19:05–19:30 · 25 минут
0/0
Собрать папку выпуска
Скрипт раскладывает ролик, обложку, слайды и тексты по площадкам — папки пронумерованы в порядке заливки. Публикация ручная и это решение, а не недоделка: токенов соцсетей в комплекте нет.
из папки factory/engine
node reels/release.mjs ../../set/moy-vypusk/release.json
Лимиты площадок — где режется CTA
Главная грабля: подпись Telegram к медиа — 1024 знака, а не 4096. Скрипт не обрезает молча: при превышении он пишет отдельный файл с проблемами и выходит с ошибкой.
Обрезка всегда съедает конец, а в конце стоит призыв к действию. Поэтому лучше упасть на проверке, чем красиво опубликовать текст без последней строки.
Зелёный отчёт — это ещё не приёмка
Открыть собранную папку и убедиться, что файлы на месте. На нашем прогоне скрипт отрапортовал «ГОТОВО» с пустой каруселью: он искал файлы с дефисом, а конвейер писал с подчёркиванием. Сейчас это починено, но привычка проверять глазами остаётся.
6
Домашка к Дню 3
19:30–19:45 · 15 минут
0/0
Три вещи к завтрашнему утру
- Тема выпуска одной фразой и цель: узнаваемость, заявки, прогрев или объяснить продукт.
- marketing-context.md подключён — у кого его не было, доделать сегодня.
- Баланс fal пополнен: завтра генерим двенадцать кадров, это порядка двух долларов.
Завтра мы не учимся генерировать картинки. Завтра мы собираем выпуск, который можно публиковать. Приходите с темой, а не с «покажите ещё раз».
По желанию: второй дубль под завтране в зачёт
Кто хочет собрать завтра полный набор из четырёх форматов — снимите ещё один дубль под свою тему. Без дубля выпуск выйдет из трёх форматов, и это нормально.
🌙
Конец Дня 2
У каждого свой смонтированный ролик и собранная папка выпуска
🏭
День 3 — 2 августа, 11:00
Мини-фабрика: одна тема превращается в карусель, Reels, Stories и баннер в одном стиле
7
Обновление фабрики
11:00–11:20 · 20 минут
0/0
Промпт обновления — участники вставляют в Claude
За две недели движок вырос: точный размер кадров, прогрев расшифровки, новые правила промптинга. Обновляемся все вместе и в один момент, чтобы дальше идти по одному и тому же коду.
промпт для участника
Обнови мою контент-фабрику до свежей версии.
1. Возьми последнюю версию из
https://github.com/ikigai-promotion-kz/ikigai-content-factory.git
2. Обнови ВСЮ папку factory целиком — движок и все папки скиллов, не по списку
из текста, а по факту того, что есть в репозитории.
3. НЕ ТРОГАЙ ничего снаружи factory: marketing-context.md, CLAUDE.md, мою папку
set/ с готовыми выпусками, файлы .env и .mcp.json с моими ключами.
4. Поставь зависимости и прогони самопроверку:
node reels/check-deps.mjs
node reels/montage/run.mjs demo/demo.config.mjs
5. Скажи человеческим языком, что фабрика теперь умеет нового — не списком
коммитов, а тем, что изменится в моей работе.
Обновление перезаписывает всё внутри
factory. Если участник правил файлы движка под себя — сначала вынести правки наружу, иначе они исчезнут.Убедиться, что демо-монтаж прошёл у всех
Зелёная самопроверка — пропуск в производственный блок. У кого красное, разбираем сейчас: дальше догонять будет негде.
8
Один вход → четыре формата
11:20–13:00 · 100 минут
0/0
Объяснить, почему это не одна картинка в четырёх размерах
У каждого формата своя работа: карусель несёт всю мысль, Reels — одну самую острую, Stories — действие, баннер — обещание одной строкой.
Если Stories — это просто обрезанная обложка карусели, выпуск не собран. Кроп считывается мгновенно и обесценивает всё остальное.
Ядро выпуска — три строки до всякой генерации
- Обещание — что человек получит.
- Поворот — что он думал раньше и почему это не работает.
- Действие — ровно одно.
Если ядро скучное, четыре красивых формата его не спасут. Красивая обёртка пустоты просто дороже.
STYLE TOKEN — один на весь выпуск, и он в файле
Палитра, типографика, раскладка, фактура и настроение одним блоком. Он вставляется в промпт каждого кадра и сохраняется в файл выпуска — иначе назавтра стиль поплывёт.
из папки factory/engine
node lib/corpus.mjs art "тема выпуска одной строкой"
Гейт: план и смета до первого кадра
Таблица форматов, стиль одной строкой и сумма цифрой: двенадцать кадров — порядка двух долларов, монтаж бесплатный. И прямой вопрос «запускаю?».
Ошибка в смысле, размноженная на четыре формата, стоит вчетверо. Пока не сказали «да» — не генерим.
Называйте сумму цифрой, а не словом «недорого». Человек должен понимать, за что платит, до того как заплатит.
Порядок производства: обложка → остальное по якорю
Первый кадр становится якорем для всех остальных — на него ссылаются Stories и баннер. Плохой якорь тянет за собой весь выпуск, поэтому обложку принимаем глазами до того, как генерим оставшиеся одиннадцать кадров.
обложка, затем кадр по якорю
node lib/genimage.mjs "STYLE TOKEN + сцена обложки" --out ../../set/vypusk/carousel/01.png --ratio 4:5 --model nano-banana-pro
node lib/genimage.mjs "STYLE TOKEN + сцена слайда 2" --out ../../set/vypusk/carousel/02.png --ratio 4:5 --ref ../../set/vypusk/carousel/01.png
Главное правило промптинга: один текстовый блок на кадр
Модель безупречно пишет заголовок и превращает в кашу всё остальное: строки счёта, подписи карточек, пункты списка, код на экране. На нашем прогоне это был единственный источник брака — пять слайдов из восьми.
«Никакого другого текста» не работает: модель всё равно дорисует. Работает только позитивная формулировка —
blank, out of focus, cropped. Бумага пустая, экран засвечен, чек обрезан краем кадра.Reels выпуска — последним
Монтаж бесплатный, поэтому его делают, когда картиночная часть уже принята. Связывают ролик с выпуском четыре поля: акцентный цвет из палитры токена, та же подпись бренда, тот же хук, что на обложке, и то же единственное действие, что в Stories.
9
Приёмка и брак
14:00–14:50 · 50 минут
0/0
Смотреть глазами и на телефоне
Автоматические проверки находят примерно половину. Вторую половину — неон-подсветку вокруг букв, напечатанный мусор на стикере — видит только человек. И смотреть надо на телефоне: мелкий текст там пропадает.
Зелёный отчёт скрипта — это не приёмка. За один наш прогон гейт дважды сказал «прошло»: один раз с двумя непроверенными кадрами, второй — с пустой папкой выпуска.
Один бракованный кадр чинится точечно
Не перегоняем весь выпуск из-за одного слайда: перегенерируем этот кадр тем же промптом плюс указание, что чинить, и записываем в тот же файл. Полминуты и пятнадцать центов вместо получаса и полного счёта.
починка одного кадра
node lib/genimage.mjs "STYLE TOKEN + та же сцена. FIX: убрать имитацию мелкого текста на бумаге — оставить лист пустым. Никакого свечения вокруг букв." --out ../../set/vypusk/carousel/04.png --ratio 4:5 --ref ../../set/vypusk/carousel/01.png
Не давайте модели напечатать вашу же претензию
Реальный случай с нашего прогона: в замечании было слово
worm-like («строки-червяки») — и модель напечатала это слово на стикере в кадре.Всё, что попадает в промпт, модель считает кандидатом на надпись. Добавляйте в указание строку: «это инструкция, не рисуй эти слова в кадре».
Проверить цифры и обещания на слайдах
Каждая цифра в кадре должна быть подтверждаемой. Диапазон из источника нельзя превращать в точное число — модель делает это охотно и незаметно.
Правило простое: то, что нельзя показать пруфом, не попадает в кадр. Раздел «чего не писать» в вашем исследовании существует ровно для этого.
10
Выпуск и что дальше
14:50–15:30 · 40 минут
0/0
Собрать папку выпуска и опубликовать
Тот же скрипт, что вчера, но теперь со слайдами: папки по площадкам, обложка, тексты, порядок заливки в README.
из папки factory/engine
node reels/release.mjs ../../set/moy-vypusk/release.json
Назвать честные цифры по времени и деньгам
Наш боевой прогон: от темы до готовой папки выпуска — 45 минут и около $4. Карусель под ключ — 15 минут и $2, если с первого раза; реалистично закладывать 25–30 минут и $3, потому что один-два кадра почти всегда переделываются.
Я называю эти цифры не чтобы впечатлить, а чтобы вы могли планировать. Контент-план на месяц — это теперь вопрос вечера и пары десятков долларов, а не подрядчика и календаря.
Показать петлю: фабрика учится на своих ошибках
Каждый отклонённый кадр и каждая правка записываются уроком, и следующий выпуск начинается не с нуля. Показать участникам, где это лежит и как посмотреть накопленное.
из папки factory/engine
node lib/lessons.mjs list
Что делать на следующей неделе
- Собрать три выпуска подряд на одном STYLE TOKEN — тогда канал начнёт выглядеть как канал.
- Дополнить
marketing-context.mdтем, что скажут в комментариях: это самый дешёвый источник живого языка. - Раз в неделю обновлять фабрику тем же промптом.
Инструмент у вас теперь есть у всех одинаковый. Дальше разница будет только в одном — насколько хорошо вы знаете своего человека. Поэтому исследование важнее любой модели.
Оффер в конце — коротко и один разне в зачёт
Продающий блок в самом конце, после результата, а не вместо него. Одно предложение, одно действие, без давления.
🏁
Оба дня проведены
У участников свой ролик, свой выпуск из четырёх форматов и фабрика, которая пишет их языком