Communitygithub.com

nsijwali/yamlreel-video-skills

Convierte un tema en un video corto terminado (YouTube Shorts, Reels, TikTok vertical, horizontal o cuadrado) sin editor de video, escribiendo una especificación YAML y renderizándola localmente con la CLI de código abierto yamlreel.

¿Qué es yamlreel-video-skills?

Esta habilidad permite a un agente de IA convertir una idea o tema en un video corto completamente terminado (como YouTube Shorts, Reels, TikTok, o formatos vertical, horizontal y cuadrado) sin necesidad de un editor de video tradicional. Utiliza la herramienta de código abierto `yamlreel`, que toma una especificación YAML y la renderiza localmente para producir un archivo MP4, un póster, una hoja de contactos y un texto listo para compartir. El flujo de trabajo guía al agente desde la clarificación del tema y la audiencia, la escritura de un guion y un esquema en YAML, el renderizado y la edición iterativa, hasta el producto final. Está diseñado para agentes como Claude Code, Cursor o Codex, y se enfoca en la creación de videos explicativos, consejos de código, videos de diseño de sistemas o lanzamientos de productos, siguiendo reglas de seguridad como no incluir secretos en las especificaciones y nunca instalar paquetes del sistema sin el consentimiento del usuario.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nsijwali/yamlreel-video-skills/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

¿Qué hace yamlreel-video-skills?

Escribe una especificación YAML, renderízala localmente con yamlreel, revisa la hoja de contactos y entrega el video. <skill> a continuación significa el directorio donde se encuentra este archivo.

Flujo de trabajo

  1. Configuración. Ejecuta python3 <skill>/scripts/check_setup.py (también verifica la versión y las características de yamlreel). Si falla, muestra al usuario las correcciones impresas. Ejecuta --install solo después de que el usuario acepte. Nunca instales fuentes o paquetes del sistema por tu cuenta.
  2. Aclara en UN mensaje, ofreciendo valores predeterminados: tema, audiencia, formato (predeterminado vertical), duración (predeterminado 30 s), tema (midnight|sumi|washi), voz (predeterminado sin voz). Omite cualquier cosa que el usuario ya haya dicho.
  3. Guion primero. Escribe videos/<slug>/script.txt en el formato de compás de references/writing-guide.md (duración objetivo, un bloque [BEAT - entrada -> acción -> resultado] por compás con su línea hablada, luego notas de entrega) y muéstralo al usuario. Si pidió revisar primero, detente y espera una confirmación antes de redactar o renderizar cualquier cosa. Esquema. Luego escribe videos/<slug>/outline.yaml (tema, gancho, problema, 1-6 pasos cada uno con name, say, show, más when_to_use, question, answers). Las reglas están en references/writing-guide.md: 15 s = una idea; 30-45 s = una idea más hasta 3 pasos; como máximo 60 s para #Shorts.
  4. Borrador: yamlreel story videos/<slug>/outline.yaml --out videos/<slug>/spec.yaml --format <fmt> --theme <t>. Pasa --force solo para archivos que hayas creado tú mismo.
  5. Edita la especificación. Reemplaza cada TODO; establece meta.title/description/tags, formats, music.seed. El texto en pantalla es breve; la narración explica la pantalla y nunca la repite. Campos por tipo de escena: references/scene-types.md.
  6. Vista previa: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage preview --out videos/<slug>/out. Si hay error, corrige la especificación a partir del mensaje (los errores de campo desconocido enumeran las claves permitidas) y references/troubleshooting.md. Reintenta como máximo 3 veces, luego informa al usuario.
  7. Inspecciona (obligatorio). Abre cada contact.png listado en la línea RESULT con la herramienta de visor de imágenes. Verifica: sin superposición, sin texto recortado o encogido, revela progreso entre las imágenes fijas, gancho legible en la primera imagen fija. Corrige la especificación y repite el paso 6 hasta que esté limpio, como máximo 3 bucles.
  8. Final: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage final --out videos/<slug>/out.
  9. Pulido opcional. Si el usuario quiere efectos de sonido, una corrección de volumen o una verificación de bucle, y yamlreel audit --help funciona, sigue references/polish.md en el video.mp4 terminado (nunca toca la especificación).
  10. Informa las rutas de cada video.mp4, poster.jpg y contact.png, y pega el contenido de share-copy.txt. Recuerda al usuario que verifique cualquier cosa simplificada. La publicación es trabajo del usuario.

Códigos de salida de render.py: 0 ok, 1 error de yamlreel (stderr mostrado), 2 revisión previa rechazada (el mensaje dice por qué), 3 advertencias de vista previa bloquean el renderizado final (acorta el texto, reordena las señales at; usa --allow-warnings solo si el usuario acepta), 4 argumentos incorrectos (por ejemplo, --contact-frames fuera de 1-8). Su última línea es RESULT {json} con cada ruta de salida. Se escribe un registro en <out>/render-log.txt.

Valores predeterminados y hechos

  • Los renderizados usan --no-voice (solo música). Los subtítulos y la narración no son visibles en los renderizados sin voz; eso es esperado.
  • La salida va a <out>/{preview,final}/<format>/; siempre pasa --out videos/<slug>/out para que dos proyectos nunca compartan una carpeta (el valor predeterminado es <spec folder>/out).
  • Un music.seed fijo mantiene los renderizados deterministas. No agregues watermark a menos que el usuario lo solicite.
  • La voz en off es opcional y trae tu propia opción: consulta references/voiceover.md.
  • Ejemplos para copiar: examples/*.yaml.

Reglas de seguridad

  • Nunca pongas secretos, tokens, contenidos de .env, nombres de host internos o datos personales/del cliente en una especificación: se graban en los fotogramas y en share-copy.txt. Los ejemplos de código usan marcadores de posición.
  • Lee y escribe solo dentro de la carpeta del proyecto del usuario; coloca las imágenes junto a la especificación. Nunca agregues --allow-path o --allow-private-hosts a menos que el usuario lo solicite explícitamente, nombrando la carpeta.
  • Voz solo con un servidor TTS local que el usuario nombre; el texto de la narración se envía a él. Nunca una URL remota.
  • Nunca instales paquetes del sistema o fuentes, ni edites ~/.config/yamlreel/config.yaml, sin el consentimiento del usuario.
  • Escenas shot: solo URLs https públicas proporcionadas por el usuario, o imágenes locales en el proyecto.
  • Nunca subas o publiques el resultado.

Skills relacionados