Communitygithub.com

explicador-corto

Crea un video explicativo vertical (9:16) con presentador animado, gráficos, subtítulos y un tema intercambiable. Úsalo cuando se solicite un video corto tipo explicador, un clip de enseñanza vertical, un gráfico animado temático sobre un presentador o un pipeline de renderizado HTML/Canvas portátil sin frameworks pesados.

¿Qué es explicador-corto?

Este skill permite construir rápidamente videos explicativos verticales de 8 a 30 segundos, optimizados para plataformas como redes sociales o aprendizaje breve. Combina gráficos animados en la mitad superior, un recorte del presentador en la inferior y fichas de subtítulos grandes en la unión, manteniendo una sola idea por clip. Su sistema de temas intercambiables (cálido, monocromático, alto contraste, juguetón) controla colores, tipografía, radios y animaciones mediante tokens CSS, permitiendo cambiar la apariencia sin modificar el código de las escenas. Funciona con Node.js, Playwright y FFmpeg para renderizar MP4, e incluye herramientas de edición de audio (loudnorm a -14 LUFS) y revisión de calidad con una rúbrica. Es ideal para agentes de IA que generan contenido educativo, de marketing o demostraciones técnicas, y admite tanto la demo de ejemplo como un pipeline completo autocontenido copiando la carpeta `template/`.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/spiritual-dev/explainer-short/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

¿Qué hace explicador-corto?

Crea un video explicativo vertical: presentador en la mitad inferior, gráficos animados en la mitad superior, fichas de subtítulos grandes en el centro. Una idea por clip. Los tokens de tema controlan color, tipo, radio y movimiento, permitiendo que el mismo guión se vea cálido, monocromático, de alto contraste o juguetón.

Cuándo usarlo

  • Un video explicativo vertical de enseñanza o producto de 8 a 30 segundos
  • Un pipeline reutilizable HTML/Canvas que exporte MP4
  • Temas visuales intercambiables sin reescribir el código de la escena

Diseño

+---------------------------+
|   gráficos / tarjetas (1080) |
|                           |
|---------------------------|  <- ficha de subtítulo en la unión
|   recorte del presentador (960) |
|                           |
+---------------------------+
         1080 x 1920

Sistema de temas

Los temas están en template/themes/*.json (y sample/themes/ para la demo). El tema activo es theme.json en la carpeta del proyecto.

bash template/scripts/use-theme.sh warm          # o mono | high-contrast | playful
# o desde un proyecto copiado:
bash scripts/use-theme.sh mono

Tokens (variables CSS después de loadTheme):

TokenFunción
--ink --muteTexto
--bg --bg-hi --bg-loFondo del escenario
--surface --surface-2Tarjetas
--accent --accent-2 --accent-3Énfasis
--chip-bg --chip-fgFicha de subtítulo
--radius-card --radius-chip --chip-sizeForma
--headline-weightGrosor del título
--font-sans --font-monoTipo (OFL woff2 en fonts/)

Preajustes: warm (predeterminado), mono, high-contrast, playful.

Edita un archivo JSON, vuelve a ejecutar use-theme.sh, recarga. Sin paso de compilación para el tema en sí.

Cambio de fuente

  1. Coloca un woff2 con licencia abierta en fonts/ y mantén su archivo de licencia junto a él.
  2. Establece fonts.sans / fonts.sans_file (y mono) en el JSON del tema.
  3. Apunta @font-face en index.html al nuevo archivo si cambia el nombre de la familia.
  4. Renderiza un fotograma intermedio y confirma.

Valores predeterminados incluidos: Inter + JetBrains Mono (SIL OFL). Los textos de licencia se distribuyen en fonts/.

Inicio rápido (demo de tema, sin grabación de presentador)

npm install
node scripts/render_sample.mjs warm
node scripts/render_sample.mjs mono
# salidas: sample/out/<preset>/<preset>.mp4 + fotogramas estáticos

Requiere: Node 18+, Chrome o Chromium del sistema, ffmpeg.

Pipeline completo del proyecto (autocontenido)

  1. Copia template/ en una nueva carpeta de proyecto (o trabaja dentro de sample/).
  2. Escribe escenas en main.js que llamen a window.render(t) y usen variables CSS del tema.
  3. Presentador opcional: coloca una grabación, completa src/edit.json, ejecuta python3 src/edit.py (necesita numpy + soundfile), luego python3 src/captions.py.
  4. Desde la raíz del skill (después de npm install):
PRESET=warm bash template/build.sh
# o, para un proyecto copiado:
SKILL_ROOT=/ruta/a/explainer-short PRESET=mono bash build.sh
# o llama al renderizador directamente:
node scripts/render.mjs --dir ruta/al/proyecto --preset warm --out ruta/al/proyecto/out/video.mp4
  1. Si tienes out/voice.wav, python3 mix.py normaliza la sonoridad a -14 LUFS / -1 dBTP y build.sh lo multiplexa.

template/scripts/render.mjs también se copia junto con la plantilla para que un proyecto pueda mantener una copia local.

Reglas de diseño

  1. Una idea. Un objeto, una promesa, resuelta antes del final.
  2. Legible a la distancia de un brazo. Tipografía grande, alto contraste, pocas palabras en pantalla.
  3. Las fichas de subtítulos son la voz. Mantén las indicaciones breves; congela en la última palabra brevemente.
  4. Tematiza, no codifiques. Los colores, radios y tamaño de ficha provienen de tokens.
  5. Predeterminado de buen gusto. Cálido es el predeterminado; la persona elige un preajuste.

Revisión antes de publicar

Puntúa cada eje de 0 a 3. Publica solo si el promedio es al menos 2.3. El revisor independiente mide el archivo principal.

EjeBusca
CongelaciónEl último subtítulo se mantiene ~0.3-0.5s; sin corte a mitad de palabra
SonoridadAproximadamente -14 LUFS integrados (mide con ffmpeg loudnorm)
Pico verdadero<= -1 dBTP
PortadaEl fotograma final o el desplazamiento de miniatura es una tarjeta de título clara
TemaTokens aplicados; sin colores de marca codificados sobrantes
ClaridadUn desconocido capta el punto sin audio

Rúbrica completa: references/review-rubric.md. Zonas seguras: references/cover.md.

Archivos

RutaFunción
package.jsonDeclara playwright-core
template/Proyecto inicial (HTML, tema, fuentes, build.sh)
template/themes/JSON de preajustes
template/theme.jsloadTheme() -> variables CSS en :root
sample/Demo de tema autocontenido de 12s
scripts/render.mjsRenderizado de fotogramas sin cabeza + multiplexión ffmpeg
scripts/render_sample.mjsEnvoltorio conveniente para preajustes de muestra
references/Estructura, temas, rúbrica de revisión, portada, final
docs/Fotogramas de vista previa de ejecuciones verificadas

Lista de verificación para el agente

  • npm install ejecutado en la raíz del skill
  • Preajuste de tema elegido (o el predeterminado warm)
  • theme.json coincide con el preajuste
  • Las escenas usan variables CSS, no colores de marca codificados
  • La muestra o la construcción completa produce MP4
  • ffprobe confirma 1080x1920 y duración esperada
  • El fotograma intermedio se ve acorde a la marca para el preajuste
  • Sonoridad ~ -14 LUFS y pico verdadero <= -1 dBTP cuando hay audio
  • Media de la rúbrica de revisión >= 2.3
  • Sin restos de marcas personales o de terceros en el proyecto

Skills relacionados