Gráficos en Movimiento para Videos de IA
Úsalo con remotion-best-practices y cinematic-camera. Esta habilidad gestiona la ingesta, investigación, activos auténticos, selección de referencia, calidad visual y autorización de entrega.
Contrato de ejecución estricto
Cada compilación debe pasar scripts/promptible-gate.mjs.
Rutas comunes:
- Claude Code:
.claude/skills/motion-graphics/scripts/promptible-gate.mjs - Otros agentes:
.agents/skills/motion-graphics/scripts/promptible-gate.mjs
No escribas código de composición hasta que el script imprima BUILD AUTHORIZED. No entregues un render hasta que imprima DELIVERY AUTHORIZED. Un comando fallido es una parada forzosa.
Etapa 1 — ingesta concisa
Pregunta solo por las opciones faltantes:
- Formato: Inserción de Instagram de media pantalla 4:3 (1440×1080) o Instagram de pantalla completa 9:16 (1080×1920). Usa 16:9 solo cuando se solicite explícitamente.
- Superficie: luz cálida, oscuro limpio, rejilla clara o rejilla oscura.
- Ritmo exacto del guion, duración, productos nombrados, afirmaciones verificadas y activos proporcionados.
Nunca uses oscuro por defecto de forma silenciosa. Si el usuario delega la elección de superficie, usa luz cálida.
Etapa 2 — investigación y activos auténticos
Lee references/research-and-assets.md y references/logo-library.md.
Ejecuta el curso de investigación más pequeño y útil antes del trabajo conceptual:
- Los activos proporcionados por el usuario son autoritativos. Úsalos exactamente; nunca los redibujes ni reemplaces.
- Para productos comunes, copia un logotipo empaquetado adecuado de
assets/logos/al proyecto y conserva su procedencia. - Si falta, inspecciona 1–3 páginas autoritativas: kit de marca oficial/página de inicio, página de producto/documentos oficiales, luego una fuente de iconos seleccionada de buena reputación.
- Prefiere SVG transparente. Nunca uses capturas de pantalla de logotipos, miniaturas de resultados de búsqueda, fondos de cuadrícula/verificación horneados, recreaciones no oficiales o activos remotos enlazados.
- Para un panel de control/interfaz de producto, adquiere una captura de pantalla/grabación real proporcionada o una captura de pantalla de producto/documentos oficial pública. Si no existe, pregunta; no inventes un panel de control.
- Investiga la estructura visible, terminología, color de marca y la acción/estado exacto relevante para el ritmo. No copies métricas no respaldadas, información privada o afirmaciones.
- Almacena en caché activos y notas en
.promptible/research/. Reutiliza un acierto de caché cuando el producto, fuentes, hashes de activos y mecanismo de referencia no hayan cambiado.
Elige solo el modo visual que necesita el ritmo: logo-system, product-ui, terminal, editorial o abstract. No fuerces un boletín, panel de control, terminal o movimiento de cámara elaborado en cada gráfico.
Escribe .promptible/research-brief.md con estos encabezados:
## Producto o concepto
## Fuentes autoritativas
## Lenguaje visual real
## Mecanismo aprobado más cercano
## Plan de movimiento
## Evitar
Luego ejecuta:
node <skill-dir>/scripts/promptible-gate.mjs research \
--project . \
--research-mode authentic \
--visual-mode product-ui \
--product "Slack" \
--reference kickbacks-same-run-editor \
--brief .promptible/research-brief.md \
--source https://slack.com/ \
--logo public/research/slack.svg \
--surface public/research/slack-dashboard.png
Para trabajo conceptual sin nombre, usa --research-mode abstract --visual-mode abstract; el resumen y la comparación de referencia aprobada aún se aplican, pero la investigación web/de logotipos innecesaria no.
Etapa 3 — verificación previa de referencia
Lee references/approved-references.md. Selecciona por mecanismo narrativo, no por color. Se permite un nuevo concepto cuando es más específico para la solicitud, pero debe heredar explícitamente la gramática de cámara, escala, moderación y movimiento causal del mecanismo aprobado más cercano. Combina como máximo dos mecanismos.
Ejecuta:
node <skill-dir>/scripts/promptible-gate.mjs init \
--project . \
--research .promptible/research-manifest.json \
--format 9:16 \
--background warm-light \
--claim-source user \
--beat "Idea visual exacta que se está respaldando" \
--duration 6
init revalida la investigación/activos, verifica el MP4/hoja de contacto empaquetado aprobado mediante SHA-256 y escribe .promptible/render-brief.json.
Inspecciona el MP4/hoja de contacto empaquetado real y la evidencia del producto investigado. Escribe .promptible/reference-observations.md con:
## Composición
## Cámara
## Identidad
## Coincidencia de investigación
## Antipatrón
Luego ejecuta:
node <skill-dir>/scripts/promptible-gate.mjs inspect \
--project . \
--observations .promptible/reference-observations.md
Solo BUILD AUTHORIZED permite la implementación.
Etapa 4 — compilación
Usa la identidad investigada y el mecanismo causal de la referencia seleccionada. El resultado debe sentirse específico en el primer intento, no como una plantilla esperando indicaciones correctivas.
Reglas estrictas:
- Nada de neón, resplandor, brillo, bordes luminosos, sombras coloreadas, orbes/velos degradados, degradados cian-púrpura, glassmorphism, iluminación cyberpunk o estilo de IA generado por vibraciones.
- Sin recibo genérico, factura, expediente, portapapeles, tarjeta flotante, código de barras, sello de goma, certificado, tarjeta de precios, panel de control falso o fallback de cuadrícula de tarjetas desconectada.
- Los paneles de control realistas se fomentan solo cuando se basan en evidencia de producto proporcionada o autoritativa. Recrea fielmente la estructura visible; nunca inventes métricas, afirmaciones, controles o estados de producto.
- Sin UI, logotipos, precios, rangos, compromiso, seriales o pruebas inventados.
- Sin texto de narración redundante. Se permiten datos reales, UI de producto, comandos, código, nombres de archivo y etiquetas estructurales cortas.
- El movimiento debe revelar causalidad, escala, reemplazo, navegación o cambio de estado. Puede ser moderado cuando un intercambio de logotipo o una acción de UI auténtica comunica el ritmo claramente.
- Un objeto centrado estático con filas que aparecen más un zoom lento no es una ejecución cinematográfica.
- Usa menos objetos focales y más grandes. Mantén la acción actual centrada, completamente visible y legible en el tamaño de destino.
- Las escenas oscuras son opcionales. Oscuro significa carbón neutro con acentos planos, nunca paneles iluminados.
Lee references/rejected-patterns.md antes de la selección de concepto.
Etapa 5 — evidencia del candidato
Renderiza el candidato. Genera una hoja de contacto de tres fotogramas y un JSON de ffprobe. Ejemplo para seis segundos:
mkdir -p .promptible
ffmpeg -y -hide_banner -loglevel error -i out/candidate.mp4 \
-vf "fps=3/6,scale=480:-1,tile=3x1:padding=12:margin=12:color=white" \
-frames:v 1 .promptible/candidate-contact-sheet.jpg
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height:format=duration -of json \
out/candidate.mp4 > .promptible/candidate-probe.json
Luego ejecuta:
node <skill-dir>/scripts/promptible-gate.mjs candidate \
--project . \
--render out/candidate.mp4 \
--contact-sheet .promptible/candidate-contact-sheet.jpg \
--probe .promptible/candidate-probe.json
Etapa 6 — crítico visual independiente
El constructor no puede calificar su propio trabajo. Inicia un crítico/subagente limpio separado con:
references/visual-critic.md- resumen/manifiesto de investigación y activos auténticos
- MP4/hoja de contacto aprobado seleccionado
- MP4/hoja de contacto candidato
.promptible/render-brief.json
El crítico inspecciona el contenido real y devuelve JSON que coincide con templates/critic-output.example.json. Si la revisión independiente no puede ejecutarse, detente; nunca te autoapruebes.
Etapa 7 — puerta de entrega
node <skill-dir>/scripts/promptible-gate.mjs qa \
--project . \
--critic .promptible/critic.json
La puerta rechaza fallos graves, cualquier categoría por debajo de 8/10, promedio por debajo de 8.5, investigación o evidencia modificada/faltante, o revisión no independiente. Revisa hasta que aparezca DELIVERY AUTHORIZED.
Reglas técnicas y de entrega
- Impulsa el movimiento con
useCurrentFrame(),spring()einterpolate(); sin animación CSS. - Usa mantener → viajar → mantener cuando viajar ayude. La acción se completa durante los mantenimientos.
- Termina con una pausa estable del editor.
- Verifica tipos o ejecuta la validación de compilación significativa más pequeña.
- Entrega MP4 con dimensiones exactas, duración, comando de render y nota de colocación en el editor solo después de la autorización.