Communitygithub.com

husniadil/dalang

Dalang: convierte cualquier tema en un video animado completo con narración, voz AI local gratuita, música, efectos de sonido y visuales HyperFrames; ideal para videos explicativos, animaciones o cortos para cualquier plataforma.

¿Qué es dalang?

Dalang es una habilidad de agente AI especializada en la producción de videos animados a partir de cualquier tema, idea o nota, sin necesidad de meter servicios de pago. Soporta múltiples plataformas (YouTube Shorts, Reels, TikTok, YouTube, Instagram) y cualquier idioma, y está diseñada para integrarse con agentes como Claude Code, Cursor o Codex. El proceso sigue un flujo secuencial: guion → voz → sincronización palabra por palabra → visuales, donde cada etapa es verificada automáticamente por el agente (Gates 1 a 4). Dalang ofrece dos modos de producción: Express (por defecto, animación 2.5D en Canvas 2D, rápida y eficiente) y Studio (precisión con three.js, storyboards, referencias y revisión detallada). Los estilos visuales incluyen la familia isométrica (isometric-world, cutaway, blueprint) y object-studio (modelo sobre fondo pálido). La habilidad está optimizada para bajo consumo de tokens, ejecución paralela de tareas y manejo autónomo cuando el usuario solo proporciona un tema. Utiliza voces locales gratuitas (VoiceStudio) y se asegura de que todos los elementos visuales estén estilizados y sean fieles a referencias reales, evitando imágenes generadas o fotorrealistas. Incluye un sistema de control de calidad con revisiones, cuestionarios y renders de prueba antes del render final en alta calidad.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/husniadil/sandalkuilang-dalang/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

Dalang — del tema al video

Modo y apariencia, preguntados en el Brief, bloqueados después del mismo (references/looks.md). Modo: Express (por defecto; 2.5D en Canvas 2D, references/express.md) o Studio (precisión: three.js, un héroe code-first, tableros de referencia, benchmark, revisión). Apariencia: la familia isométrica (isometric-world principal, cutaway, blueprint) o object-studio (un modelo de estudio sobre un fondo pálido). Un look 3D nunca mueve una película a Studio. Un cambio de look después del Paso 6 inicia: detén cada constructor, reescribe SPEC.md, reinicia cada grupo en un mensaje; la narración y la voz se mantienen.

Principios

7 es de Studio; el resto se aplica en ambos modos.

  1. Tesis visual primero (references/looks.md): las reglas numeradas del look deciden cada fotograma y control de calidad. object-studio: estudio pálido, un acento, héroe completo 60–70 %, máquina de un solo input, instrumentos en vivo, planos fijos.
  2. Palabras primero, imágenes al final: guion aprobado → voz → cada palabra temporizada → visuales.
  3. Cada cambio en pantalla aterriza en una palabra, a partir de los datos de temporización.
  4. El sujeto actúa en cada plano; una cámara sobre una imagen fija es una presentación de diapositivas.
  5. Mide, no adivines: cada número reportado proviene de un log o un script.
  6. Todas las preguntas por adelantado, sin bloqueo del usuario. Todas las preguntas en el Paso 1; nada después espera al usuario. Supera cada una de las 4 compuertas tú mismo una vez que sus verificaciones pasen, dilo en una línea, corre hasta la película terminada. Un cambio posterior es una nueva ronda. Sin render de calidad final antes del último (excepto los style frames del Gate 3 y la muestra del hook).
  7. Estilizado, fiel a la realidad. Un look por película; sin metraje, render fotorrealista, imagen generada o clip. Las partes, proporciones, escala y comportamiento coinciden con una referencia real (references/visual-direction.md §1).
  8. Estudio de primer nivel, nunca exagerado: style frames, pulido, rúbrica de revisión. Borradores a 10 fps; el final --quality high --fps <brief fps> pasa todas las verificaciones.
  9. Gratuito por defecto. Servicios de pago o medidos (ElevenLabs, HeyGen) solo cuando el usuario lo solicite, etiquetados como "de pago". Prefiere licencias comerciales OK; di cuándo una no lo es.

Propósito general. Cualquier tema, idioma, plataforma. Nunca abras otra carpeta video/<slug>/; nada se transfiere excepto un kit de serie que el usuario elija (references/brief.md "Series kit"). engine/three/ es una caja de herramientas, no un límite: un sujeto que le falte se modela a partir de su propia ley o se muestra en un look sin 3D.

Idioma. Chatea en el idioma del usuario. Cada AskUserQuestion está en inglés. Nunca infieras un idioma a partir de un nombre.

Trabaja rápido, gasta pocos tokens

  • Un video = una sesión; el estado vive en los archivos. Reanuda: node <skill-dir>/scripts/state.mjs next, BRIEF.md, el final de PRODUCTION.md.

  • Tipos de subagentes, cuando se listan: constructores (rondas de arreglo, guion, voz) dalang-builder, cada veredicto dalang-checker, hechos dalang-research; si no, de propósito general.

  • Versión de la habilidad: di next's DALANG v… primero; nunca git.

  • Lee de forma perezosa: cada paso, solo lo que state.mjs next --print imprima, completo, en una llamada (el Paso 0 también imprime el Paso 1; un primer approve <n> imprime el siguiente paso: sin turno next, sin --step adelante); "Busca cuando sea necesario" solo cuando se te envíe allí. Nunca leas una referencia, un README del motor o lessons.md completo, ni una sección dos veces; de /hyperframes, solo las guías necesarias.

  • Salida pequeña: filtra --json; nunca imprimas words.json, *.response.json ni logs completos; salida en segundo plano por bytes (tail -c 1500). Los cambios de escena son llamadas Edit, nunca sed -i o un Write de archivo completo.

  • El código de escena se queda en los subagentes constructores. El agente principal nunca escribe ni lee src/ o assets/*.js (salvo datos generados; los style frames van a un constructor). Piloto, cada grupo, ensamblaje y cada ronda de arreglo van a un nuevo constructor (último informe + rutas, su presupuesto en look-build.md / express.md). El revisor nunca es un constructor.

  • Las imágenes se quedan en los subagentes. El agente principal nunca Read una imagen fija, tira, hoja, alcance o style frame: un subagente recibe las rutas y el comando "Para el subagente" de next, devuelve un veredicto de texto. Excepción: el autor de style-frames/src/ abre cada review/refs-board-<frame>.jpg una vez antes de su primera escritura.

  • Modelo por trabajo, nunca preguntado: state.mjs next imprime los trabajos de subagente de cada paso con modelo y esfuerzo (state.mjs models: todos, y qué significan top/mid/light). Escala, nunca repitas. Un trabajo fallido (rojo, inutilizable, un P0 restante) va a un nuevo agente un nivel arriba: esfuerzo (bajo → medio → alto), luego modelo (light → mid → top); top · high lo limita: un P0 restante se clasifica (hero-asset.md §3). Nunca bajes ni dos veces; un trabajo limpio nunca se re-ejecuta. ≤ 3 correcciones de copia o temporización: un nivel abajo. Registra cada configuración.

  • El agente principal orquesta, nunca hace el trabajo. Tu turno re-lectura la sesión (~10× la de un subagente); un bucle (escribe ↔ lint, toma ↔ retoma, arregla ↔ verifica) corre dentro de un trabajo (Pasos 3–4 también); cada respuesta te despierta: un trabajo corre hasta su veredicto; N trabajos iniciados juntos terminan ese mensaje con wait.mjs . --expect N (timeout: 600000): un turno, una línea. Un runner (express.mjs / studio.mjs <step>) es una llamada en primer plano (timeout: 600000) cuando termina en ~9 min, nunca una cadena ni una encuesta. Un prompt de Agente es el trabajo y las rutas (≤ 15 líneas; lee a través de next --step <n> --sub). Los checkers escriben su archivo de veredicto, los constructores review/reports/<job>.md; ambos responden brevemente, nunca reescritos. state.mjs log viaja en el comando del paso con &&, nunca en su propio turno.

  • Compacto: workspace.mjs init establece auto-compact (200K); en Gates 2–4 di una vez que /compact es seguro.

  • Paralelo por defecto. Los trabajos independientes comienzan en un mensaje, cada agente en sus propios archivos. Los trabajos pesados (VoxCPM, render, verificación, snapshot) se ejecutan solos, nunca junto a un trabajo de modelo; pon en cola con while kill -0 <pid>. Juntos: preflight ‖ la pregunta del tema; referencia ‖ el trabajo de investigación; después de Gate 1 el trabajo de voz ‖ assets, nunca escenas; en Gate 2 planificador y música; Paso 6 Studio: piloto, luego todos los grupos; Express: todos los grupos a la vez, sin piloto (una toma limpia pasa Gates 1–2 por sí misma a través de express.mjs after-voice; el planificador ejecuta express.mjs scaffold .); Paso 7 los borradores de verificación, luego revisor ‖ quiz ‖ Set / Reality check; Paso 8 POST.md mientras se renderiza.

  • Barato antes que caro: --sample antes de una toma; --from-response cuando solo {} se mueve; snapshots mientras se itera; correcciones agrupadas por ronda; QC a --fps 10 --quality draft; un render final.

  • Lo que pide el usuario gana: marca una regla que lo contradiga en una línea; nunca lo pases en silencio.

  • Mensajes cortos: qué cambió, qué decidir, enlaces; en una espera, la hora del reloj de la siguiente compuerta; un paso de más de ~2 minutos recibe una estimación.

Archivos del proyecto (video/<topic-slug>/)

Registra con state.mjs log "<step> | <output> | <problems or ->". La carpeta es el proyecto HyperFrames; ejecuta comandos desde ella. Edita solo *.tpl.html; node <skill-dir>/scripts/fill_times.mjs src/index.tpl.html index.html regenera index.html (nunca a mano, sin segundo .html raíz).

Pasos

PasoHazTermina conLee (references/)
0 Setuppreflight.mjs, arregla lo que reporta, carpeta del proyectoPRODUCTION.mdbrief.md §0
1 Brieftema primero, todas las preguntas ahoraBRIEF.mdbrief.md §1
2 Referencia (opcional)mide el oficio, nunca copiesreference-measurements.mdmeasure-reference.md
3 Guioninvestigación, escritor, trabajos de lectura; approve 1 ejecuta los lintsGate 1script-voice.md §3
4 Vozun trabajo de voz; after-voice rellena, Gates 1–2Gate 2script-voice.md §4
5 LookSPEC.md, héroe, storyboard, assets, style frames, benchmarkGate 3look-build.md §5
6 Buildconstructores, tiempos de BEATS/WORDS, mezcla de audioindex.html, lints limpioslook-build.md §6
7 QCborrador, verificaciones, tiras, revisor, quiz, rondas de arregloGate 4qc.md §7
8 Finalverificación de assets, render de alta calidad, re-verificaciónfinal.mp4, POST.md, reporteqc.md §8

En cada paso: las compuertas pasan por state.mjs approve <n> --by agent (en orden; ejecuta las verificaciones de la compuerta y rechaza con sus errores; un archivo con compuerta editado después es STALE hasta que se re-apruebe); las reglas de BRIEF.md formatean y definen el idioma; una voz grabada o clonada solo con el permiso del hablante; las páginas solo en el navegador integrado de Claude, nunca en el Chrome del usuario; registra cada paso y problema en PRODUCTION.md; comentarios de serie a través de series.mjs note, nunca en memoria.

Modo autónomo

Si el usuario da un tema y se va, usa lo que dijo, si no: Express; YouTube 16:9, 60–90 s (Shorts 9:16 para corto o ≤ 60 s); su idioma; object-studio (Studio: isometric-world); "modern balanced"; público general; VoiceStudio, voz por defecto, según brief.md Paso 0 (no listo para el Paso 4: detente y dilo). Escribe "defaults used" primero en PRODUCTION.md, registra cada decisión, termina la película. Reglas de envío: references/qc.md "User away" (un audio_qc.mjs con salida 2 que se queda se nombra en la transferencia, nunca un pase). Salta ofertas de instalación (regístralas). Nunca edites la habilidad instalada.

Cuando algo sale mal

grep -n -i '<word>' <skill-dir>/references/lessons.md.

Skills relacionados