hyperframes (heygen-com/hyperframes)
Crea, edita, anima y renderiza vídeos de HyperFrames, desde lanzamientos y explicaciones hasta gráficos y subtítulos.
Skill HyperFrames: la misma calidad de vídeo que sin skill, pero 1.9x los tokens y una estructura de proyecto más editable
Codex CLI · gpt-6-astra
19.9 / 30
Mejora frente a sin skill: -0.01 · Según el caso · 18 ejecuciones
Según el caso: el total 19.9/30 está por debajo de 22 y la mejora -0.01 está por debajo de +1.0. Para ser recomendada hace falta un total de 22/30, una calidad de salida de 3.5 y una mejora de +1.0.
SOTA
AprobadaProbada con Codex.
Cubre Codex, Claude Code
Codex CLI 0.166 (nivel SOTA): 18 ejecuciones puntuadas. Una pasada aquí también cubre Claude Code según nuestra regla de niveles; no dice nada sobre el segundo nivel.
Puntuaciones
Cada dimensión va de 0 a 5 y las seis suman el total sobre 30. 5 es mejor en todas las dimensiones. Coste 5 significa barato y rápido. Instalación 5 significa fácil.
- Fiabilidad de activación
- 5.0
- Mejora frente a sin skill
- 2.0
- Calidad de salida
- 4.9
- Coste en tokens y tiempo
- 2.0
- Instalación y portabilidad
- 3.0
- Seguridad
- 3.0
Revisión de seguridad
PrecauciónEscaneo estático: 27 CRITICAL / 26 HIGH / 88 MEDIUM. Revisión manual: Segura de ejecutar (sandbox sin red). Un escaneo limpio no demuestra que una skill sea segura.
Instalar
npx skills@latest add heygen-com/hyperframes --skill hyperframes
Commit fijado: af0d68d612ebd9c419f27d9ebc8068512667bae4
Probada: 2026-11-02
Qué probamos
- Teaser de producto de 15 s — En este proyecto de HyperFrames (index.html como composición raíz, línea de tiempo de GSAP, renderizado con npx hyperframes render), crea un teaser de producto de 15 segundos, 1920x1080, 30 fps para Tidepool, una suscripción mensual de snacks de algas. Texto obligatorio en pantalla: el nombre 'Tidepool',…
- Explicativo animado de gráfico de barras de 20 s — En este proyecto de HyperFrames (index.html como composición raíz, línea de tiempo de GSAP, renderizado con npx hyperframes render), crea un explicativo animado de 20 segundos, 1920x1080, 30 fps: un gráfico de barras de ingresos mensuales (Aug $42k, Sep $58k, Oct $71k). Título 'Revenue, last 3 months…
- Short vertical con subtítulos de 30 s — En este proyecto de HyperFrames (index.html como composición raíz, línea de tiempo de GSAP, renderizado con npx hyperframes render), crea un short social vertical de 30 segundos, 1080x1920, 30 fps con subtítulos incrustados. Subtítulos, en orden, cada uno en pantalla unos 5 segundos empezando en…
Ventajas
- La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
- Calidad absoluta alta con la skill: 4.89 sobre 5.
Inconvenientes
- Sin mejora medible frente a sin skill (-0.01, dentro del ruido).
- Un prompt de una frase puntuó 4.91, frente a 4.89 con la skill (-0.01).
- Usa 1.95x los tokens de sin skill.
- El control ya puntúa 4.9: efecto techo, así que la prueba no puede mostrar mejora.
- Salvedad de la prueba: solo evalúa la guía de la skill; el bucle de CLI de hyperframes (check, preview, render) no estaba disponible en el sandbox. La CLI es un paquete npm aparte que no auditamos ni ejecutamos, y envía telemetría de uso salvo que se desactive. Las skills hermanas hyperframes-core y hyperframes-animation se probaron en el commit anterior 207c8a4; esta, en af0d68d.
- n=2 por tarea y rama; las diferencias de menos de aproximadamente 1 punto son ruido.
Reseña
Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en una máquina de pruebas Mac, con un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales en cada ejecución, la skill instalada (grupo con skill), ausente (control) o ausente con el requisito central de la skill comprimido en una frase añadida al prompt (grupo del prompt de una frase), 2 ejecuciones por grupo y tarea, sin red y con las escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la redacción indicada abajo). Entorno: la plantilla del proyecto (index.html con la etiqueta script de GSAP y los metadatos de composición) es la misma para todos los grupos. El sandbox no tiene red ni la CLI de HyperFrames, así que ninguno de los grupos pudo ejecutar check, snapshot ni render; solo escribieron código fuente. Después renderizamos cada proyecto en una máquina sin conexión aparte con HyperFrames 0.8.226 fijado (calidad draft). Esto prueba el texto de la skill, no su bucle de CLI.
Comparación de tres ramas
| Rama | Puntuación media (0-5) | Tokens por ejecución |
|---|---|---|
| Sin la skill | 4.9 | 128k |
| Prompt de una frase | 4.91 | 150k |
| Con la skill | 4.89 | 249k |
Medido con Codex CLI en 18 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 19.9 / 30, veredicto Según el caso.
Aviso: Puntúa solo la guía de la skill: el bucle de la CLI de hyperframes (check, preview, render) no estaba disponible en el sandbox. La CLI es un paquete npm aparte que no auditamos ni ejecutamos, y envía telemetría de uso salvo que se desactive. Las skills hermanas hyperframes-core y hyperframes-animation se probaron en el commit anterior 207c8a4; esta, en af0d68d.
Veredicto: Según el caso (19.9 / 30). Fuente: heygen-com/hyperframes, skills/hyperframes, fijada en el commit af0d68d. Instalación: npx skills@latest add heygen-com/hyperframes --skill hyperframes. Licencia: Apache-2.0.
Qué es
La skill hyperframes de heygen-com/hyperframes (Apache-2.0): un SKILL.md de 1,100 palabras más ~25 archivos de referencia y unos cuantos scripts auxiliares, para crear vídeos como HTML que se renderiza a MP4 avanzando fotograma a fotograma una línea de tiempo GSAP en pausa. Establece un contrato de renderizado de 12 reglas (cada elemento temporizado es class="clip" con data-start/data-duration, una única línea de tiempo en pausa registrada en window.__timelines, nada no determinista), una estructura editable (una escena por subcomposición) y un bucle de trabajo construido en torno a la CLI npx hyperframes (check, snapshot, preview, render).
Cómo lo probamos
Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un Mac de pruebas, un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales por ejecución, skill instalada (tratamiento) o ausente (control) o ausente con el requisito central de la skill comprimido en una frase añadida al final del prompt (grupo de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la formulación indicada abajo).
Entorno: la plantilla del proyecto (index.html con la etiqueta de script de GSAP, metadatos de composición) es la misma para todos los grupos. El sandbox no tiene red ni CLI de HyperFrames, así que ninguno de los grupos pudo ejecutar check, snapshot ni render; solo escribieron el código fuente. Después renderizamos cada proyecto en una máquina offline separada con la versión fijada de HyperFrames 0.8.226 (calidad draft). Esto prueba el texto de la skill, no su bucle de CLI.
- Teaser de producto de 15 s — En este proyecto HyperFrames (composición raíz index.html, línea de tiempo GSAP, renderizado con
npx hyperframes render) crea un teaser de producto de 15 segundos, 1920x1080, 30 fps para Tidepool, una suscripción mensual de snacks de algas. Texto obligatorio en pantalla: el nombre 'Tidepool',… - Explicativo animado de gráfico de barras de 20 s — En este proyecto HyperFrames (composición raíz index.html, línea de tiempo GSAP, renderizado con
npx hyperframes render) crea un explicativo animado de 20 segundos, 1920x1080, 30 fps: un gráfico de barras de ingresos mensuales (Ago $42k, Sep $58k, Oct $71k). Título 'Ingresos, últimos 3 meses… - Short vertical con subtítulos de 30 s — En este proyecto HyperFrames (composición raíz index.html, línea de tiempo GSAP, renderizado con
npx hyperframes render) crea un short social vertical de 30 segundos, 1080x1920, 30 fps con subtítulos incrustados. Subtítulos, en orden, cada uno en pantalla unos 5 segundos empezando en…
La puntuación es programática (tests ocultos / detección de problemas sembrados / comprobaciones de restricciones / renderizado + OCR cuando corresponde), 0–5 por ejecución. Ningún juez LLM decidió ninguna puntuación.
Resultados
La frase única que recibió el tercer grupo: "Constrúyelo como una composición HTML de HyperFrames: una raíz con data-composition-id/data-width/data-height/data-duration, cada elemento temporizado con class="clip" más data-start y data-duration en segundos, una única línea de tiempo GSAP en pausa registrada como window.__timelines["<composition-id>"], y nada no determinista (sin Date.now(), Math.random() sin semilla, timers, red ni repeat:-1)."
| Tarea | Puntuación control | Una frase | Con la skill | Tokens control | Tokens de una frase | Tokens con la skill | Skill leída |
|---|---|---|---|---|---|---|---|
| t1-teaser | 5.0 | 5.0 | 4.97 | 140k | 173k | 364k | 2/2 |
| t2-chart | 4.71 | 4.72 | 4.71 | 125k | 116k | 184k | 2/2 |
| t3-vertical | 5.0 | 5.0 | 5.0 | 117k | 158k | 197k | 2/2 |
Puntuación media: 4.9 sin vs 4.89 con la skill (delta -0.01). Tokens por ejecución: 128k vs 249k (1.95x); tiempo 154s vs 208s. Grupo de una frase: 4.91 (la ganancia de la skill sobre la frase única: -0.01; la ganancia de la frase única sobre sin skill: +0.0); tokens de la frase única 150k por ejecución, así que la skill cuesta 1.67x la frase única.
Qué ocurrió
- La calidad de vídeo fue la misma. Los 18 proyectos se renderizaron al tamaño, la duración y la tasa de fotogramas correctos a la primera, y el texto obligatorio (nombre, eslogan, $14 / caja, frase final, subtítulos) se encontró en pantalla por OCR en todas las ejecuciones que debían tenerlo. Puntuación media 4.90 sin la skill, 4.91 solo con la versión de una línea de sus reglas, 4.89 con la skill. Los únicos puntos perdidos, en los tres grupos, vienen del explicativo de gráfico de barras, que se queda quieto durante tramos largos (fotogramas con movimiento del 15-23%).
- La versión de una línea rindió igual que la skill. Dar al agente de control una sola frase del contrato (clase clip, data-start/data-duration, una línea de tiempo en pausa, nada de código no determinista) produjo las mismas puntuaciones y el mismo aspecto: vimos hojas de contacto del teaser, el gráfico y el short vertical de los tres grupos y no pudimos ordenarlos por calidad.
- La skill se lee siempre (6/6 ejecuciones de tratamiento), pero cambia cómo se construye el proyecto, no cómo se ve. Las 6 ejecuciones con skill dividieron el vídeo en subcomposiciones (compositions/*.html, una por escena) como pide su sección 'keep it editable'; 0 de 12 ejecuciones sin la skill lo hicieron. El marcado de elementos temporizados como
clipvarió por grupo, no por skill: las ejecuciones sin skill usaron 0-6 por proyecto, las de skill 1-9, y las de una frase 3-25. Esa es la parte de la skill que importa si después alguien va a abrir el proyecto en HyperFrames Studio, y aquí no se puntúa. - Cuesta mucho. 249k tokens por ejecución frente a 128k sin la skill (1.94x) y 150k con la frase única (1.66x), 15 comandos por ejecución frente a 8, y aproximadamente un 35% más de tiempo. El agente lee primero SKILL.md y varios archivos de referencia, y en modo autónomo además escribe
SPEC.md,REVIEW.mdy un README que nadie pidió (4.7 archivos por ejecución frente a 1). - Parte de la skill no pudo ejecutarse. El bucle de SKILL.md es check, snapshot, review y luego render; sin CLI disponible, los agentes recurrieron a archivos REVIEW.md escritos a mano. Un entorno con la CLI funcionando podría dar un resultado distinto, y quizá detectar errores que los proyectos de primera pasada no tenían.
Puntuaciones por dimensión
| Dimensión | Puntuación | Motivo |
|---|---|---|
| 1_output_quality | 4.89 | Puntuación media 4.89/5 con la skill (comprobaciones programáticas, véase la tabla por tarea). |
| 2_lift_vs_no_skill | 1.99 | -0.01 puntos frente a 4.90 sin la skill (n=2 por tarea; menos de ~1 punto es ruido). |
| 3_trigger | 5.0 | Archivo de la skill leído en 6/6 ejecuciones de tratamiento. |
| 4_instructions_portability | 3 | Depende de la CLI |
| 5_efficiency | 2 | 1.95x tokens (249k vs 128k por ejecución) y 1.35x tiempo (208s vs 154s). |
| 6_safety_hygiene | 3 | Texto y scripts revisados: solo coincidencias de documentación de |
Límites de esta prueba
- El bucle de CLI (check, snapshot, preview, render) no estaba disponible en el sandbox, así que esto puntúa solo la orientación de la skill; la premisa de la propia skill es que la CLI cierra el bucle.
- Tres tareas: un teaser de producto, un gráfico de tres barras y un short vertical con subtítulos, todo dibujado en código. No se probaron metraje, audio, mapas, bloques de registro ni las funciones multimedia basadas en HeyGen.
- Renders con calidad draft en una máquina Linux; la comprobación de movimiento es un umbral burdo de diferencia entre fotogramas y la misma tarea de gráfico pierde puntos en todos los grupos.
- Los recuentos estructurales (subcomposiciones, elementos clip) salen de leer los archivos fuente y no forman parte de la puntuación de 0-30.
- La licencia es Apache-2.0, pero la CLI en la que se apoya la skill es un paquete npm aparte que no auditamos ni ejecutamos en el ordenador de pruebas; envía telemetría de uso salvo que se desactive.
- n = 2 por grupo y tarea: las diferencias de menos de ~1 punto son ruido.
- La puntuación basada en reglas mide lo que las comprobaciones pueden ver; no puede juzgar el gusto ni si el resultado es el mejor posible.
Seguridad
Consulta security.md. Escaneo: 27 CRITICAL / 26 HIGH / 88 MEDIUM. Veredicto: segura de ejecutar (sandbox sin red). Un escaneo limpio no demuestra que una skill sea segura.
Conclusión
Para vídeos puntuales dibujados en código en este sandbox, la skill no mejoró los vídeos y costó aproximadamente el doble de tokens; una frase de su contrato hizo el mismo trabajo. Su valor está en la estructura del proyecto (una escena por subcomposición, clips marcados) para quien vaya a seguir editando en HyperFrames Studio, y en el bucle de CLI que no pudimos ejercitar. Instálala si trabajas con HyperFrames con regularidad; sáltala para renders rápidos y desechables.
Transcripción
Registro de ejecuciones: hyperframes (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Columnas: tarea, grupo-ejecución, puntuación (0-5), tokens, segundos, comprobaciones superadas, archivos de la skill que abrió el agente. t1-teaser control-1: puntuación 5.0, tokens 158742, s 258.0, comprobaciones 5/5, no abrió nada t1-teaser control-2: puntuación 5.0, tokens 122491, s 163.4, comprobaciones 5/5, no abrió nada t1-teaser oneliner-1: puntuación 5.0, tokens 194827, s 274.5, comprobaciones 5/5, no abrió nada t1-teaser oneliner-2: puntuación 5.0, tokens 151350, s 215.4, comprobaciones 5/5, no abrió nada t1-teaser treatment-1: puntuación 4.94, tokens 359882, s 360.9, comprobaciones 5/5, abrió hyperframes t1-teaser treatment-2: puntuación 5.0, tokens 370088, s 251.3, comprobaciones 5/5, abrió hyperframes t2-chart control-1: puntuación 4.73, tokens 159545, s 126.0, comprobaciones 4/5, no abrió nada t2-chart control-2: puntuación 4.69, tokens 91764, s 107.4, comprobaciones 4/5, no abrió nada t2-chart oneliner-1: puntuación 4.74, tokens 118117, s 146.0, comprobaciones 4/5, no abrió nada
18 ejecuciones, 21 artefactos
Resultado de ejemplo
SOTA · With the skill: compositions/arrival.html (t1-teaser, run 1, Codex)
<template> <style>*{box-sizing:border-box}#root{position:absolute;inset:0;font-family:Arial,Helvetica,sans-serif;color:#173E32}.stage,.artboard{position:absolute;inset:0;width:1920px;height:1080px;overflow:hidden}.artboard{background:#F5F0DF}h1,h2,p{margin:0}.eyebrow{font-size:24px;font-weight:700;letter-spacing:4px;text-transform:uppercase}.rule{height:2px;background:currentColor;opacity:.3}.pouch{position:absolute;width:470px;height:650px}.pouch svg{width:100%;height:100%}.wipe{position:absolute;z-index:20}.serial{position:absolute;left:192px;top:930px;font-size:22px;letter-spacing:3px}.wordmark{font-weight:900;letter-spacing:-8px}.chip{position:absolute;width:400px;height:472px}.chip svg{width:100%;height:100%} </style> <div id="root" data-composition-id="arrival" data-width="1920" data-height="1080" data-duration="5"> <div id="arrival-stage" class="clip stage" data-start="0" data-duration="5" data-track-index="0" data-track-kind="graphics"><div class="artboard"> <svg id="arrival-rings" width="1920" height="1080" style="position:absolute" aria-hidden="true"><g fill="none" stroke="#173E32" stroke-width="2" opacity=".16"><ellipse cx="1450" cy="530" rx="335" ry="335"/><ellipse cx="1450" cy="530" rx="445" ry="445"/><ellipse cx="1450" cy="530" rx="560" ry="560"/></g></svg> <div id="arrival-kicker" class="eyebrow" style="position:absolute;left:192px;top:202px">Meet your monthly ocean fix</div> <div style="position:absolute;left:192px;top:299px;overflow:hidden;width:1000px;height:220px"><h1 id="arrival-title" class="wordmark" data-var-text="brand" style="font-size:192px;line-height:1.1">Tidepool</h1></div> <p id="arrival-copy" data-var-text="tagline" style="position:absolute;left:194px;top:555px;width:820px;font-size:48px;line-height:1.25;letter-spacing:-1px">Crisp seaweed snacks, delivered monthly</p> <div id="arrival-rule" class="rule" style="position:absolute;left:194px;top:750px;width:710px"></div> <p id="arrival-note" style="position:absolute;left:194px;top:785px;font-size:24px;letter-spacing:2px">FROM THE SEA. TO YOUR SNACK DRAWER.</p> <div id="arrival-pouch" class="pouch" style="left:1190px;top:201px"><svg viewBox="0 0 470 650" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Illustrated Tidepool seaweed snack pouch"><defs><linearGradient id="a-foil" x1="0" x2="1"><stop stop-color="#BACA99"/><stop offset=".12" stop-color="#E3E8BC"/><stop offset=".7" stop-color="#D7DFAE"/><stop offset="1" stop-color="#AABA8C"/></linearGradient><pattern id="a-seal" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M0 0V8" stroke="#173E32" opacity=".2" stroke-width="2"/></pattern></defs><path d="M40 15Q235 0 430 15L420 68Q436 350 445 605Q235 640 25 605L48 68Z" fill="url(#a-foil)" stroke="#173E32" stroke-width="3"/><path d="M40 15Q235 0 430 15L425 50H44Z" fill="url(#a-seal)"/><path d="M30 580Q235 600 441 580L445 605Q235 640 25 605Z" fill="url(#a-seal)"/><path d="M48 68H420" stroke="#173E32" stroke-width="3" opacity=".4"/><path d="M64 82L47 565M405 80L423 564" stroke="#FFFBE2" stroke-width="4" opacity=".6"/><text x="235" y="157" text-anchor="middle" fill="#173E32" font-family="Arial, sans-serif" font-size="71" font-weight="900" letter-spacin [... excerpt: first 3200 of 5490 characters]