Communitygithub.com

sstani-bgv/montage-skills

Сделать все анимационные вставки для ролика от начала до конца (по умолчанию в стиле v4 «презентация с картинками» — эталон, одобренный автором) — посмотреть видео или транскрипт, разметить motion-план, раздать сцены сабагентам, принять работу, собрать черновой монтаж со вставками поверх исходника и отдать его вместе с MP4 по таймкодам. Используй этот скилл всегда, когда пользователь просит сделать анимации для своего ролика, оживить видео вставками, «сделать как у такого-то блогера», собрать графику под уже записанный материал или довести ранее размеченный motion-план до готовых файлов. Это точка входа: сам зовёт /motion-plan для разметки и раздаёт сборку по /motion-build. Для одной отдельной анимации бери /motion-build напрямую.

Qu'est-ce que montage-skills ?

montage-skills is a Claude Code agent skill that сделать все анимационные вставки для ролика от начала до конца (по умолчанию в стиле v4 «презентация с картинками» — эталон, одобренный автором) — посмотреть видео или транскрипт, разметить motion-план, раздать сцены сабагентам, принять работу, собрать черновой монтаж со вставками поверх исходника и отдать его вместе с MP4 по таймкодам. Используй этот скилл всегда, когда пользователь просит сделать анимации для своего ролика, оживить видео вставками, «сделать как у такого-то блогера», собрать графику под уже записанный материал или довести ранее размеченный motion-план до готовых файлов. Это точка входа: сам зовёт /motion-plan для разметки и раздаёт сборку по /motion-build. Для одной отдельной анимации бери /motion-build напрямую.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sstani-bgv/montage-skills/tree/HEAD/motion-run

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation


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 вставки + интро):

  1. Текст и кадры. /watch по исходнику (transcript), для плана — пословная разметка кусков.
  2. План через /motion-plan → показать пользователю, согласовать правки (длина интро, плотность, раскладки там, где автор рисует). Сборку не начинать без ок.
  3. Рабочая папка W в scratchpad//tmp: scenes.json ({NN: start, dur, layout, title}), scenes/, img/, clips/.
  4. Картинки: prompts.tsv → zsh ../motion-build/scripts/gen_images.sh prompts.tsv W/raw → alpha.py W/raw W/img. Посмотри лист всех картинок: дубли и неудачные (фон остался, объект не тот) — перегенерируй.
  5. Клипы: python3 ../motion-build/scripts/cut_clips.py W source.mp4 --cam x,y,w,h (вебку измерь по кадру).
  6. Бриф: скопируй references/build-brief-v4.md в W/BUILD-BRIEF.md, впиши пути и правки плана. Одобренные ранее сцены клади в W/scenes/ как эталоны.
  7. Раздача: 7–8 сабагентов одним сообщением, по 3–5 сцен одной раскладки на агента (kinetic — одному агенту целиком). В задании: бриф, эталон раскладки из recipes/v4/, спеки, «кадры смотреть глазами».
  8. Приёмка — по полноразмерному кадру конца каждой сцены (кроп панели), контакт-лист 3×3 врёт в кегле. Возвращай с конкретикой: «подписи ≥30px, герой ≥240px, нижняя половина панели пустая». Когда найдёшь общую ошибку — сразу разошли её ещё работающим агентам.
  9. Сборка: python3 scripts/assemble_v4.py W source.mp4 [--intro intro.mp4 --cut SEC] — вставки со своим SFX + черновик. Сними кадры черновика в точках вставок и на стыках.
  10. Сдача — в папку рядом с исходником: 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б. Собери эталонную сцену сам

Перед раздачей выбери одну сцену — лучше среднюю по сложности, с числом или парой карточек — и собери её своими руками до рендера. Это стоит десяти минут и решает сразу три задачи:

  1. Проверяет пайплайн. Если init, токены, шрифты или рендер где-то спотыкаются, ты узнаешь об этом один раз, а не девятью одинаковыми отчётами.
  2. Назначает сквозные константы ролика. Кегли, каденция набора, механика фона, дрейф, двухступенчатый вход — всё это должно быть одинаковым во всех сценах, а по умолчанию каждый сборщик выбирает своё. Дизайн-система задаёт диапазоны, а не числа.
  3. Даёт сборщикам образец, а не описание. Прочитать готовую сцену того же ролика намного надёжнее, чем вычитывать те же правила из справочников.

Рядом положи короткий файл сквозных констант (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. Пока не собран черновик, ты не знаешь, как это выглядит вместе: пропадающий якорь, сбитые таймкоды, две одинаковые сцены подряд — всё это обнаруживается только на целом.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

sstani-bgv/montage-skills

Собрать ОДНУ анимационную вставку для видео на HyperFrames + GSAP в стиле канала. По умолчанию — стиль v4 «презентация с картинками» (одобрен автором как эталон, два русскоязычных YouTube-референса): крупные слова в интро, спикер + достраивающаяся панель, сгенерированные Codex 3D-картинки-метафоры, звук на каждое появление графики. Светлая тема, Onest/Unbounded; как акценты — приёмы вроде PiP-морфа, rack-focus, карусели глав, velocity-matched швов, zoom-through, перспективного свопа окон, каскадов с бэйджами. Используй этот скилл всегда, когда нужно собрать, починить или доработать отдельную анимацию/сцену/motion-вставку по готовой спеке, когда сабагент получил задание на одну сцену из motion-плана, а также когда речь идёт о HyperFrames-композиции для ролика в этом стиле. Не для планирования всего ролика — это /motion-plan, и не для оркестрации — это /motion-run.

sstani-bgv/montage-skills

Разметить motion-план для ролика (по умолчанию в стиле v4 «презентация с картинками»: kinetic-интро, спикер + достраивающаяся панель, картинки-метафоры, звук) — посмотреть транскрипт, скрипт или само видео и решить, в каких местах и какими приёмами визуально показать то, что автор проговаривает голосом. На выходе MOTION.md с таймкодами, выбранными приёмами и покадровыми спеками на каждую сцену. Используй этот скилл всегда, когда нужно понять, где в ролике нужны анимации, какие именно и почему, когда пользователь даёт транскрипт или ссылку на своё видео и спрашивает, что тут анимировать, а также когда надо переразметить уже существующий план. Сборкой занимается /motion-build, оркестрацией — /motion-run.

Skills associés