Communitygithub.com

husniadil/dalang

Dalang — transforme qualquer tópico em um vídeo animado completo (narração, voz IA local gratuita, música, efeitos sonoros, visuais HyperFrames): roteiro → voz → sincronia palavra por palavra → visuais, cada etapa gerenciada pelo próprio agente. Qualquer tópico, idioma e plataforma (Shorts, Reels, TikTok, YouTube, Instagram), estilizado e fiel à realidade.

O que é dalang?

O Dalang é uma skill de agente de IA que transforma qualquer tópico, ideia, artigo ou nota em um vídeo animado completo, do roteiro ao produto final, sem intervenção manual do usuário após as perguntas iniciais. Ele opera em duas modalidades: **Express** (padrão, rápido, usando Canvas 2D com estilo 2.5D) e **Studio** (precisão com three.js, storyboards, revisão e benchmarks). O processo segue uma sequência rigorosa e modular: briefing → roteiro → voz com sincronia palavra por palavra → storyboard e ativos visuais → construção e sincronização → controle de qualidade → renderização final. A skill é autônoma: cada etapa é verificada por subagentes especializados (construtores, revisores, pesquisadores), e o agente principal apenas orquestra. Ela suporta qualquer idioma, plataforma (Shorts, Reels, TikTok, YouTube, Instagram) e mantém um estilo visual estilizado mas realista, sem uso de fotos, vídeos reais ou imagens geradas. É ideal para criar vídeos explicativos, animações curtas ou posts para redes sociais de forma rápida e gratuita, priorizando serviços locais e gratuitos (como voz IA local) sobre opções pagas.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação


name: dalang description: Dalang — transforme qualquer tópico em um vídeo animado completo (narração, voz IA local gratuita, música, efeitos sonoros, visuais HyperFrames): roteiro → voz → sincronia palavra por palavra → visuais, cada etapa gerenciada pelo próprio agente. Qualquer tópico, idioma e plataforma (Shorts, Reels, TikTok, YouTube, Instagram), estilizado e fiel à realidade.

Dalang — do tópico ao vídeo

Modo e visual, perguntados no Brief, travados após ele (references/looks.md). Modo: Express (padrão; 2.5D no Canvas 2D, references/express.md) ou Studio (precisão: three.js, um herói code-first, painéis de referência, benchmark, revisão). Visual: a família isométrica (isometric-world principal, cutaway, blueprint) ou object-studio (um modelo de estudo sobre um fundo pálido). Um visual 3D nunca move um filme para o Studio. Uma mudança de visual após o Passo 6: pare cada construtor, reescreva SPEC.md, reinicie cada grupo em uma mensagem; narração e voz permanecem.

Princípios

7 é do Studio; os demais valem em ambos os modos.

  1. Tese visual primeiro (references/looks.md): as regras numeradas do visual decidem cada quadro e QC. object-studio: estúdio pálido, um acento, herói inteiro 60–70 %, máquina de uma entrada, instrumentos ao vivo, planos fixos.
  2. Palavras primeiro, imagens depois: roteiro aprovado → voz → cada palavra cronometrada → visuais.
  3. Toda mudança na tela cai sobre uma palavra, a partir dos dados de tempo.
  4. O sujeito age em cada plano; uma câmera sobre uma imagem estática é um slideshow.
  5. Meça, não adivinhe: cada número reportado vem de um log ou de um script.
  6. Toda pergunta no início, sem barreira do usuário. Todas as perguntas no Passo 1; nada depois espera pelo usuário. Passe cada um dos 4 portões você mesmo assim que suas verificações passarem, diga isso em uma linha, execute até o filme final. Uma mudança posterior é uma nova rodada. Nenhuma renderização de qualidade final antes da última (exceto os style frames do Portão 3 e a amostra do gancho).
  7. Estilizado, fiel à realidade. Um visual por filme; sem filmagens, render fotorrealista, imagem gerada ou clipe. Partes, proporções, escala e comportamento correspondem a uma referência real (references/visual-direction.md §1).
  8. Alto estúdio, nunca exagerado: style frames, polimento, rubrica de revisão. Rascunhos a 10 fps; o final --quality high --fps <fps do brief> passa em todas as verificações.
  9. Grátis por padrão. Serviços pagos ou medidos (ElevenLabs, HeyGen) apenas quando o usuário pedir, rotulados como "pago". Prefira licenças comerciais OK; diga quando uma não for.

Propósito geral. Qualquer tópico, idioma, plataforma. Nunca abra outra pasta video/<slug>/; nada é reutilizado, exceto um kit de série que o usuário escolher (references/brief.md "Kit de série"). engine/three/ é uma caixa de ferramentas, não um limite: um sujeito que ela não tenha é modelado a partir de sua própria lei ou mostrado em um visual sem 3D.

Idioma. Converse no idioma do usuário. Toda AskUserQuestion está em inglês. Nunca infira um idioma a partir de um nome.

Trabalhe rápido, gaste poucos tokens

  • Um vídeo = uma sessão; o estado reside nos arquivos. Retomar: node <skill-dir>/scripts/state.mjs next, BRIEF.md, o final de PRODUCTION.md.

  • Tipos de subagente, quando listados: construtores (rodadas de correção, roteiro, voz) dalang-builder, cada veredito dalang-checker, fatos dalang-research; caso contrário, propósito geral.

  • Versão da skill: diga next's DALANG v… primeiro; nunca git.

  • Leia preguiçosamente: cada passo, apenas o que state.mjs next --print imprime, por inteiro, em uma chamada (o Passo 0 também imprime o Passo 1; um primeiro approve <n> imprime o próximo passo: sem turno next, sem --step adiantado); "Consulte quando necessário" apenas quando enviado para lá. Nunca leia uma referência, README do engine ou lessons.md por inteiro, ou uma seção duas vezes; de /hyperframes, apenas os guias necessários.

  • Saída pequena: filtre --json; nunca imprima words.json, *.response.json ou logs completos; saída em segundo plano por bytes (tail -c 1500). Mudanças de cena são chamadas Edit, nunca sed -i ou um Write de arquivo inteiro.

  • Código de cena permanece em subagentes construtores. O agente principal nunca escreve ou lê src/ ou assets/*.js (exceto dados gerados; style frames vão para um construtor). Piloto, cada grupo, montagem e cada rodada de correção vão para um novo construtor (último relatório + caminhos, seu orçamento em look-build.md / express.md). O revisor nunca é um construtor.

  • Imagens permanecem em subagentes. O agente principal nunca Read uma imagem estática, tira, folha, escopo ou style frame: um subagente recebe os caminhos e o comando "Para o subagente" de next, retorna um veredito em texto. Exceção: o autor de style-frames/src/ abre cada review/refs-board-<frame>.jpg uma vez antes de sua primeira escrita.

  • Modelo por trabalho, nunca perguntado: state.mjs next imprime os trabalhos de subagente de cada passo com modelo e esforço (state.mjs models: todos, e o que top/mid/light significam).

  • Escalone, nunca repita. Um trabalho falho (vermelho, inutilizável, um P0 restante) vai para um novo agente um nível acima: esforço (baixo → médio → alto), depois modelo (light → mid → top); top · alto é o limite: um P0 restante é classificado (hero-asset.md §3). Nunca desça ou repita; um trabalho limpo nunca é executado novamente. ≤ 3 correções de cópia ou tempo: um nível abaixo. Registre cada configuração.

  • O agente principal orquestra, nunca faz o trabalho. Sua vez relê a sessão (~10× a de um subagente); um loop (escrita ↔ lint, pegar ↔ refazer, corrigir ↔ verificar) roda dentro de um trabalho (Passos 3–4 também); cada resposta acorda você: um trabalho roda até seu veredito; N trabalhos iniciados juntos terminam essa mensagem com wait.mjs . --expect N (timeout: 600000): um turno, uma linha. Um executor (express.mjs / studio.mjs <step>) é uma chamada em primeiro plano (timeout: 600000) quando termina em ~9 min, nunca uma corrente ou uma pesquisa. Um prompt de Agente é o trabalho e os caminhos (≤ 15 linhas; ele lê via next --step <n> --sub). Os verificadores escrevem seu arquivo de veredito, os construtores review/reports/<job>.md; ambos respondem brevemente, nunca redigitados. state.mjs log acompanha o comando do passo com &&, nunca em seu próprio turno.

  • Compacto: workspace.mjs init define compactação automática (200K); nos Portões 2–4 diga uma vez que /compact é seguro.

  • Paralelo por padrão. Trabalhos independentes começam em uma mensagem, cada agente em seus próprios arquivos. Trabalhos pesados (VoxCPM, render, verificação, snapshot) rodam sozinhos, nunca ao lado de um trabalho de modelo; enfileire com while kill -0 <pid>. Juntos: preflight ‖ a pergunta do tópico; referência ‖ o trabalho de pesquisa; após o Portão 1, o trabalho de voz ‖ ativos, nunca cenas; no Portão 2, planejador e música; Passo 6 Studio: piloto, depois todos os grupos; Express: todos os grupos de uma vez, sem piloto (uma tomada limpa passa pelos Portões 1–2 via express.mjs after-voice; o planejador roda express.mjs scaffold .); Passo 7 os rascunhos de verificação, depois revisor ‖ quiz ‖ verificação Realidade / Definir; Passo 8 POST.md enquanto renderiza.

  • Barato antes de caro: --sample antes de uma tomada; --from-response quando apenas {} muda; snapshots durante iterações; correções em lote por rodada; QC em --fps 10 --quality draft; uma renderização final.

  • O pedido do usuário vence: sinalize uma regra que o contradiga em uma linha; nunca passe adiante silenciosamente.

  • Mensagens curtas: o que mudou, o que decidir, links; em uma espera, o horário do próximo portão; um passo com > ~2 min recebe uma estimativa.

Arquivos do projeto (video/<topic-slug>/)

Registre com state.mjs log "<passo> | <saída> | <problemas ou ->". A pasta é o projeto HyperFrames; execute comandos a partir dela. Edite apenas *.tpl.html; node <skill-dir>/scripts/fill_times.mjs src/index.tpl.html index.html regenera index.html (nunca manualmente, sem segundo .html raiz).

Passos

PassoFaçaTermina comLeia (references/)
0 Configuraçãopreflight.mjs, corrija o que ele reporta, pasta do projetoPRODUCTION.mdbrief.md §0
1 Brieftópico primeiro, todas as perguntas agoraBRIEF.mdbrief.md §1
2 Referência (opcional)meça o trabalho, nunca copiereference-measurements.mdmeasure-reference.md
3 Roteirotrabalhos de pesquisa, escritor, leitura; approve 1 executa os lintsPortão 1script-voice.md §3
4 Vozum trabalho de voz; after-voice preenche, Portões 1–2Portão 2script-voice.md §4
5 VisualSPEC.md, herói, storyboard, ativos, style frames, benchmarkPortão 3look-build.md §5
6 Construçãoconstrutores, tempos de BEATS/WORDS, mix de áudioindex.html, lints limposlook-build.md §6
7 QCrascunho, verificações, tiras, revisor, quiz, rodadas de correçãoPortão 4qc.md §7
8 Finalverificação de ativos, renderização alta, re-verificaçãofinal.mp4, POST.md, relatórioqc.md §8

Em cada passo: os portões passam por state.mjs approve <n> --by agent (em ordem; ele executa as verificações do portão e recusa com seus erros; um arquivo portão editado depois está STALE até ser re-aprovado); BRIEF.md define formato e idioma; uma voz gravada ou clonada apenas com permissão do falante; páginas apenas no navegador embutido do Claude, nunca no Chrome do usuário; registre cada passo e problema em PRODUCTION.md; feedback de série via series.mjs note, nunca memória.

Modo autônomo

Se o usuário der um tópico e sair, use o que ele disse, senão: Express; YouTube 16:9, 60–90 s (Shorts 9:16 para curto ou ≤ 60 s); seu idioma; object-studio (Studio: isometric-world); "moderno equilibrado"; público geral; VoiceStudio, voz padrão, conforme brief.md Passo 0 (não pronto até o Passo 4: pare e diga isso). Escreva "padrões usados" primeiro em PRODUCTION.md, registre cada decisão, termine o filme. Regras de entrega: references/qc.md "Usuário ausente" (um audio_qc.mjs com exit 2 que persiste é nomeado na transferência, nunca um passe). Pule ofertas de instalação (registre-as). Nunca edite a skill instalada.

Quando algo dá errado

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

Habilidades Relacionadas