name: motion-run description: Сделать все анимационные вставки для ролика от начала до конца (по умолчанию в стиле v4 «презентация с картинками» — эталон, одобренный автором) — посмотреть видео или транскрипт, разметить motion-план, раздать сцены сабагентам, принять работу, собрать черновой монтаж со вставками поверх исходника и отдать его вместе с MP4 по таймкодам. Используй этот скилл всегда, когда пользователь просит сделать анимации для своего ролика, оживить видео вставками, «сделать как у такого-то блогера», собрать графику под уже записанный материал или довести ранее размеченный motion-план до готовых файлов. Это точка входа: сам зовёт /motion-plan для разметки и раздаёт сборку по /motion-build. Для одной отдельной анимации бери /motion-build напрямую.
Оркестрация анимационных вставок для ролика
Ты ведёшь весь путь: сырой материал → motion-план → готовые MP4 с таймкодами, которые пользователь кладёт в свой монтаж. Сам ты почти ничего не строишь — планируешь, раздаёшь и принимаешь работу.
Твоя главная ценность здесь — приёмка. Сабагенты собирают композиции добросовестно, но композиционные провалы видит только тот, кто смотрит кадры со стороны. Провал приёмки стоит дороже, чем провал сборки.
Пайплайн v4 (по умолчанию)
Стиль — ../motion-build/references/style-v4.md. Проверенный порядок (стрим 41 мин, 34 вставки + интро):
- Текст и кадры.
/watchпо исходнику (transcript), для плана — пословная разметка кусков. - План через
/motion-plan→ показать пользователю, согласовать правки (длина интро, плотность, раскладки там, где автор рисует). Сборку не начинать без ок. - Рабочая папка
Wв scratchpad//tmp:scenes.json({NN: start, dur, layout, title}),scenes/,img/,clips/. - Картинки:
prompts.tsv→zsh ../motion-build/scripts/gen_images.sh prompts.tsv W/raw→alpha.py W/raw W/img. Посмотри лист всех картинок: дубли и неудачные (фон остался, объект не тот) — перегенерируй. - Клипы:
python3 ../motion-build/scripts/cut_clips.py W source.mp4 --cam x,y,w,h(вебку измерь по кадру). - Бриф: скопируй
references/build-brief-v4.mdвW/BUILD-BRIEF.md, впиши пути и правки плана. Одобренные ранее сцены клади вW/scenes/как эталоны. - Раздача: 7–8 сабагентов одним сообщением, по 3–5 сцен одной раскладки на агента (kinetic — одному
агенту целиком). В задании: бриф, эталон раскладки из
recipes/v4/, спеки, «кадры смотреть глазами». - Приёмка — по полноразмерному кадру конца каждой сцены (кроп панели), контакт-лист 3×3 врёт в кегле. Возвращай с конкретикой: «подписи ≥30px, герой ≥240px, нижняя половина панели пустая». Когда найдёшь общую ошибку — сразу разошли её ещё работающим агентам.
- Сборка:
python3 scripts/assemble_v4.py W source.mp4 [--intro intro.mp4 --cut SEC]— вставки со своим SFX + черновик. Сними кадры черновика в точках вставок и на стыках. - Сдача — в папку рядом с исходником:
draft.mp4,inserts/NN_ММ-СС-Д_тема.mp4+index.mdс таймкодами, чистая база (если было новое интро), картинки,music.mdсо ссылками (музыку не вшивать).
Порядок (общий)
1. Разметка
Загрузи /motion-plan и пройди по нему. На выходе — MOTION.md: список сцен с таймкодами,
выбранным приёмом, содержимым кадра и обоснованием, почему именно этот приём показывает эту мысль.
Покажи план пользователю до сборки. Сборка десяти сцен стоит дорого; переделывать план после неё больно. Спроси, что убрать, что добавить, где приём не попал в мысль.
2. Спеки
Каждой сцене из плана нужна своя покадровая спека — сабагент не должен домысливать. Положи её
в <проект>/SPEC.md внутри директории сцены. Формат спеки — в /motion-plan,
раздел «Спека на сцену».
Заведи каждой сцене отдельный проект-директорию. Сабагенты работают параллельно, check
проверяет проект целиком, и сломанная композиция соседа будет мешать.
Сделай шаблон один раз, потом размножь копированием:
./node_modules/.bin/hyperframes init _template --example blank --non-interactive --resolution landscape --skill motion-graphics
Скопируй в шаблон папку assets/ скилла motion-build целиком
(.claude/skills/motion-build/assets/) — tokens.css тянет шрифты через @import,
и структура каталогов должна совпасть:
cp -R .claude/skills/motion-build/assets/. _template/assets/
Дальше по копии на сцену:
for name in scene-01 scene-02 scene-03; do cp -R _template "$name"; done
2б. Собери эталонную сцену сам
Перед раздачей выбери одну сцену — лучше среднюю по сложности, с числом или парой карточек — и собери её своими руками до рендера. Это стоит десяти минут и решает сразу три задачи:
- Проверяет пайплайн. Если
init, токены, шрифты или рендер где-то спотыкаются, ты узнаешь об этом один раз, а не девятью одинаковыми отчётами. - Назначает сквозные константы ролика. Кегли, каденция набора, механика фона, дрейф, двухступенчатый вход — всё это должно быть одинаковым во всех сценах, а по умолчанию каждый сборщик выбирает своё. Дизайн-система задаёт диапазоны, а не числа.
- Даёт сборщикам образец, а не описание. Прочитать готовую сцену того же ролика намного надёжнее, чем вычитывать те же правила из справочников.
Рядом положи короткий файл сквозных констант (BUILD-BRIEF.md) и в задании каждому сабагенту
указывай и его, и путь к эталонной композиции: «прочитай ins-b2/index.html — от неё
наследуются типографика, ритм, фон и структура таймлайна; меняется только наполнение».
В брифе должно быть: таблица кеглей с конкретными числами, палитра и запрещённые подмены цвета, механика фона и сквозного наезда дословно, правило кадра 0, каденции набора, список запретов движка, координаты keep-out сквозного якоря и команды пайплайна.
Проверено на ролике из девяти сцен: девять независимых сборок вышли визуально одной системой, выравнивающий проход после рендера не понадобился.
3. Раздача
Запускай сабагентов одним сообщением, все сразу — они работают параллельно, и это в разы быстрее последовательной сборки.
В задании каждому:
- рабочая директория — только его сцена, чужие не трогать;
- прочитать
SPEC.md, потом загрузить скиллmotion-buildи следовать ему; - посмотреть кадры глазами через Read, а не только прогнать
check; - отрендерить MP4 и оставить его в
renders/своего проекта, никуда не копируя; рабочую папку не удалять; - вернуть коротко: что получилось, путь к MP4, что было сложным, что осталось неидеальным.
Обязательно проси называть расхождения со спекой. Спеку пишешь ты, не видя кадров; сабагент кадры видит. Его поправки — самая полезная часть отчёта.
Восемь сцен одной волной проходят нормально — рендер занимает секунды, основное время уходит на авторинг, и машина на этом не упирается. Волнами дели, когда сцен больше десяти: тяжелеет не машина, а разбор отчётов.
Про сбор результатов договорись заранее. Без явного указания сборщики раскладывают MP4 кто
куда: в renders/, в общий output/, в папку из CLAUDE.md, иногда в две сразу «чтобы
оркестратор точно нашёл». Один раз это стоило поиска рендеров find'ом по всему диску.
Правило простое: каждый оставляет файл у себя в renders/ и называет путь в отчёте,
раскладываешь по именам и таймкодам ты сам на сдаче.
4. Приёмка
По каждой сцене сними кадры сам и посмотри их:
cd scene-01 && ../node_modules/.bin/hyperframes snapshot . --frames 8 -o review
Читай review/contact-sheet.jpg через Read. Не полагайся на контакт-лист, который приложил
сабагент, — он бывает от предыдущей итерации.
На что смотреть в первую очередь, по опыту:
- Масштаб. Самая частая беда: текст на 40px там, где нужен 54, иконки по 90px у самых кромок.
- Пустой кадр. Особенно сразу после самого дорогого движения — приёму некуда приземлиться.
- Приём формально есть, но не читается. Заливка перетекает незаметно, шов выглядит как кроссфейд, перспектива не видна на статике.
- Артефакты. Кольца бандинга на градиентах, тёплая грязь в середине смены цвета, маркер, обрывающийся посреди слова.
- Иерархия. Служебный элемент (марка, кикер) не должен весить больше сообщения.
Отправляй правки через SendMessage тому же агенту — у него весь контекст сцены, повторный запуск дороже. В правке говори, что не трогать: без этого агент перестраивает то, что уже хорошо.
Принимай сцену, когда приём читается на кадрах, а не когда check зелёный.
5. Черновая сборка — обязательный шаг
Не отдавай папку файлов, не собрав из них черновик. Часть провалов видна только на собранном ролике и невидима посценно — сколько сцен ни принимай по отдельности, целое ими не проверяется.
Собери готовые MP4 в папку с именами вида NN_MM-SS-D_приём.mp4 (таймкод в имени — из него
скрипт берёт позицию), потом:
python3 <путь-к-скиллу>/scripts/assemble.py --root <рабочая-папка> \
--source m1=~/Desktop/part1.mp4 --source m2=~/Desktop/part2.mp4 \
--anchor 1245,690,650,345
Вставка замещает картинку на своей длительности, звук исходника идёт непрерывно, хронометраж не меняется, склейки жёсткие.
--anchor — про сквозной якорь, и это главное на этом шаге. Если в исходнике есть камера-PiP
или другой постоянный элемент, полнокадровая вставка его убирает: говорящий пропадает из кадра
на каждой вставке и возвращается. Двадцать раз за ролик это разваливает монтаж на отдельные слайды
и прямо нарушает закон 16. Флаг накладывает область якоря поверх всех вставок разом.
Координаты якоря измерь по кадру исходника, а не угадывай: вытащи кадр
(ffmpeg -ss 300 -i src.mp4 -frames:v 1 f.png), посмотри его и сними прямоугольник. Положение
может отличаться между частями — проверь каждую.
6. Приёмка собранного
Сними кадры уже из черновика и посмотри их: точки внутри вставок, между ними, и обязательно стык частей. На что смотреть:
- якорь не пропадает на вставках;
- вставки стоят по своим таймкодам, а не уехали;
- звук не рвётся на границах;
- на стыке частей нет скачка яркости или громкости;
- две сцены на одном приёме подряд не читаются одним кадром дважды.
7. Сдача
Отдай пользователю черновик плюс таблицу: таймкод, файл, длительность, что показывает — чтобы он мог заменить любую вставку в своей монтажке, не пересобирая всё.
Если сцен много и хочется показать всё сразу — собери страницу с превью и опубликуй артефактом. Видео жми до 1280px / CRF 30 и вшивай как data-URI: десять сцен укладываются примерно в полтора мегабайта, лимит артефакта 16 МБ.
ffmpeg -y -i in.mp4 -vf scale=1280:-2 -c:v libx264 -preset slow -crf 30 -pix_fmt yuv420p -an out.mp4
Чего не делать
Не строй сцены сам, пока их больше двух. Смысл оркестрации в том, что твой контекст остаётся чистым для приёмки. Если ты соберёшь три сцены руками, на четвёртой перестанешь замечать композиционные провалы.
Не принимай по отчёту. Отчёт сабагента говорит, что он сделал, а не как это выглядит. Смотри кадры.
Не переписывай план на ходу. Если в процессе стало ясно, что приём выбран неудачно, скажи
об этом пользователю и поправь MOTION.md, а не тихо собери что-то другое.
Не считай работу законченной на папке с MP4. Пока не собран черновик, ты не знаешь, как это выглядит вместе: пропадающий якорь, сбитые таймкоды, две одинаковые сцены подряд — всё это обнаруживается только на целом.