Skill para Claude Code y Codex

La cabecera del sitio se vuelve una película que avanza con el scroll.

Video de IA encadenado cuadro a cuadro, sin saltos, y un gráfico animado en código en cada sección. Con el interruptor Detenido, Activo y Rayos X, que muestra qué es video y qué es código.

Sitio en Movimiento: la cabecera se vuelve una película que avanza con el scroll
En resumen

Sitio en Movimiento es una skill para Claude Code (y Codex) que arma un sitio cuya cabecera es un video continuo: la cámara avanza a medida que la persona desplaza la página. El video lo genera la IA en clips cortos encadenados, y los scripts comprueban que no haya saltos entre ellos. Debajo de la película, cada sección recibe una animación hecha en código que explica lo que dice. Sirve para quien quiere una página de apertura con aspecto de película. Necesitas Claude Code y, si quieres video de verdad, un generador de video (Kling, Agnes, Kie u otro); sin generador, arma todo en código.

Qué es

Un proceso, no un molde

Cada sitio se diseña desde cero. Lo que se repite es el método, los scripts que revisan el trabajo y el motor de la página.

Los pasos de Sitio en Movimiento: referencias, keyframes, película encadenada, capa de movimiento, críticos y Rayos X

🎞️ Película sin saltos

Cada clip empieza en el último cuadro real del anterior. Los scripts miden si el generador respetó el cuadro inicial y final y si hay un corte escondido en el medio.

🔌 Cualquier generador

Kling por suscripción, Agnes, Kie o el tuyo (un comando con inicio, fin, prompt y salida). Sin generador, la película se vuelve escenas en código.

🩻 Rayos X

Un interruptor en la esquina alterna entre Detenido, Activo y Rayos X. En Rayos X, cada cosa que se mueve recibe una etiqueta: video de IA (con su costo) o código.

Cómo funciona

Siete pasos, cada uno con una compuerta

Ningún paso avanza sin pasar su compuerta. Las compuertas son scripts sin IA, de costo cero.

1 · Referencias → listón→ 2 · Entrevista + presupuesto→ 3 · Keyframes→ 4 · Película encadenada→ 5 · Página + movimiento→ 6 · Tres críticos→ 7 · Texto + verificación

Keyframes por aproximación

Pedirle a un modelo de imagen que "la cámara avance" suele devolver la misma foto. La skill recorta el centro del cuadro anterior, lo amplía y solo redibuja el detalle: el eje de la cámara queda garantizado.

Compuertas medidas

vetor.py comprueba el sentido de la película antes de gastar; fixacao.py mide si el generador respetó los cuadros; cortes.py y continuidade.py encuentran cortes y congelamientos.

Críticos que ven píxeles

Tres críticos con contexto limpio juzgan las capturas, nunca el código: briefing, sistema visual y oficio (contra la referencia, a ciegas). El veredicto es solo PASSA o REPROVA.

Requisitos previos

Lo que debe estar en la máquina

El generador de video es opcional: sin él, el sitio sale en código puro.

Herramientas

Claude Code (o Codex), ffmpeg, Python 3 con numpy y Pillow, Node 18+ con Playwright.

pip install numpy pillow
npx playwright install chromium

Generador de video

Uno de los motores: kling (CLI por suscripción), agnes o kie (clave tuya) o custom (cualquier comando).

kling login        # una vez
kling account -q   # saldo

Generador de imagen

Para los keyframes: un servidor local (flux2-klein) sin costo, o el generador que prefieras.

curl localhost:8000/health
Guía de uso · paso a paso

Del repositorio al primer sitio

Comandos reales. La skill conduce todo a partir del paso 3; los comandos de abajo muestran lo que ocurre por debajo.

1

Instala la skill

Clona el repositorio y enlaza la carpeta de la skill en Claude Code (y en Codex, si lo usas).

git clone https://github.com/inematds/site-movimento ~/projetos/site-movimento
ln -s ~/projetos/site-movimento/skill/site-movimento ~/.claude/skills/site-movimento
bash ~/.claude/skills/site-movimento/tests/motores-contrato.sh   # 4/4 motores OK
2

Llámala con tus referencias

Reúne de 3 a 10 imágenes o enlaces de sitios que admires, cada uno elegido por una razón.

/site-movimento
Quiero un sitio en movimiento para <tema>. Las referencias están adjuntas.
Lee las referencias, entrévistame y usa el motor kling.
3

Responde la entrevista y aprueba el presupuesto

Un solo lote de preguntas cortas (tema, clima, el viaje de la cámara, secciones, acción, motor). No se gasta nada antes de tu sí.

# plan Prueba en Kling 720p: 3 clips + 1 loop = 120 créditos (medido)
# plan Estándar: 5 clips + 2 loops = 210 · Completo: 7 + 4 = 330
4

Keyframes encadenados

El primer keyframe sale del prompt; los siguientes, por aproximación. La hoja muestra si algún paso giró la cámara o quedó detenido.

python3 $S/motores/imagem_local.py kf/kf01.png "<escena de apertura>"
python3 $S/scripts/kf_aproxima.py kf/kf01.png kf/kf02.png "<la escena más cerca>" --fator 1.8
python3 $S/scripts/folha_kf.py kf/   # ok / OLHE / QUEBRA? / PARADO
5

La película, un clip a la vez

Comprueba el sentido gratis; después la película sale en orden, cada clip empezando en el último cuadro del anterior.

python3 $S/scripts/vetor.py filme/roteiro.json          # PASSA antes de gastar
MOTOR=kling bash $S/scripts/filme.sh filme/                # fixacao + cortes en cada clip
python3 $S/scripts/montar.py site filme/clipes/c1.mp4:0:-1 filme/clipes/c2.mp4:1:-1
python3 $S/scripts/continuidade.py site/frames 4      # PASSA: un solo movimiento
6

Página, críticos y verificación

La página usa el motor de scroll y el interruptor de movimiento. Los críticos juzgan capturas; el texto y los tirones pasan por compuertas.

bash $S/scripts/pacote-criticos.sh topo "http://127.0.0.1:8871/site/"
node $S/scripts/portao-texto.js site/index.html          # texto limpio
node $S/scripts/verificar.js jank "http://127.0.0.1:8871/site/"   # máx < 50 ms
7

Usa otro generador de video

Cualquier IA entra por el motor custom. Prueba la fijación en el primer clip antes de encadenar la película.

export MOTOR=custom
export MOTOR_CMD='meu-cli --start {inicio} --end {fim} -p {prompt} --sec {segundos} -o {saida}'
bash $S/scripts/filme.sh filme/
Piloto

La home de INEMA eventos con película en la apertura

Una copia de prueba de la home de eventos.inema.pro. La cámara sale de la pista al anochecer, entra en la terminal y se detiene en el panel de partidas, y el panel real de la página sube por encima de lo filmado. Abrir el piloto.

Apertura del piloto: la terminal al anochecer con la frase Toda turma começa com uma partida
Apertura: la película empieza en la pista.
El panel real de la página subiendo por encima del panel filmado
Pasaje: el panel real sube sobre el filmado.
Modo Rayos X con etiquetas sobre la película y el resumen de videos y código
Rayos X: qué es video de IA y qué es código, con su costo.
Hoja con los cuatro keyframes del piloto, de la pista al panel
Los 4 keyframes, hechos por aproximación.

Números del piloto

Kling 720p, clips de 5 s: 300 créditos en total. 150 en la 1ª versión (3 clips + loop, un loop rehecho), 60 para quitar las letras del panel (30 perdidos: las letras nacían en el keyframe, y el 1er rehecho partió de un cuadro que ya tenía letras) y 90 en la película vertical del celular (3 clips 9:16). Fijación entre 0,91 y 0,997, cero cortes, 285 cuadros en la computadora y 361 en el celular.

Seis gráficos en código

Marco que se desliza por las áreas, ruta con avión en la agenda, barra de grabación, línea que une las cuatro puertas, archivos entrando en la carpeta y un avión que despega en el pie de página.

Lo que detectaron los críticos

1ª ronda: lista de noticias vacía, frase final borrada, interruptor tapando contenido y la película sin "aterrizar" en el panel real (corregidos). 2ª ronda: letras deformadas en el panel y franjas negras mientras cargan los cuadros. Las dos se corrigieron después (panel sin letras, cuadros espaciados primero y póster en lugar del negro), pero aún no pasaron por una 3ª ronda. Sigue abierto: los colores heredados de eventos (bloque amarillo del PRO, botones salmón).

Quién hace qué

Lo que se puede pasar a un modelo menor (medido)

Mismo briefing para un modelo rápido y barato y para el modelo más fuerte. Detalles en 7-delegacao.md (en portugués).

Construir con gusto: el tope

15 piezas de interfaz juzgadas a ciegas: el modelo menor tuvo 2 de 5 aprobadas, el tope 8 de 10. El menor pasó todas las pruebas automáticas y falló en la identidad visual.

Juzgar: modelo menor

Los tres críticos ejecutados en los dos modelos dieron los mismos veredictos y la misma mayor diferencia, en menos de un minuto cada uno.

Regla práctica

El modelo menor juzga y arregla; el tope crea. Ffmpeg, SSIM, cortes, montaje y capturas quedan con scripts, sin modelo.

Capa de movimiento

20 piezas listas en INEMA Motion Lab

Antes de inventar una animación, la skill busca en el catálogo: búsqueda ⌘K, grilla bento, 404 jugable, día y noche, pies de página con física, cortina, flor, mapa y rompe-bloques, menú que se transforma, menú a pantalla completa, navegación que salta, calcomanía holográfica, mascota que sigue el cursor, dock líquido, botones de gelatina, letrero de placas, rastro de imágenes, galería giratoria y carga que revela la página. Todas con Rayos X.

Roadmap

Dónde está y qué viene

Solo lo que se hizo está marcado como hecho.

Hecho
Skill 1.0 + motores + pilotoSiete pasos, cuatro motores con el mismo contrato, motor Kling medido, piloto público en la home de eventos.
Hecho
Medición de delegaciónConstrucción y críticos comparados entre modelo menor y tope.
Hecho
Película 9:16 en el celularKeyframes verticales sacados de los horizontales (mismo eje), 3 clips Kling 9:16 y montar.py --vertical. En el celular en vertical la página usa frames-v/.
Hecho
Agnes medido1 clip con los mismos extremos y el mismo prompt que Kling: fija los extremos (0,91), sin corte, 80 s de render. Pero en el medio el lugar se transforma (otro vestíbulo, el panel se vuelve una pared), mientras Kling mantuvo la geometría. Sirve para transiciones cortas, no para el plano continuo de arriba.
Próximo
Kie medidoConstruido y probado en el contrato, aún sin clip real.