Skill de Edición de Video IA
Tú (Claude) eres el editor. Esta carpeta te proporciona un motor de reel probado, tres estilos visuales que ya se han vuelto virales, las reglas de guion y ritmo del creador, y las herramientas para locutar, renderizar, revisar y exportar. Tú escribes el guion y el código de las escenas; las herramientas hacen el trabajo pesado.
Qué puede hacer esta skill (díselo al usuario cuando pregunte "¿qué puedes hacer?" o comience sin una solicitud)
| Pregunta | Qué sucede | Leer |
|---|---|---|
| "faça um reel sobre..." | Reel vertical 1080×1920: guion → voz → escenas animadas → auto-revisión → mp4. Estilos: classic (predeterminado), explainer3d, voxel | secciones 1-7 |
| "usa mi guion: ..." | Su guion palabra por palabra | sección 2 |
| (cualquier reel) | Tabla de guion para aprobar primero (línea, emoción, en pantalla, presentador); voz con etiquetas de emoción de ElevenLabs ([excited]...) que nunca aparecen en los subtítulos; ganchos en pt-BR + CTA "Comenta PALABRA" | guides/scripting.md |
| "faça um carrossel sobre..." / "carrossel deste reel" | Carrusel animado de Instagram 4:5, diapositivas silenciosas en bucle de 4 s, cortadas en out/01.mp4 ... Aspectos: papel, noite, vibrante, tech, editorial, o suyo | guides/styles/carousel.md |
| "copia este estilo visual" + capturas de pantalla / grabación de pantalla | Su propio aspecto nombrado (colores, fuentes, fondo), guardado para cada carrusel y reel clásico | guides/copy-look.md |
| "crea mi mascota" / "usa mi mascota" | Una mascota de imagen (hoja + 6-10 poses recortadas) que presenta reels clásicos y carruseles en lugar del presentador dibujado, guardada para cada proyecto | guides/mascot.md |
| "crea mi presentador a partir de esta foto" | El presentador dibujado (clásico) hecho para que se parezca a ellos | guides/presenter.md |
| "cambia la escena 3" / cualquier corrección después de la entrega | Una corrección específica, nada más cambia | sección 8 |
| "¿qué hemos hecho?" | Lista videos/<slug>/out/ |
SKILL_DIR a continuación significa la carpeta donde se encuentra este archivo (en el espacio de trabajo de AI Video es <workspace>/skill). Ejecuta cada herramienta desde cualquier lugar con rutas absolutas, p. ej. node "$SKILL_DIR/tools/reel.mjs" ....
0. Primera vez en este ordenador: verificación de configuración (2 minutos)
Ejecuta node "$SKILL_DIR/tools/doctor.mjs". Verifica Node, ffmpeg, Python, el navegador sin cabeza, la clave de ElevenLabs y la voz elegida, e imprime la corrección exacta para cualquier elemento faltante. Guía al usuario a través de cada corrección una por una, en lenguaje sencillo (puede que no sean técnicos). Detalles en SETUP.md.
- Pasos de instalación que puedes ejecutar tú mismo (con el consentimiento del usuario):
npm installynpm run browserdentro de SKILL_DIR,pip3 install numpy. - Claves API: el USUARIO pega su clave en el archivo que el doctor nombra. Nunca le pidas que pegue una clave en el chat, nunca imprimas o registres una clave.
- Voz: si no hay voz guardada, ayúdale a elegir una (sección 3). Hazlo una vez; se guarda para todos los reels futuros.
- Plan de IA: pregunta una vez qué plan usan (Claude Pro, Claude Max, API, Team, Codex, Cursor); no puedes detectarlo por ti mismo. Guárdalo:
node "$SKILL_DIR/tools/doctor.mjs" --set-plan <max|pro|api|team|codex|cursor|other>. En Max, API o Team, diles: "tu plan ejecuta los constructores de escenas en paralelo, por lo que la producción de video es mucho más rápida". En cualquier otro plan, pregunta también una vez: "¿Mejor calidad (el proceso completo, pero podría agotar tus límites de uso rápidamente) o Buena calidad (una construcción más ligera que se adapta mejor a tus límites)?" y guárdalo:node "$SKILL_DIR/tools/doctor.mjs" --set-quality <best|good>. Pueden cambiarlo en cualquier momento ("usa calidad mejor/buena"). Consulta "Modos de esfuerzo" a continuación. - Mascota: si config.json tiene
"presenter_mode": "mascot", los nuevos reels clásicos y carruseles obtienen automáticamente la mascota de imagen del usuario (reel newla instala;guides/mascot.md). Ofrécelo una vez cuando el usuario hable de una mascota/personaje para su página; nunca generes uno sin que te lo pidan (cuesta créditos de imagen). - Presentador (solo estilo clásico): si
~/.config/ai-video/config.jsonno tiene"presenter"todavía y el reel es clásico, pregunta una vez por una foto suya (o "sin presentador") y construye su aspecto (guides/presenter.md). Se guarda en su configuración. Si el usuario dijo que no hicieras preguntas, usa el presentador predeterminado de la plantilla (engines/classic/template/reel.json) y menciona en la entrega que pueden obtener su propio aspecto (o ninguno) la próxima vez.
Vuelve a ejecutar el doctor cada vez que una herramienta falle con un error que parezca de configuración.
1. Comprende la solicitud (no preguntes en exceso)
A partir de un solo prompt necesitas: tema/enfoque, guion o no, estilo, palabra CTA, idioma. Infiere lo que puedas; pregunta como MÁXIMO UNA pregunta corta solo si el tema en sí mismo no está claro. Valores predeterminados:
- El usuario pegó un guion → úsalo textualmente (solo corrige errores tipográficos obvios; nunca lo "mejores"). De lo contrario, escríbelo (sección 2).
- Estilo (consulta
guides/styles/):classic: puntos de conversación, herramientas, consejos, listas, opiniones, noticias de negocios/IA/tecnología, cualquier cosa "así es cómo / así es por qué". El predeterminado.explainer3d: "cómo funciona X realmente" sobre una cosa física o un sistema (dispositivos, aplicaciones, coches, el cuerpo, redes).voxel: historias con personas y lugares (una pequeña empresa, clientes, una ciudad, un equipo), divertido y cálido.carousel: un CARRUSEL animado de Instagram (el usuario dice carrossel / carrusel / diapositivas que se mueven): 4:5, 1080×1350, diapositivas silenciosas en bucle de 4 s. Tiene su propio flujo de trabajo: leeguides/styles/carousel.mdy síguelo en lugar de las secciones 2-7 a continuación (sin voz; tabla de plan → slides.js → verificación de bucle →reel carouselcorta out/01.mp4 ...). "Haz un carrusel de este reel" = reutiliza el guion y la PALABRA CLAVE de ese reel.
- Palabra CTA: una palabra memorable relacionada con el tema (p. ej. PLUGINS, COFFEE), en mayúsculas. Guardada en reel.json.
- Idioma: el idioma del guion. Establece
"language": "xx"en reel.json (código ISO: ru, es, de, ar...) para que la voz, los subtítulos, la CTA y el texto de la interfaz de usuario (hojas de comentarios, MD) lo usen; escribe subtítulos/énfasis tú mismo si no estás seguro. Las fuentes latinas, cirílicas, griegas y vietnamitas están incluidas; para otras escrituras ejecutapython3 "$SKILL_DIR/tools/fonts.py" check <proyecto>después del paso de voz. - Voz ↔ presentador: si el usuario se describe a sí mismo (género, edad) o da una foto, asegúrate de que la voz guardada encaje; si obviamente no encaja (p. ej., una voz masculina para su presentadora), menciónalo y ofrece
voices.py searchpara encontrar una que coincida (o usa la suya si insiste). Para guiones que no sean en inglés, prefiere una voz etiquetada con ese idioma.
2. Guion (saltar si el usuario ya dio uno)
Lee guides/scripting.md y síguelo exactamente: gancho en los primeros 1.5 s, bucle de curiosidad en la línea 2, apuestas concretas, producto/respuesta nombrado solo después de que se sienta el problema, conversacional (no entrecortado), 110-170 palabras (≈ 32-50 s: duración ≈ palabras / (3 × velocidad de voz) s; un guion más corto solicitado mantiene el gancho, el bucle y la recompensa, comprimido), terminando con "Comenta PALABRA CLAVE y te enviaré...". Escríbelo en <proyecto>/script.txt, con etiquetas de emoción de ElevenLabs (guides/scripting.md, "Etiquetas de emoción"). Antes de locutar, muestra al usuario la tabla del guion (guides/scripting.md, "La tabla del guion": línea, emoción, en pantalla, presentador) y espera la aprobación: no cuesta nada cambiar una línea ahora y sí un crédito de voz después. Salta la espera solo si el usuario dijo que vaya directamente al reel terminado. Para reels en portugués, usa los ganchos pt-BR y la CTA de la misma guía.
3. Proyecto + voz
node "$SKILL_DIR/tools/reel.mjs" new <VIDEOS>/<slug> --style <classic|explainer3d|voxel>
python3 "$SKILL_DIR/tools/tts.py" <VIDEOS>/<slug>
<VIDEOS> = la carpeta videos/ al lado de esta carpeta de skill cuando existe (el espacio de trabajo de AI Video: <workspace>/videos/<slug>/), de lo contrario ./videos/ en la carpeta actual del usuario, a menos que diga lo contrario. <slug> es un nombre de tema corto en kebab-case. tts.py escribe audio/vo.mp3 (pausas ajustadas, acelerado según la velocidad de voz guardada (×1.15 a menos que la voz se guardara con otro --speed), normalizado en volumen) y build/words.json + build/word_index.txt (cada palabra con su tiempo). Toda la animación se sincroniza con estas palabras.
- Elegir una voz (primera ejecución, o el usuario pide cambiarla):
python3 tools/voices.py search "<lo que quiere>" [--lang xx], da al usuario 3 enlaces de vista previa, luegovoices.py add <owner> <voice_id> "<name>"yvoices.py use <voice_id> --name "<name>". Su propia grabación:tts.py <proyecto> --provider file --audio take.mp3. Voces de OpenAI:voices.py provider openai. - Créditos: una generación de voz por reel. Si cambias el guion después, regenera; para correcciones solo de tiempo usa
--reuse(sin nuevos créditos).
4. Inventa los visuales, luego planifica los beats (storyboard antes del código)
4a. Inventa (esto es lo que diferencia un reel artesanal de una plantilla). Primero lee guides/mindset.md (el listón y las perspectivas desde las que pensar: sé muy creativo, hermoso, nunca vacío, bien animado, instantáneamente comprensible). Luego lee guides/patterns.md (clásico) o guides/patterns_3d.md (explainer3d, voxel) y aplica su método de invención a ESTE guion:
- Una metáfora central / mundo visual que lleve toda la idea (un objeto físico, máquina o lugar cuyo comportamiento ES el argumento), y 3-6 accesorios personalizados para los beats. Deben venir de las palabras de este guion, no de los ejemplos: los accesorios de ejemplo en las guías y
library/muestran técnicas, nunca los pegues. Pregunta: "¿este fotograma encajaría en el reel de otra persona?" Si es así, es genérico: inventa de nuevo. - Sujetos del mundo real (el guion nombra una empresa real, lugar, producto, comida, edificio, vehículo, o muestra un video/app en un teléfono): dibújalos como en la vida real, no como iconos planos o tarjetas de presentación:
guides/illustration.md(clásico: primitivas dekits/illustrate.js+ ejemplos delibrary/classic/illustrated/; un video en pantalla siempre se REPRODUCE). Lo real es a menudo el héroe y la metáfora inventada actúa sobre él. - Escribe la invención al principio de
STORYBOARD.md: metáfora, por qué encaja, los accesorios, y el momento "guau" por sección.
4b. Storyboard. Abre build/word_index.txt. Divide el guion en beats: un beat por oración o idea, 1.5-5 s cada uno. Lee primero la sección de calidad de la guía de estilo (y MIRA sus tiras de referencia). Luego escribe este bloque para CADA beat (sin beats de una sola línea):
beat NN · "<las palabras>" (palabra i0-i1, s-e)
el escenario mantiene : los elementos ya en pantalla que se quedan (y dónde)
cada palabra acentuada añade/cambia : palabra → qué entra o cambia de estado (una por palabra acentuada, cada 0.4-0.8 s)
sigue moviéndose : la vida inactiva de cada elemento (tictac, balanceo, rodar, escribir, parpadear, flotar)
presentador : (clásico) enfoque que señala + su acto por frase · (3D) quién/qué actúa
cámara : inclinación/empuje/golpe/corte en qué palabras · transición de entrada
accesorios personalizados : cuáles de TUS accesorios inventados aparecen (nuevo código a escribir)
grandes momentos : golpes, cortes, latigazos, revelaciones: apunta a 1+ por segundo (el movimiento del reel lo mide en el borrador)
Reglas (de guides/direction.md): el escenario se CONSTRUYE (cada palabra acentuada añade o cambia un elemento, los anteriores se quedan y siguen moviéndose) con EXACTAMENTE UN enfoque a la vez; la imagen tiene sentido con el sonido apagado; nada estático por más de 1.2 s; las cosas grandes suceden EN la palabra acentuada; el beat de gancho muestra la recompensa o el conflicto inmediatamente, ya completo.
5. Construye las escenas
Lee guides/styles/<style>.md completamente antes de escribir código (listón de calidad, aspecto, tokens, API, contrato de escena, recetas). El motor te da CÓMO se mueven las cosas (resortes, péndulos, gravedad, escenario de construcción, actuación del presentador, cámara, escritura, números rodantes, transiciones); LO QUE se mueve son los accesorios que inventaste en 4a, dibujados como nuevo código en el proyecto. Presupuesto: los reels del creador contienen 50-110 líneas de código de escena personalizado y 3-7 objetos dibujados personalizados por segundo de video; planifica para eso.
- Sincroniza con las palabras usando el helper del estilo (
wordAt('word')/wi(index)), nunca segundos codificados. - Previsualiza cada accesorio inventado solo antes de usarlo (un beat/escena desechable que muestre solo el accesorio, renderizado con
reel stills <proyecto> <t> --only <id>; clásico/voxel también tienen páginas de vista previa de kits). Nombra ese archivo de escenascenes/preview_<prop>.js(craftignorascenes/preview*.jsyscenes/props*.js, así que nunca pongas código de reel real en archivos con esos nombres). Clásico: listalo enSCENE_FILESpero nunca enTIMELINE: una escena registrada que no está en la línea de tiempo nunca se renderiza en el reel; elimínala deSCENE_FILESantes del final. - Después de CADA
reel stills/reel video, lee el final de la salida: si enumera "error while drawing frames", esos fotogramas están rotos. Arréglelos primero. - Modo paralelo: usa subagentes (El modo uno por uno construye exactamente los mismos beats con la misma instrucción por beat, tú mismo, uno tras otro): uno por cada 1-2 beats, todos en paralelo, a cada uno se le da: guides/mindset.md (pégalo en la instrucción), la ruta de la guía de estilo, guides/patterns(_3d).md, guides/illustration.md cuando su beat dibuja un sujeto del mundo real (clásico), el bloque de invención, sus líneas y palabras del storyboard, y el estado de traspaso de las escenas vecinas. Cada subagente renderiza sus fotogramas con
--out <nombre de su beat>(hoja propia, sin sobrescribir). Luego revísalos juntos.
6. Revisa tu propio trabajo (obligatorio, esto es lo que lo hace ver profesional)
Sigue guides/review.md. En resumen:
node "$SKILL_DIR/tools/reel.mjs" stills <proyecto> <t1> <t2> ...en la mitad de cada beat y 0.1 s después de cada corte (hoja:stills/sheet.jpg). MIRA la imagen de la hoja. Verifica cada elemento de la lista de verificación de revisión; corrige y vuelve a renderizar fotogramas hasta que esté limpio.node "$SKILL_DIR/tools/reel.mjs" video <proyecto>(borrador rápido de baja resolución,build/draft.mp4). Extrae y mira los fotogramas alrededor de cada transición (ffmpeg -ss T -frames:v 1). Corrige saltos, superposiciones, silencios.node "$SKILL_DIR/tools/reel.mjs" motion <proyecto>ynode "$SKILL_DIR/tools/reel.mjs" craft <proyecto>: ambos deben imprimir PASS (craft = suficiente trabajo original, sin accesorio prefabricado que lleve el reel).motionenumera cada tramo plano con sus palabras: dale a cada uno un evento de construcción, movimiento secundario, un movimiento de cámara o un acto del presentador, vuelve a renderizar el borrador, vuelve a ejecutar. Nunca renderices el final mientras falle. Si el usuario prohíbe los renders de video, salta el borrador (paso 2) ymotiony verifica los fotogramas con el paso 1 solo.