Communitygithub.com

motion-video — creación de películas completas renderizadas por…

Crea una película completa renderizada por código (cada fotograma generado por un programa): anuncios de introducción, anuncios de hype, recorridos de producto, showreels, explicaciones narradas. Se activa con frases en chino como 「做一支產品介紹片/宣傳片/廣告」「酷炫、抓眼球的廣告」「做 showreel」「做旁白說明動畫」. No incluye animaciones de un solo elemento UI (eso es motion-design) ni estudio de videos de referencia (eso es case-library).

¿Qué es motion-video — creación de películas completas renderizadas por…?

motion-video es una habilidad especializada para la creación de películas completas renderizadas por código, donde cada fotograma es calculado por un programa. Está diseñada para agentes de IA (como Claude Code) que necesitan producir contenido de video de alta calidad, como anuncios de introducción, anuncios de hype, recorridos de producto, showreels de datos y explicaciones narradas. La habilidad se activa con frases en chino como 「做一支產品介紹片」 (hacer un video de presentación de producto) o 「酷炫、抓眼球的廣告」 (anuncio llamativo y cool). Lo que hace única a esta habilidad es su enfoque en la estructura completa de la película: desde la definición de la audiencia, el tono y el color de fondo, hasta la segmentación en secciones, las transiciones, los movimientos de cámara y la exportación a MP4. No se ocupa de animaciones de elementos individuales (como duración, easing o cambios de color dentro de un solo componente), que pertenecen a otra habilidad (motion-design). Tampoco analiza videos de referencia (eso es case-library). La habilidad sigue un flujo de trabajo riguroso con pasos ordenados: confirmación del propósito y tipo de película, selección del tipo de película (anuncio de introducción, hype, recorrido, etc.), fuente de ritmo (música o narración), storyboard detallado con tabla de diseño, construcción de una página HTML donde cada fotograma es función pura del tiempo, exportación con herramientas especializadas (filmtoolkit), revisión en rondas y entrega final. Soporta múltiples plataformas (Claude Code, Cursor, Codex, etc.) y utiliza referencias con niveles de evidencia: usuario, medido, verificado y no validado.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/WizerdBaChe/motion-video-kit/tree/HEAD/reference-impl/skills/motion-video

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

motion-video — creación de películas completas renderizadas por código

Habilidad enrutadora para trabajo a nivel de PELÍCULA. El movimiento a nivel de elemento (duración, easing, springs, cambios de color dentro de un componente) pertenece a motion-design; lea ~/.claude/skills/motion-design/local/element-motion-params.md para los números de spring medidos. La evidencia se encuentra en el laboratorio <lab> (tarjetas techniques/Tnn, documentos, mediciones); las herramientas también están allí (usuario 2026-09-30), por lo que esta habilidad cita sus rutas en lugar de copiarlas.

Cada regla en las referencias lleva un nivel de evidencia (references/evidence-and-instruments.md §Niveles): usuario (el usuario la juzgó viendo películas), medido (un instrumento calibrado la leyó en películas fuente), verificado (una ronda A/B ciega la movió, rangos disjuntos), no validado (medido en fuentes, nunca probado por imitación). No presente una regla no validada como probada.

Tabla de enrutamiento

Si la tarea trata sobre…Lea
Qué decidir primero; audiencia, tono, color de fondo, qué información corresponde; emparejamiento dispositivo-tono; materiales y textoreferences/whole-film-rules.md
Qué tipo de película; esqueletos de sección (anuncio de introducción, anuncio de hype, recorrido de producto, showreel de datos, explicación narrada); storyboard vs un párraforeferences/film-types.md
Cambios de sección en el compás o en la línea de narración; alineación de golpes; transiciones (forma a forma, oscurecimiento, cortinilla); movimientos de cámarareferences/rhythm-transitions-camera.md
Construcción de la página, renderizado basado en tiempo, exportación a MP4, fidelidad del producto (archivo de claims), filmación de un componente interactivo en vivo (§4 elemento 9), portada, bucle de revisión, obtención de música y licencias (§5)references/build-and-export.md
Niveles de evidencia; qué instrumento de laboratorio mide qué; de dónde viene cada númeroreferences/evidence-and-instruments.md
Metraje o medios generados (imágenes locales de ComfyUI, clips), corte en golpes musicales, un EDL intercambiable — la ruta de edición, no una página basada en tiempo (decisión de usuario 2026-10-18); cada activo lleva un archivo de procedencia o el renderizado se rechazalaboratorio tools/edit/README.md, laboratorio de diseño docs/edit-route-design.md
Un proceso físico o algorítmico continuo (un frente que crece, un campo que se expande, una ola que viaja) — un ACTIVO de manim (secuencia PNG + procedencia) compuesto en la página basada en tiempo, nunca una película completa de manim. La producción de películas completas y la edición y composición (activos que deben usarse) son capas separadas (decisión de usuario 2026-10-20); las reglas de composición son pocas, primera sonda en progresolaboratorio experiments/probe-manim-insert-ow2010/README.md; propuesta ~/.claude/outputs/manim-explainer-route-20261020/
Parámetros de spring / intercambio de color para un elementomotion-design/local/element-motion-params.md
Antes del storyboard, cada película: la capa de diseño compartida como copia propia de esta película — la lista de fallos es vinculante (trabajo rechazado por el autor; nunca repetirlo)<item>/inputs/design-axes.md, copiado por works_contract.py open (paso 0); un brazo de laboratorio obtiene el mismo archivo de run_arm.py
El mismo principio en publicaciones, presentaciones o páginas web (forma multiplataforma, ejes A–I, ejes de generación J/K, escuelas con nombre) — teoría, leer al elegir~/.claude/references/design-axes/

Orden de trabajo (cada paso antes del siguiente)

  1. Confirmar antes de todo (whole-film-rules.md §0): propósito / tipo de película (anuncio de introducción, anuncio de hype, recorrido de producto, explicación, perfil), dónde se mostrará, qué debe hacer el espectador después de verla, la audiencia, la ÚNICA cosa que recordar, la ENERGÍA (tranquila / animada / hype; preguntada, nunca inferida solo del producto) y el fondo, los materiales y límites, la voz del contenido (marketing vs técnica ligera) y la forma de presentación (paginada vs escenario continuo). Un usuario presente → preguntar esto y esperar. Sin supervisión → escribir cada pregunta abierta en build/questions.md y tomar la lectura más literal de la solicitud, indicada en build/plan.md. "產品介紹片" solo no determina anuncio vs recorrido (usuario r14); "廣告" solo no determina introducción vs hype (usuario r15). Un nombre de género o forma en la solicitud (MAD, PV, showreel, …) es un tipo de película Y el nombre del producto del que la película trata: resolverlo contra film-types.md §Nombrado y confirmar esa definición con el usuario antes del storyboard; un nombre sin entrada allí se pregunta, nunca se infiere — un nombre no confirmado es el fallo de objetivo incorrecto / expectativas bajas (usuario 2026-10-19: solicitud MAD de una línea cuya primera ronda devolvió un MV de código puro). ¿Elemento formal o ronda de laboratorio? (formal = algo que el autor enviará o entregará a alguien; la definición única está en <works>/README.md). Formal → la PRIMERA escritura de la tarea es python -X utf8 ~/.claude/tools/design-axes-mount/works_contract.py open <works>/films/<film_id> --medium video --actor main-loop [--toolbox PATH:ROLE:FACET ...], cualquiera que sea la carpeta de la que vino la solicitud; pegar la línea 創作輸入 que imprime en el contrato de límite, y construir dentro del elemento. Un generador, componente o página de OTRO entregable (un script de ilustración de un libro, una película anterior) es una entrada de toolbox con su rol y faceta, nunca un valor predeterminado (un proyecto de libro 2026-10-11: el generador de arte lineal del libro escalado a 1080p fue rechazado, ahora una referencia negativa). Ronda de laboratorio → run_arm.py monta la misma capa.
  2. Película completa primero (whole-film-rules.md §1): nombrar la ÚNICA audiencia, lo que esa audiencia necesita saber, el tono (la energía nombrada en el paso 0; solo si ninguna, del producto + audiencia), y el ÚNICO color de fondo (un anuncio de hype lo afloja, whole-film-rules.md §6). Estos cuatro son fijos antes de elegir cualquier dispositivo. Si los documentos del producto no dicen qué resuelve una característica, preguntar al propietario (build-and-export.md §4 elemento 7); sin supervisión, escribir build/questions.md en lugar de inventar un punto de dolor.
  3. Tipo de película (film-types.md): anuncio de introducción, anuncio de hype, recorrido de producto, showreel de datos, explicación narrada, o carrete de perfil — del propósito del paso 0, nunca de qué esqueleto está más a mano. Elegir el esqueleto; decidir storyboard (contenido fijo) vs un párrafo (pantalla de muchas ejecuciones).
  4. Fuente de ritmo (rhythm-transitions-camera.md §1): solo música → cambios de sección en líneas de compás; narración o letras presentes → cambios de sección en inicios de línea, y la música no está también bloqueada. Si una película recibe narración depende del tipo de película y el tono (pasos 1-2); una película tranquila aún puede usar música con secciones lentas.
  5. Tabla de storyboard antes del código: leer inputs/design-axes.md primero (tabla de enrutamiento, fila "Antes del storyboard"). Por sección t, titular, visual, datos, diseño, transición entrada/salida, objetivo de cámara, intención de movimiento (una línea por elemento móvil y por capa de efecto apilada: lo que dice el movimiento; un elemento sin línea se queda quieto o se va, whole-film-rules.md §2a; un efecto con nombre obtiene esa línea como descripción, ya que un nombre solo cuyo catálogo y significados de la industria chocan se construye como el significado de la industria — laboratorio r28, 3/3 ejecuciones, lector ciego; laboratorio docs/text-motion-vocabulary.md §3/§5), fotogramas clave (línea de tiempo keys[]: al menos un role: key por sección — el momento que un espectador debe leer o ver claramente, con un hold opcional; role: breakdown para una pose dentro de la sección que decide cómo viaja el movimiento; las costuras entre secciones se derivan, nunca se escriben; laboratorio docs/agent-review-kbt-design.md §3), y 參考角色 K/工具箱 (none por defecto; un generador o componente reutilizado nombra su rol K y la faceta prestada, y debe coincidir con una entrada --toolbox de open). Mostrarlo al usuario y esperar confirmación cuando haya un usuario presente. Registrar cada decisión de diseño que tome usted mismo con python ~/.claude/tools/process-ledger/ledger.py add en el momento de tomarla. El portador de la tabla está regido (usuario 2026-10-08, laboratorio docs/production-order.md última sección): un JSON film.timeline.json más una página de línea de tiempo generada de solo lectura; requerido en la aprobación = film_type, audience, energy, rhythm_source y por sección en at, dur, freedom (locked / guided / free), motion_intent; camera goal / method toman los vocabularios fijos D1 / D2. La herramienta (tools/timeline/, laboratorio docs/timeline-layer-design.md) NO está construida antes de su hito TL-1 — hasta entonces mantener la tabla de markdown, usando esos nombres de campo (nombres de registro de plano que cambiaron están mapeados en la tabla §6.1 del diseño).
  6. Dispositivos: cada dispositivo tiene su propio tono; un dispositivo que choca con el tono del paso 1 se descarta, el tono nunca se cambia para ajustarse al dispositivo (usuario 2026-09-30). Un dispositivo estándar (ráfaga de partículas, túnel, pila de tarjetas flotantes, glitch, texto grande como diseño, números HUD falsos) se usa solo con una línea de intención de movimiento que lo vincule al contenido (§2a).
  7. Construcción (build-and-export.md §1): una página HTML cuyo cada fotograma es una función pura del tiempo (window.__setTime(t)); sin temporizadores, sin transiciones CSS.
  8. Exportación (build-and-export.md §2): exportar con filmkit, el tools/filmkit/render.py del laboratorio (perfil lab-round), nunca un script de captura escrito a mano. Captura fotograma a fotograma, codifica, verifica, y solo entonces publica el nombre de salida; su check.py decide si el ARCHIVO es entregable. Las películas formales empaquetan sus fuentes con @font-face (una familia sans de licencia abierta que cubra CJK y latín, p. ej. Noto Sans TC; nunca depender de las fuentes instaladas en la máquina de exportación o visualización, laboratorio D26). Una película formal exporta con --profile delivery-web (campos de formato, más FK-R-18 / FK-R-19 bloqueando cuando la película no es un elemento de works abierto con open o su montaje está obsoleto). La sonoridad y el pico verdadero son reportados por check.py como un hecho (FK-R-17, información). Para juzgarlos contra una plataforma, pasar --rules <archivo de reglas> --target <nombre>; un target es una afirmación en el archivo de reglas con su fuente y review_when, nunca asumida por la habilidad.
  9. Revisión (build-and-export.md §3): primero hoja de película completa a 1 fps, luego detalles; retroalimentación como "segundo / dónde / cambio"; un cambio a la vez; máximo 3 rondas. Una película formal luego se revisa EN PARALELO: works_contract.py review <item> coloca la hoja del candidato junto a una película aprobada del mismo tipo seleccionada por etiquetas (o escribe reference: none), y el revisor no es el constructor (§3 elemento 9) — en una sola sesión un subagente de contexto limpio lee deliver/_review/side-by-side.png y la primera línea del veredicto es reviewer: subagent-clean-context. works_contract.py deliver <item> rechaza hasta que deliver/_review/verdict.md sea más nuevo que el candidato. Ruta de revisión por agente (usuario 2026-10-19, laboratorio docs/agent-review-kbt-design.md; el usuario da dirección y contenido de diseño solo): un subagente creador construye, la sesión de main-loop despachadora revisa y nunca edita la película; se comunican a través de archivos (tools/review/review.py), compuertas G0 storyboard (el creador revisa al director) → G1 fotogramas clave (solo elementos difíciles) → G2 ventanas K/T (sensación = PULIR) → G3 película completa, máximo 3 rondas cada una; solo la lista de fallos, filas bloqueantes de filmkit, fidelidad del producto y defectos vistos una vez pueden BLOQUEAR; después de la ronda 3, la mejor versión se envía con los elementos abiertos listados, y el veredicto dice reviewer: dispatcher-main-loop, user_watched: no (build-and-export.md §3 elemento 10).
  10. Entrega con la forma de aceptación a continuación. Destino: un elemento de works (<works>/films\<film_id>\, predicado en <works>/README.md); el proyecto que el usuario nombró mantiene un puntero (_MOVED_<fecha>.txt) o solo su propio libro / datos. Una película construida en su propio proyecto y adoptada (generador extranjero) reingresa con works_contract.py adopt <misma raíz> --id <id> --revise después de cada ronda aceptada. Dónde está cada elemento: <works>/STATUS.md (leerlo primero). Una ronda de laboratorio va a <lab>\experiments\<round>\.

Modelos (usuario 2026-10-10, laboratorio CLAUDE.md Reglas; causas experiments/r22-haiku/REPORT.md): Haiku nunca hace una película, ni como conductor ni como trabajador en ningún paso anterior; el contenido fijo de un componente cuenta como producción (laboratorio D-T12).

Veredictos que esta habilidad puede dar, y cómo se verifica cada uno

  • "Los cambios de sección están en el compás / línea" → tools/measure_product.py o tools/narrlock.py en el MP4 renderizado (rutas de laboratorio).
  • "El movimiento es continuo bajo la narración" → tools/density.py participación móvil y ejecuciones fijas.
  • "Cada número / característica es real" → tools/fidelity.py + build/claims.json (T05).
  • "Hay un movimiento de cámara" → tools/camflow.py; las ejecuciones at_boundary necesitan una revisión de fotogramas.
  • "El archivo es entregable" (legible, longitud, tamaño y códec esperados, sonido presente cuando se espera, escrito por filmkit a partir de las entradas ahora en disco) → tools/filmkit/check.py (render.py lo ejecuta por sí mismo). Salida 0 significa que no hay fila bloqueante, nada sobre la imagen.
  • "Se ve bien / coincide con la referencia" → NUNCA a partir de números. Una hoja de fotogramas leída por modelo Y la propia visualización del usuario (laboratorio INV-6). Los números prueban la ruta de datos, no la imagen. En la ruta de revisión por agente, este veredicto nunca se da: la película está "entregada bajo revisión por agente, no vista por el usuario" (veredicto user_watched: no).
  • "La sonoridad está en el objetivo" → check.py --rules F --target NOMBRE; un UNDET (indeterminado) para un target sin tolerancia es una brecha en el archivo de reglas, no una aprobación.

Forma de entrega (un humano debe ver la película)

Pegar las secciones 1-4 de check.md (bloqueante / confirmado / necesita revisión / indeterminado) textualmente (la sección 5, las exenciones declaradas del autor, permanece en el archivo) — para una película formal de la verificación --profile delivery-web, para que las filas FK-R-18 (montaje de ejes de diseño) y FK-R-19 (sello de works) estén entre ellas, más la línea reference: de deliver/_review/report.md, incluyendo las líneas rerun, antes de la lista de verificación; las propias preguntas de la sesión siguen por separado y nunca se mezclan en las secciones pegadas. Cualquier operación transform.py (normalize existe desde filmkit M3: transform.py normalize <in> --out <nuevo> --target-lufs X --true-peak Y o --rules F --target NOMBRE; duck y convert no están construidos) en una película formal se pregunta primero, nombrando el nuevo archivo que reemplaza o se adjunta (en el segundo caso la verificación se repite con el archivo adjunto). Ninguna entrega sale sin película (el cinemagraph más simple es una película; la primera exención de check.md de un cinemagraph fue para FK-R-08 y FK-R-17 — usuario 2026-10-18).

Skills relacionados