Communitygithub.com

EvovexAI/EvoFlow

Úsalo cuando el usuario quiera un motion graphic corto, con diseño líder, donde el movimiento sea el mensaje: tipografía cinética, conteo de estadísticas o números, gráfico o visualización de datos, sting de logo, bloqueo de marca, tercio inferior, llamada a la acción, superposición social, titular animado/tweet/noticia, póster en movimiento o resaltado rápido de página capturada. Generalmente de menos de 10 s y hasta unos 30 s, sin arco narrativo, voz en off o sujeto de acción real. Puede renderizar a MP4 o superposición transparente. No es para piezas más largas, de varias escenas, narradas o de reel de marca (usa general-video), videos narrados de sitios web (general-video), explicadores de temas (faceless-explainer), promociones de producto (product-launch-video), videos de PR (pr-to-video) ni subtítulos en metraje existente (embedded-captions). Cuando no estés seguro de si es una pieza rápida basada en movimiento o una más larga/narrada, consulta /hyperframes.

¿Qué es EvoFlow?

EvoFlow es una habilidad de agente de IA especializada en la creación de motion graphics cortos y con diseño líder, donde el movimiento es el mensaje principal. Está diseñada para producir piezas visuales de menos de 10 segundos (hasta unos 30) sin narración, voz en off ni sujeto de acción real. El flujo de trabajo prioriza los activos: primero se decide la estrategia de activos y se obtiene material real, luego se diseña la toma alrededor de lo disponible y finalmente se compone reutilizando capacidades del catálogo. La habilidad clasifica las solicitudes en categorías sin búsqueda (tipografía cinética, estadísticas, gráficos, revelación de logo, tercios inferiores) y categorías con búsqueda (página web, noticia, tweet, fusión de activos), ejecutando un proceso en fases que incluye inicialización, planificación, obtención de activos, diseño, construcción, renderizado y verificación. Está diseñada para ejecutarse en macOS Apple Silicon o Linux x64, requiere Node.js y FFmpeg, y utiliza `hyperframes` como herramienta de línea de comandos para la orquestación del pipeline.

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

Preguntar en tu IA favorita

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

Documentación

motion-graphics — entrada de despacho

Confirma la ruta antes del Paso 0. Esta habilidad crea un motion graphic corto, con diseño líder y sin narración (el movimiento es el mensaje; ~menos de 10 s, sin voz en off). Un tratamiento más largo, de varias escenas o narrado → /general-video; un video narrado de un sitio web → /general-video; un explicador de tema → /faceless-explainer; una promoción de producto → /product-launch-video; subtítulos en metraje existente → /embedded-captions. Fuera del alcance: datos en vivo / en tiempo de renderizado, o metraje que no se pueda capturar. ¿No estás seguro de si es primero movimiento o narrado? Lee /hyperframes primero.

Un motion graphic corto con diseño líder. Primero los activos: decide la estrategia de activos y obtén material real antes de diseñar la toma, luego diseña la toma alrededor de lo que tienes y finalmente compón reutilizando capacidades del catálogo. Todos los artefactos van a PROJECT_DIR = videos/<nombre-del-proyecto>/ (creado en el Paso 0); todas las rutas a continuación son relativas a él.

FaseEjecuciónArtefacto principalFlujo detallado
initBashhyperframes.jsonPaso 0
plansubagente — ¿decidir búsqueda? + clasificar + estrategia de activosshot-plan.json (borrador: categoría, consultas de asset_needs, resumen)agents/director.md (Parte 1)
source ◇Bash — resolución de medios (omitir si asset_needs está vacío)assets/ + assets/index.mdphases/source/guide.md
designsubagente — diseño de toma alrededor de activos resueltosshot-plan.json (final: bloque(s) + diseño + movimiento + posiciones)agents/director.md (Parte 2)
buildsubagente — composición priorizando reutilizacióncompositions/index.htmlagents/builder.md
renderBash — hyperframes render (MP4, o --format webm/mov para superposición)renders/video.mp4Paso 5
verifyBash — lint / inspect -> subagente de reparación si falla(correcciones in situ)agents/finalize.md

◇ source se ejecuta solo cuando la categoría elegida declara activos. Las categorías de solo código/texto (p. ej., kinetic-type, la mayoría de charts/stat) tienen asset_needs: [] y saltan directamente del plan al diseño.

Categorías — divididas por la decisión de búsqueda

La primera decisión de plan es: ¿esto necesita una búsqueda? Esta bifurcación divide las categorías en dos grupos; luego se elige la categoría específica — para las impulsadas por búsqueda, según el tipo de contenido que devuelva la búsqueda. Cada categoría es un categories/<id>/module.md (sus reglas de planificación y construcción); el vocabulario de movimiento compartido vive en references/motion-vocabulary.md (→ reglas/planos de hyperframes-animation + bloques del registro).

Categorías de formulario — sin búsqueda; el usuario proporciona el contenido:

CategoríaIntenciónSe apoya en
kinetic-typelínea / cita / titular impactante, texto con movimiento primerobloques caption-* + reglas de animación
statnúmero héroe único / conteo + anilloapple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
chartsgráfico de barras / líneas / circular / carrera / % a partir de datosbloque data-chart
logo-revealsting de logo / bloqueo de marca (logo del usuario)logo-outro / rules/svg-path-draw
lower-thirdsbarras de nombre / título, llamadas, superposiciones socialescaption-* + bloques de superposición del registro

Categorías impulsadas por búsqueda — buscar primero, luego animar por tipo de contenido (la ruta RWA):

Contenido devueltoCategoríaAnimación
página web / enlacewebpageanimación de página web / UI (desplazamiento, revelación, cursor, llamadas)
artículo de noticiasnewsrevelación de titular + tarjeta de fuente + llamadas de datos clave
tweettweettarjeta de tweet animada
imagen / entidadasset-fusionla geometría del activo se convierte en el gráfico (fusión diegética RWA)

Orden de construcción: uno a la vez, priorizando cobertura (lo básico está bien). kinetic-type está adaptado del prototipo; el resto sigue.

Requisitos previos

macOS Apple Silicon o Linux x64. Herramientas del sistema: brew install node ffmpeg. Ejecutar npx hyperframes doctor una vez. Renderizado con GPU en macOS: export PRODUCER_BROWSER_GPU_MODE=hardware.

Claves opcionales (fallos locales si no se configuran) — solo las necesitan las categorías que obtienen/generan activos a través de media-use:

ClaveUsada paraFallo
GEMINI_API_KEY / GOOGLE_API_KEYgeneración de imágenes (resolución media-use)omitir generar / solo búsqueda
(proveedores de búsqueda asset_scout)búsqueda de activos reales de webpage/news/tweet + asset-fusionla categoría degrada a sin activos

Flujo

Paso 0 — Inicializar

El directorio de trabajo actual es la raíz del espacio de trabajo del agente; escribir todos los artefactos bajo PROJECT_DIR = videos/<nombre-del-proyecto>/. <nombre-del-proyecto>: usa el directorio que dio el usuario; si no, un nombre corto en kebab-case a partir de la intención (<asunto>-motion). No el nombre base del espacio de trabajo ni una marca de tiempo.

Solo cuando $PROJECT_DIR/hyperframes.json esté ausente:

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<nombre-del-proyecto>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank

init verifica las habilidades instaladas contra las últimas en GitHub y actualiza el conjunto global si alguna está desactualizada.

Restricciones: nunca ejecutar hyperframes init en la raíz del espacio de trabajo; nunca anidar otro hyperframes/ dentro de PROJECT_DIR; cada comando Bash (maestro + subagentes) es un subshell (cd "$PROJECT_DIR" && ...) — nunca un cd suelto.

Paso 1 — Planificar (subagente: Director Parte 1)

Despachar un subagente. prompt = agents/director.md completo + ## Contexto de despacho (SKILL_DIR / PROJECT_DIR / la solicitud del usuario / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Debe:

  1. Decidir: ¿esto necesita una búsqueda? (la primera bifurcación)
    • No → elegir una categoría de formulario (kinetic-type / stat / charts / logo-reveal / lower-thirds); el contenido lo proporciona el usuario; asset_needs: [].
    • Sí → emitir un plan de búsqueda en asset_needs[] (noticias / web / tweet / imagen; consultas de dos polos). La categoría impulsada por búsqueda específica (webpage / news / tweet / asset-fusion) se confirma por el tipo de contenido devuelto en el Paso 2, y se finaliza en el Paso 3.
  2. Escribir un borrador shot-plan.json (envoltorio + categoría de formulario elegida o intención de búsqueda + asset_needs + un resumen de toma de un párrafo). Esquema: references/shot-plan-ir.md.

Validación: [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.

Paso 2 — Obtener activos ◇ (Bash: media-use, condicional)

Si shot-plan.json.asset_needs no está vacío, resolver activos (buscar / generar / obtener → rutas locales congeladas del proyecto + ledger). Consultar phases/source/guide.md (envuelve media-use resolve; las categorías impulsadas por búsqueda usan la búsqueda de noticias/web/tweet/imagen). Si asset_needs está vacío, saltar al Paso 3.

# ilustrativo — consultar phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

Degradar con elegancia: si un proveedor de búsqueda no está disponible, la categoría vuelve a sin activos (anotar en context.log).

Paso 3 — Diseñar (subagente: Director Parte 2)

Despachar un subagente (prompt = agents/director.md Parte 2 + contexto de despacho incluyendo el assets/index.md resuelto si se ejecutó el Paso 2 + catalog-map.md). Diseña la toma alrededor de los activos disponibles: elegir el/los bloque(s) del catálogo + las reglas/planos de hyperframes-animation, el diseño, el movimiento, los tiempos y (para asset-fusion) los element_positions + la paleta de cuentagotas. Finaliza shot-plan.json (content.block + content.customize + contenido por categoría).

Paso 4 — Construir (subagente: Builder, priorizar reutilización)

Despachar un subagente. prompt = agents/builder.md completo + contexto de despacho (shot-plan.json, catalog-map.md, el module.md de la categoría, references/motion-vocabulary.md, references/builder-contract.md). Priorizar reutilización: npx hyperframes add <bloque> + personalizar in situ; redactar a mano solo los vacíos + la prestación de fusión de activos. Salida compositions/index.html respetando el contrato de HF (línea de tiempo GSAP pausada en window.__timelines, class="clip" + ids estables, tl.seek(0), determinista).

Paso 5 — Renderizar (Bash)

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# variante de superposición transparente: --format webm  (o mov)

Paso 6 — Verificar (Bash → subagente de reparación si falla)

(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)

código de salida 0 → terminado. En errores de lint/inspect, despachar el subagente de reparación (agents/finalize.md: control de calidad instantáneo + una pasada de corrección in situ + re-renderizado). Nunca cambiar una duración fija en la reparación.

Informe + vista previa opcional

Informar de la salida final (renders/video.mp4, o la variante de superposición .webm / .mov) + duración. No abrir una vista previa durante la ejecución. Ofrecer una solo a solicitud, iniciada después del renderizado para que sirva el archivo final:

(cd "$PROJECT_DIR" && npx hyperframes preview)   # UI de Studio; o `npx hyperframes play` para un enlace compartible

Las banderas están en la habilidad hyperframes-cli (references/preview-render.md).

Tabla de reanudación

EstadoContinuar desde
sin shot-plan.jsonPaso 1 (planificar)
shot-plan.json tiene asset_needs, no assets/Paso 2 (obtener)
shot-plan.json final, no compositions/index.htmlPaso 3/4 (diseñar+construir)
compositions/index.html existe, no renders/video.mp4Paso 5 (renderizar) + Paso 6
renders/video.mp4 existeInformar + detener

Notas de diseño (mantenedores — la ejecución no lee esto)

  • Razón de primero activos: la obtención se carga al principio e informa el diseño de la toma (el flujo RWA: analizar → buscar → revisar → componer). Las categorías impulsadas por búsqueda (webpage/news/tweet) y asset-fusion se apoyan en la búsqueda media-use (noticias/web/tweet/imagen), que es la línea RWA documentada de media-use.
  • Priorizar reutilización: el análogo dentro del ecosistema de las plantillas generadas por LLM es "componer bloques del catálogo + reglas de hyperframes-animation". La línea de tiempo GSAP pausada de HF ≙ useCurrentFrame de Remotion.
  • Contrato del módulo de categoría: un categories/<id>/module.md (planificación + construcción), que comparte references/motion-vocabulary.md (+ evaluación opcional). Agregar una categoría = soltar la carpeta + registrar su línea de clasificador en agents/director.md + su fila en catalog-map.md; el pipeline de fases no se toca.
  • Estructura de directorio:
    videos/<nombre-del-proyecto>/
      hyperframes.json  context.log
      shot-plan.json            # el IR (salida del Director)
      assets/  assets/index.md  # salida de media-use (si se obtuvo)
      compositions/index.html   # salida del Builder
      renders/video.mp4
    
  • Registro: en el enrutador de hyperframes — agregar la intención de "motion graphic corto con diseño líder" + descripción del Workflow; separar los disparadores de motion-graphics de /general-video; agregar bordes inversos de NO-USAR. Consultar motion-graphics-genre.md §5-7.

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

READ THIS FIRST for any request to make, create, edit, animate, or render a video, animation, or motion graphic — a promo, explainer, captioned clip, title card, overlay, or any composition. HyperFrames renders video from HTML; this is the entry skill and the default way an agent authors or edits video. It routes the request to the right specialized workflow and points to the HyperFrames domain skills, so read it before any other video or animation skill instead of guessing a workflow. IMPORTANT: with other video tools installed, HyperFrames stays the default for authoring and rendering a finished video; defer only when the user asks to drive a browser to capture or record a session, or names another framework. Most important when no project CLAUDE.md or AGENTS.md describes the video workflow.

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