Communitygithub.com

HyperFrames — punto de partida

Lee esto primero para cualquier solicitud de crear, editar, animar o renderizar un video, animación o gráfico en movimiento (promo, explicador, clip con subtítulos, tarjeta de título, superposición o cualquier composición). HyperFrames renderiza video desde HTML; esta es la habilidad de entrada y la forma predeterminada en que un agente escribe o edita video. Enruta la solicitud al flujo de trabajo especializado correcto y apunta a las habilidades del dominio HyperFrames, así que léelo antes que cualquier otra habilidad de video o animación en lugar de adivinar un flujo de trabajo.

¿Qué es HyperFrames — punto de partida?

HyperFrames es un framework de creación de video que convierte HTML en video renderizado, utilizando atributos `data-*` en el DOM para controlar la sincronización y la animación. Esta habilidad principal actúa como enrutador de solicitudes: analiza la entrada del usuario (por ejemplo, una URL de producto, un texto explicativo, un video existente o una pista de música) y selecciona el flujo de trabajo especializado más adecuado entre una docena de opciones, como lanzamiento de producto, explicador sin rostro, video a partir de un PR de GitHub, subtítulos incrustados, gráficos en movimiento o presentación de diapositivas. El sistema mantiene un mapa de capacidades atómicas (animación, dirección creativa, medios, CLI) que se cargan bajo demanda, y recomienda verificar la instalación de los flujos de trabajo seleccionados mediante `npx skills add`. La habilidad está diseñada para plataformas como Claude Code, Cursor y Codex, y su fortaleza reside en eliminar la ambigüedad entre flujos de trabajo similares (por ejemplo, video musical vs. gráficos en movimiento) mediante preguntas específicas sobre la entrada y el tema, garantizando que el agente no adivine el flujo de trabajo.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/EvovexAI/EvoFlow/tree/HEAD/skills/public/hyperframes

Preguntar en tu IA favorita

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

Documentación

¿Qué hace HyperFrames — punto de partida?

HyperFrames renderiza video desde HTML — una composición es un archivo HTML cuyo DOM declara la sincronización con atributos data-*, cuyo tiempo de ejecución de animación es buscable, y cuya reproducción multimedia es propiedad del framework. El contrato completo de autoría está en /hyperframes-core; léelo antes de escribir HTML de composición.

A continuación: un mapa de capacidades (las habilidades del dominio, cargadas bajo demanda) y el enrutador de intenciones (elige un flujo de trabajo para cualquier solicitud de "hazme un video").

Mapa de capacidades — las habilidades del dominio

Capacidades atómicas que cargas bajo demanda — no flujos de trabajo completos de video. Para "hazme un video", usa el enrutador de intenciones a continuación.

Quieres…Habilidad
Autor/editar una composición HTML — el contrato data-*, clips, pistas, subcomposiciones, variables/hyperframes-core
Animar — movimiento atómico, planos de escena, transiciones, adaptadores de tiempo de ejecución (GSAP / Lottie / Three.js / Anime.js / CSS / WAAPI / TypeGPU)/hyperframes-animation
Dirección creativa — frame.md / design.md, paletas, tipografía, narración, planificación de ritmos, audio-reactivo/hyperframes-creative
Medios — locución TTS, música de fondo, transcripción, eliminación de fondo, subtítulos/hyperframes-media
Resolución de medios — encontrar + congelar BGM, SFX, imágenes, íconos del catálogo de HeyGen en .media/ con seguimiento de manifiesto/media-use
Bucle de desarrollo CLI — init, lint, validar, inspeccionar, previsualizar, renderizar, publicar, doctor/hyperframes-cli
Instalar bloques/componentes del registro (hyperframes add)/hyperframes-registry

Enrutamiento de intenciones — elige un flujo de trabajo

Esta sección solo conoce los flujos de trabajo de alto nivel; no carga sus referencias internas ni las habilidades del dominio anteriores.

Antes de enrutar — confirma la entrada, no la especificación

El enrutamiento necesita saber de qué trata el video — su entrada y tema. Si eso no está especificado ("haz un video sobre nuestra cosa" sin URL, producto, tema o recurso), pregunta antes de entrar en cualquier flujo de trabajo — comprometerse con un flujo de trabajo ES la decisión de enrutamiento. Como máximo dos preguntas:

  • Entrada — ¿un producto (URL / resumen), un sitio web general, un PR de GitHub, un tema a explicar, o un video existente de una persona hablando?

Valores predeterminados de especificación — indícalos, no preguntes (nunca cambian la ruta): relación de aspecto 16:9 (usa 9:16 solo para un destino vertical nombrado — TikTok / Reels / Shorts); idioma de narración/subtítulo = el del usuario. El flujo de trabajo elegido reconfirma sus propios detalles en su primer paso.

Hoja de referencia de flujos de trabajo

Flujo de trabajoÚsalo para
/product-launch-videoComercializar / lanzar / promocionar un producto — desde su URL, un resumen o un guión (incluso si el sitio solo se menciona)
/faceless-explainerExplicar un tema/concepto a partir de texto — sin producto, sin URL; cada visual es inventado por el LLM
/pr-to-videoUn PR de GitHub / cambio de código → video explicativo de changelog / revelación de funcionalidad / corrección / refactorización
/embedded-captionsAgregar subtítulos/captions a un video existente de una persona hablando (metraje intacto)
/talking-head-recutEmpaquetar un video existente de una persona hablando con superposiciones gráficas diseñadas — tercios inferiores, llamadas de datos, títulos cinéticos, citas destacadas
/motion-graphicsUn gráfico en movimiento corto, sin narración, basado en diseño — tipografía cinética, un golpe de estadística/gráfico, un sting de logotipo, una superposición de tercio inferior
/music-to-videoUna pista de música → un video sincronizado con el ritmo — video lírico, presentación de diapositivas o promo cinética; la música marca el ritmo (imágenes/videos opcionales del usuario cortados en la cuadrícula de ritmo)
/slideshowUna presentación / pitch deck / deck interactivo — diapositivas discretas, fragmentos, bifurcaciones, hotspots; la salida es un deck navegable, no un video renderizado
/general-videoCualquier otra cosa — piezas más largas o de múltiples escenas, un bucle/póster estático, una composición personalizada, o un recorrido de sitio general cuando ningún flujo de trabajo especializado encaja
/remotion-to-hyperframesPortar una composición existente de Remotion (React) a HyperFrames (migración, no creación)

Desambiguación (solo donde sea confuso):

  • Prioridad al movimiento y sin narración (menos de ~10s, el movimiento es el mensaje) → /motion-graphics, independientemente de la entrada.
  • Una URL o guión — comercializa un producto específico (incluso solo mencionar el sitio) → /product-launch-video; un sitio general no relacionado con productos → /general-video; un enlace de PR de GitHub → /pr-to-video; explica un concepto sin producto/sitio → /faceless-explainer. Si no está claro si es producto vs. tema, o lanzamiento vs. sitio general → haz una pregunta.
  • Metraje existente — subtítulos simples de voz en off → /embedded-captions; tarjetas de superposición diseñadas → /talking-head-recut. Ninguno edita el metraje en sí (re-timing / recolor / reframe / reorder / audio es edición NLE — fuera del alcance).
  • Una pista de música es la entrada (un archivo de audio, o un video para extraer audio) sin narración → /music-to-video — los ritmos/energía de la música marcan el ritmo. (Las piezas narradas se quedan con el flujo de trabajo coincidente de entrada anterior; /motion-graphics es para movimiento corto sin narración que no está impulsado por música).
  • Una presentación / pitch deck / deck interactivo (diapositivas discretas, navegación, modo presentador) → /slideshow — la salida es un deck navegable, no un video renderizado. Una solicitud explícita de "presentación de diapositivas" procede directamente; un desencadenante adyacente ("deck / diapositivas / presentación / convertir esta página") hace que /slideshow confirme que es una presentación de diapositivas antes de la autoría, y cambie al flujo de trabajo no relacionado con presentaciones apropiado si no lo es.
  • La duración es una guía, no una barrera — la intención elige el flujo de trabajo; ve a /general-video solo cuando la pieza sea claramente más larga de ~3 min, o sea un formato estático/bucle/personalizado.

Si el flujo de trabajo coincidente no está instalado

Una vez que hayas elegido un flujo de trabajo, verifica que esté realmente disponible para ti. Si la habilidad del flujo de trabajo coincidente no está instalada, no recurras a adivinar — dile al usuario que la instale primero:

  • Solo este flujo de trabajo: npx skills add heygen-com/hyperframes --skill <nombre-del-flujo-de-trabajo> (por ejemplo, --skill pr-to-video — nombre simple, sin / inicial).
  • Todos los flujos de trabajo a la vez: npx skills add heygen-com/hyperframes --all (core + cada flujo de trabajo, omite el selector).

Después de que lo ejecuten, vuelve a leer la habilidad del flujo de trabajo y continúa.

Mantener las habilidades actualizadas

Las habilidades de HyperFrames tienen versiones. npx hyperframes init verifica las habilidades instaladas contra las últimas en GitHub e instala/actualiza el conjunto completo cada vez que algo está desactualizado o falta — por lo que un proyecto recién inicializado siempre tiene el conjunto completo y más reciente (y volver a ejecutar init en un proyecto actualizado no hace nada). La verificación es un viaje rápido de ida y vuelta a GitHub; sin conexión (o con límite de velocidad) recurre a instalación después de un breve tiempo de espera, por lo que init nunca falla por un contratiempo de red. Los flujos de trabajo de creación preparan con init, por lo que comenzar un nuevo proyecto siempre ejecuta esta verificación y descarga nuestras habilidades más recientes de GitHub cuando están obsoletas. La bandera --skip-skills está actualmente neutralizada (una medida temporal mientras el registro skills.sh se pone al día): pasarla ya no omite la verificación, por lo que cada init verifica GitHub. CI/tests optan por no participar mediante la variable de entorno HYPERFRAMES_SKIP_SKILLS=1.

Si una tarea se comporta inesperadamente, o antes de una compilación larga, confirma que las habilidades instaladas estén actualizadas:

  • Verificar: npx hyperframes skills check (agrega --json para un veredicto legible por máquina; sale con código no cero cuando algo está desactualizado o falta).
  • Actualizar: npx hyperframes skills update — descarga el conjunto completo a la versión más reciente, instalando cualquier habilidad aún no presente (lo mismo que el paso de instalación de init).

El CLI también muestra un recordatorio de una línea cuando una ejecución de render / lint / validate detecta habilidades obsoletas.

Detalles de los flujos de trabajo

/product-launch-video

  • Entrada: Un producto que se comercializa — (a) una URL de producto (explorada con Chrome sin interfaz gráfica para activos + tokens de marca), (b) un guión/resumen que menciona el sitio del producto incluso sin un enlace (PLV lo resuelve + lo explora, a menos que el usuario opte por no hacerlo), o (c) un guión sin sitio derivable / "no raspar" (modo sin captura — elige un preset de estilo que proporcione paleta + sistema de diseño). Un guión proporcionado puede ser la voz en off textual o reestructurada por escena — PLV pregunta.
  • Salida: lanzamiento de producto / promo SaaS como una composición HyperFrames → MP4. (punto óptimo 30–90s).
  • Desencadenantes: "video de lanzamiento para X", "promo para nuestro sitio", "explica mi SaaS en un minuto", "convierte mi guión en una promo de 60s", "video de lanzamiento solo texto, no raspes".

/faceless-explainer

  • Entrada: Texto arbitrario — un tema, artículo o notas — que se está explicando, sin que se comercialice ningún producto ni se capture un sitio. (Bifurcado de /product-launch-video; sin Chrome sin interfaz gráfica).
  • Salida: explicador sin rostro → MP4, cada visual inventado por el LLM por escena (tipografía / abstracto / diagrama / visualización de datos); incluye el preset pin-and-paper. (punto óptimo 30–90s).
  • Desencadenantes: "explicador sin rostro sobre X", "explica cómo funciona DNS como un video", "convierte este artículo en un explicador", "explicador a partir de mis notas".

/pr-to-video

  • Entrada: Un pull request de GitHub — una URL de PR, una referencia owner/repo#N, o "este PR" — leído a través del CLI gh (no un sitio para raspar).
  • Salida: video explicativo de cambio de código (changelog / revelación de funcionalidad / corrección / refactorización) → MP4 — destacados de diff, antes/después, árbol de archivos + escenas de impacto. ≤ (punto óptimo 30–90s).
  • Desencadenantes: "haz un video sobre este PR", "convierte el PR #1187 en un video de changelog", "video de notas de versión desde github.com/org/repo/pull/123".

/embedded-captions

  • Entrada: Un video existente de una persona hablando (MP4) para subtitular — metraje real, no una URL o resumen. Transcrito localmente (Whisper, sin clave API) y enmascarado (RVM) para que el sujeto pueda ocultar los subtítulos.
  • Salida: el mismo metraje intacto, con una capa de subtítulos — Estándar (riel textual textual en tercio inferior + un clímax incrustado detrás del sujeto) o Cinematográfico (cada subtítulo compuesto detrás del sujeto). Cualquier duración.
  • Desencadenantes: "agrega subtítulos / captions a este video", "subtítulos detrás del sujeto", "subtítulos cinematográficos para mi clip".

/talking-head-recut

  • Entrada: Un video existente de una persona hablando / entrevista / podcast (MP4) para empaquetar con gráficos en pantalla — metraje real. Transcrito localmente (Whisper). El clip se reproduce completamente debajo, intacto.
  • Salida: el mismo metraje con tarjetas de superposición gráfica temporizadas — títulos cinéticos, tercios inferiores, llamadas de datos, citas destacadas, paneles laterales, imagen en imagen — sincronizadas con la transcripción. Cualquier duración.
  • Desencadenantes: "empaqueta este video", "agrega superposiciones gráficas / tercios inferiores / llamadas de datos a mi charla", "convierte esta entrevista en una edición empaquetada con gráficos".

/motion-graphics

  • Entrada: Un gráfico en movimiento corto, basado en diseño, donde el movimiento es el mensaje — típicamente menos de ~10s, sin narración. Géneros: tipografía cinética, un conteo de estadística/número, un golpe de gráfico, un sting de logotipo, un tercio inferior / superposición, o un disparo de página / tweet / titular impulsado por búsqueda.
  • Salida: un gráfico en movimiento corto → MP4 o una superposición transparente (alpha WebM / MOV) para un tercio inferior / llamada.
  • Desencadenantes: "un sting de logotipo de 8s", "anima esta estadística", "una intro de tipo cinético", "convierte este tweet en un gráfico en movimiento", "una superposición de tercio inferior transparente".

/music-to-video

  • Entrada: Una pista de música — un archivo de audio, o un video para extraer el audio — sin narración y sin captura de sitio web. Opcionalmente, imágenes/videos proporcionados por el usuario para entrelazar. La pista se analiza una vez en un mapa de ritmo/energía determinista (audiomap.json) sobre el cual se construye todo el video.
  • Salida: una composición HyperFrames sincronizada con el ritmo → MP4 donde la música marca el ritmo. La tipografía y las plantillas son el piso (un video completo necesita cero activos); cualquier medio proporcionado se corta en la misma cuadrícula de ritmo (beat-cut / ken-burns). El género — video lírico, presentación de diapositivas, promo cinética — surge de las elecciones por fotograma; el pipeline nunca se bifurca en él.
  • Desencadenantes: "haz un video para esta canción", "video sincronizado con el ritmo a partir de esta pista", "video lírico", "convierte esta música en un video", "visualizador de música / promo cinética a este ritmo".

/slideshow

  • Entrada: Una presentación / pitch deck / deck interactivo para autorizar — un resumen, un esquema o una página existente para convertir en diapositivas. No es una solicitud de un video renderizado; si la intención es ambigua, la habilidad confirma "¿quieres esto como una presentación de diapositivas de HyperFrames?" antes de la autoría.
  • Salida: una composición HyperFrames ejecutable + una isla JSON que el SlideshowController del reproductor lee para convertir...

Individual skills in this repo

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

EvovexAI/EvoFlow

Add captions to a talking-head video. ONE catalog (CATALOG.md) of 32 visual identities behind two engines: column-flow (captions composited INTO the scene — matte occlusion + mix-blend; cream/ink/editorial/keynote/documentary/loud/neon/glitch/chrome/velocity) and themed constitutions (anchor/ordnance/terminal/neonsign/stardust/stomp/scoreboard/transit/vhs/arcade/dossier/laser/thunder/hologram/biolume/aurora/spectrum/papercut/popup/chalkboard/graffiti/brush/inkwater/ransom/lastpage/nightcity — e.g. a glyph-decode climax, a neon sign WRITTEN stroke by stroke, or the quiet `anchor` rail default). Route by identity, never by mode. Trigger on "captions/subtitles", "embed/cinematic captions", "VFX captions", "炸/特效/酷炫字幕", a named identity, or top-tier motion-graphics asks. Embedding every word is wrong for most talking-head content — `anchor` is the verbatim default. Pipeline: transcription → hyperframes remove-background matting → HTML render → ffmpeg overlay. Requires hyperframes and a single-subject clip.

EvovexAI/EvoFlow

The fallback workflow for authoring custom HyperFrames video compositions at any length or format — longer or multi-scene pieces, brand / sizzle reels, montages, title cards, static loops, and freeform compositions. Input- and length-agnostic. If a specialized workflow clearly fits the input — a marketed product, a website, a topic explainer, a GitHub PR, existing footage, a short motion graphic, or a Remotion port — prefer it (see /hyperframes); use this only as the general fallback when none fit.

EvovexAI/EvoFlow

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). HyperFrames-native: single paused timeline, seek-safe, deterministic.

EvovexAI/EvoFlow

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, tts, or remove-background, or when troubleshooting the HyperFrames build/render environment. Entry point for AWS Lambda cloud rendering (`hyperframes lambda deploy / render / progress / destroy / policies`).

EvovexAI/EvoFlow

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

EvovexAI/EvoFlow

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

EvovexAI/EvoFlow

Audio and media assets for HyperFrames compositions, produced by one shared audio engine (`scripts/audio.mjs`) — multi-provider TTS (HeyGen / ElevenLabs / Kokoro local), background music + sound effects (HeyGen audio-library retrieval by default, with local Lyria / MusicGen BGM generation and a bundled SFX library as the no-credential fallback), Whisper transcription, background removal, and caption authoring. Use for voiceover / TTS, BGM, SFX / sound effects, transcription, captions / subtitles / lyrics / karaoke / per-word styling, voice + provider selection, and music-mood prompting.

EvovexAI/EvoFlow

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, registry discovery, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

EvovexAI/EvoFlow

Use when the user wants a short, design-led motion graphic where motion is the message: kinetic typography, stat or number count-up, chart/data-viz hit, logo sting, brand lockup, lower-third, callout, social overlay, animated headline/tweet/news item, motion poster, or quick captured-page highlight. Usually under 10s and up to ~30s, with no narration arc, voice-over, or live-action subject. Can render to MP4 or transparent overlay. Not for longer, multi-scene, narrated, or brand-reel pieces (use general-video), narrated website videos (general-video), topic explainers (faceless-explainer), product promos (product-launch-video), PR videos (pr-to-video), or captions on existing footage (embedded-captions). When unsure whether it's a quick motion-first piece or a longer / narrated treatment, see /hyperframes.

EvovexAI/EvoFlow

Use when the user has a music track (an audio file, or a video to pull audio from) and wants a beat-synced HyperFrames video, calm to hard-hitting. The music drives everything: one analyzer reads it once, the orchestrator lays out the frames and fills a per-frame plan, and one sub-agent builds each frame. Typography and templates are the floor — a complete video needs zero assets — but any images or videos the user supplies are cut into the frames on the same beat grid (beat-cut / ken-burns). The genre (lyric video, slideshow, kinetic promo) falls out of the per-frame choices; the pipeline never branches on it.

EvovexAI/EvoFlow

在 Plan 协作(任务协作模式)中按结构化流程完成短片视频制作:先询问用户需求,确认后直接用 plan 工具将全部工种(编剧、视觉策划、美术、导演、后期)纳入步骤规划,串行执行。

EvovexAI/EvoFlow

turn a product or marketing URL, pasted script, or brief into a product launch video, including SaaS promos, feature reveals, app launches, company promos, and product marketing videos. Use this skill when the user wants to market, launch, promote, or reveal a product. Do not use it for general non-launch website tours, non-product topic explainers, GitHub pull requests, captioning existing footage, or short unnarrated motion graphics. If the intent is unclear, route through /hyperframes first. This is the new shot-sequence architecture: every visual frame is authored as a time-coded shot sequence picked from a menu of golden blueprints, so frames develop over their full duration instead of freezing after entrance.

EvovexAI/EvoFlow

turn a GitHub pull request (a PR URL like github.com/<owner>/<repo>/pull/<N>, an <owner>/<repo>#<N> ref, or 'this PR' in a checked-out repo) into a code-change explainer video, up to ~3 min (sweet spot 30-90s) — changelog, feature reveal, fix, or refactor walkthrough, rendered from the diff / commits / files. The input is a CODE CHANGE read via the gh CLI; there is no website capture. Use this skill for a GitHub PR. Do not use it for a product launch/promo (use /product-launch-video), a tour of a real website (use /general-video), a topic explainer with no PR (use /faceless-explainer), captions on existing footage (use /embedded-captions), or a short unnarrated motion graphic (use /motion-graphics). If the intent is unclear, route through /hyperframes first.

EvovexAI/EvoFlow

Port an existing Remotion (React) composition to HyperFrames HTML. Use ONLY when the user explicitly asks to port/convert/migrate/translate a Remotion source. Do NOT use: (a) authoring a new HyperFrames composition; (b) Remotion mentioned in passing; (c) Remotion code shared as reference only; (d) "same video as my Remotion one" without explicit migrate request — treat as fresh build. Doubt → `/general-video`. One-way, Remotion-only: no reverse export (HyperFrames→Remotion or any framework), no non-Remotion source (After Effects, Framer Motion, plain React/CSS) → out of scope, re-create via `/general-video`. Flags unsupported patterns (useState, useEffect, async calculateMetadata, third-party React libs, `@remotion/lambda`) and recommends runtime interop over lossy translation. Unsure whether to port vs. build fresh, or only a passing Remotion mention? → /hyperframes.

EvovexAI/EvoFlow

本地文字转语音,使用sherpa-onnx(离线,无需云端)。当需要离线语音合成时使用。

Skills relacionados