Анимационный ролик без камеры
Тема → script → выбор озвучки → таймкоды → motion brief → preview → явное утверждение → final → QA. Планирование выполняй в текущей подписке Claude Code/Codex. Отдельные OpenAI/Anthropic API для сценария, режиссуры или монтажа не нужны.
Сначала покажи выбор монтажа
Прочитай reel-turnkey/references/creative-motion.md.
Если пользователь ещё не выбрал маршрут, сразу покажи карточку «Как монтируем?»:
уникальный Creative Motion (рекомендуется), готовый установленный стиль или монтаж по
референсу. При явном выборе не спрашивай снова; «реши сам» означает Creative Motion. После
выбора автономно реши типографику, палитру, композиции, B-roll, музыку и тайминги, а пользователю
покажи один полный проверенный preview.
Границы
- Используй отдельную композицию
MotionReelи схемуschema/motion-brief.schema.json. Исходник – аудио, безfaceSrc, подставного видео и требования показывать спикера в хуке. - Готовый маршрут использует семь сцен:
kinetic-title,card,steps,list,counter,media,ctaи публичную темуmotion-neutral; стандарт – 1080×1920, 30 FPS. - Creative Motion создаёт новый арт-дирекшн и project-local полноразмерный motion-слой внутри
projects/<id>/motion-vNN/. После официальной нормализации он подключается как провереннаяmedia-сцена сaudioMode: mute; narration остаётся мастер-аудио. Общий движок не меняется. - Все материалы ролика сохраняй внутри игнорируемой
projects/<id>/. Не меняй движок, общие сцены и тему ради одного клиента. Не публикуй его текст, голос, медиа или рендеры. - Расписание, очереди и автопубликация – будущий отдельный слой. Этот движок отдаёт локальный MP4; не обещай фоновый выпуск роликов и не подключай аккаунты площадок.
- Полные рендеры в одном checkout запускай последовательно.
1. Прими тему и подготовь script
Прочитай AGENTS.md, доступную локальную память и состояние Git. Проверь окружение через
automontage doctor. Для проверки установки без ключей и Whisper используй
automontage demo --motion: он создаёт только draft с тестовыми тонами, не речь.
Первичная установка зависимостей и Remotion browser может потребовать интернет; подготовленное
демо рендерится офлайн. Повторная команда не перезаписывает существующую папку.
Если маршрут ещё не выбран, покажи стартовую карточку до подготовки script. После выбора не задавай вопросы о вкусовых деталях, которые можешь решить самостоятельно; вынеси их в полный preview. До него допустим максимум один действительно блокирующий вопрос о смысле, правах или CTA.
Извлеки цель, аудиторию, главную мысль, длину, обязательные факты и CTA. Напиши короткий script из одного тезиса на сцену; сохрани его локально. Факты, числа и цитаты бери из материалов пользователя или проверенных источников. Покажи неподтверждённые формулировки как предложения, не выдавай выдуманные достижения за факты. Покажи текст до записи/платной генерации голоса.
2. Выбери озвучку
По умолчанию используй готовый MP3/WAV/M4A или запись пользователя. Если аудио ещё нет, сначала подготовь script; не подменяй человеческую озвучку тестовыми тонами демо.
automontage motion narration.wav --project "Название ролика"
Команда копирует аудио в новый workspace, получает таймкоды через локальный faster-whisper
и создаёт односценовый draft scaffold. Это заготовка, её нужно превратить в смысловой план.
Whisper при первом запуске может скачать модель. Если установка/модель отсутствует, помоги
доустановить её; не запрашивай OpenAI API. Если распознавание прервалось после создания проекта,
исправь причину и продолжи automontage motion --project-dir projects/<id>.
Необязательная ElevenLabs-озвучка
Это отдельный платный API: до вызова покажи точный script и выбранный голос, объясни, что текст будет отправлен ElevenLabs, а стоимость зависит от аккаунта провайдера. Получи явное согласие на передачу текста и расходы. Наличие ключа не означает согласия. Не обещай бесплатную генерацию и не повторяй запрос ради проверки.
Ключ ELEVENLABS_API_KEY и приватный ELEVENLABS_VOICE_ID пользователь задаёт локально
в environment или .env. В репозитории нет ID голоса по умолчанию. Не проси ключ в чат,
не показывай его/ID в логах, props, manifest или браузере.
Только после согласия (ID может быть задан приватной переменной):
automontage motion --script script.txt --voice elevenlabs \
--project "Название ролика" --accept-provider-cost
--voice-id <voice-id> – необязательное явное переопределение приватного ID. API возвращает
аудио и alignment; они превращаются в таймкоды слов без повторного Whisper. Результаты и кэш
живут только в игнорируемом workspace. Ключ кэша учитывает script, voice ID, модель, настройки
голоса и формат. Отсутствующие ключ/ID/согласие блокируют запрос.
Timeout, разрыв ответа или неоднозначный сбой не повторяются автоматически: запрос мог уже
стоить денег. Сохрани workspace и журнал попытки, проверь состояние у провайдера с пользователем;
не удаляй attempt.json, не обходи блокировку новым проектом. Повреждённый кэш требует разбора,
а не новой оплаты. При отсутствии согласия продолжи с готовым локальным аудио.
3. Подготовь timed motion brief
Прочитай transcript/words.json, сверь script и фактическую речь, длительность и конец слов.
Озвучка – источник времени. Создай полный пакет по reference:
сцены, экранный текст, события анимации, выбранные локальные media и музыкальные решения.
Публикуй новую Markdown+JSON draft-ревизию через publishBriefRevision; не переписывай историю.
Тайминги start/end – глобальные секунды от начала аудио, без пересечений и за границами
длительности; каждый край совпадает с кадром FPS brief. Планируй событие примерно раз в
1,5–2,2 секунды, используя готовые reveal-анимации. Не добавляй выдуманные timing/CSS/JS-поля.
Длинную мысль разбивай на сцены. steps показывает узел → соединитель → следующий узел.
counter заканчивается на проверенном числе; обычная полоса субтитров выключена,
необязательный caption используй только когда он помогает чтению.
Проверенные фото/видео и музыка должны лежать локально внутри workspace и иметь SHA-256.
Remote URL и неподтверждённый файл не подставляй в brief. Для видео явно выбери trim и звук:
mute по умолчанию, mix или replace только по смыслу. Motion Review сейчас только для
просмотра; его lesson-инструменты правок и Pexels-полка для этого режима недоступны.
В Creative Motion дополнительно создай ДНК дизайна, 6–10 разных визуальных конструкций для ролика на 2–3 минуты и anti-template карту по shared reference. Не повторяй одну композицию, не ставь одинаковые motion-механики рядом, используй современную гарнитуру с кириллицей, реальные экраны/логотипы и поэтапно строящиеся схемы. Project-local слой должен сохранять глобальный таймкод narration и не содержать используемого собственного звука.
4. Покажи настоящий preview
Во всех примерах <id> и vNN замени фактическими путями последней ревизии из project.json.
Команды node scripts/... выполняй из корня движка.
automontage preview --project-dir projects/<id> --brief brief/vNN-draft.motion.json
node scripts/qa-preview.js --project-dir projects/<id>
automontage review --project-dir projects/<id>
Preview проходит через настоящий MotionReel, содержит watermark ЧЕРНОВИК и сохраняется
только в previews/. Посмотри полный ролик, начало, steps, плотный текст, counter, media и CTA;
проверь читаемость, safe zones, звуковую синхронизацию, паузы и отсутствие обрезанных слов.
Для Creative Motion также проверь отсутствие повторяющихся композиций, пустых чёрных переходов,
обрезанных скриншотов и случайного системного шрифта.
Покажи пользователю полный preview и соответствующий пакет ТЗ. Успешный QA, Save и просмотр
не являются утверждением. После правки создай новый draft и новый полный preview.
5. Явное утверждение, final и QA
Только после однозначного утверждения пользователем именно показанной версии и подтверждения полного просмотра выполни:
node scripts/project/approve-brief.js projects/<id> brief/vNN-draft.motion.json --confirm-preview-viewed
automontage motion --project-dir projects/<id> --brief brief/vNN-approved.motion.json --version-label reviewed
Approval связывает hashes draft, preview и narration. Только текущая зарегистрированная
approved-копия может попасть в renders/ и final/; receipt нельзя составлять вручную.
Изменение script/аудио/таймингов/темы/сцен требует нового draft, preview и утверждения.
Уже утверждённые JSON bytes не редактируй, даже ради форматирования.
Движок проверяет полный decode и геометрию/FPS/длительность до публикации final. Дополнительно
посмотри и прослушай весь итог, проверь H.264/AAC, один выходной аудиопоток, громкость,
синхронизацию начала/середины/конца и отсутствие watermark. При music проверь ducking:
речь должна быть понятна. Технический PASS не заменяет визуальную и звуковую проверку.
При сбое сохраняется предыдущий final; устрани причину, не выдавай failed-версию за готовую.
Отдай ссылку на локальный файл из manifest.final (обычно final/<slug>.mp4), длительность
и краткий QA-итог.