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.
- 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. - Palavras primeiro, imagens depois: roteiro aprovado → voz → cada palavra cronometrada → visuais.
- Toda mudança na tela cai sobre uma palavra, a partir dos dados de tempo.
- O sujeito age em cada plano; uma câmera sobre uma imagem estática é um slideshow.
- Meça, não adivinhe: cada número reportado vem de um log ou de um script.
- 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).
- 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). - 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. - 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 dePRODUCTION.md. -
Tipos de subagente, quando listados: construtores (rodadas de correção, roteiro, voz)
dalang-builder, cada vereditodalang-checker, fatosdalang-research; caso contrário, propósito geral. -
Versão da skill: diga
next'sDALANG v…primeiro; nuncagit. -
Leia preguiçosamente: cada passo, apenas o que
state.mjs next --printimprime, por inteiro, em uma chamada (o Passo 0 também imprime o Passo 1; um primeiroapprove <n>imprime o próximo passo: sem turnonext, sem--stepadiantado); "Consulte quando necessário" apenas quando enviado para lá. Nunca leia uma referência, README do engine oulessons.mdpor inteiro, ou uma seção duas vezes; de/hyperframes, apenas os guias necessários. -
Saída pequena: filtre
--json; nunca imprimawords.json,*.response.jsonou logs completos; saída em segundo plano por bytes (tail -c 1500). Mudanças de cena são chamadasEdit, nuncased -iou um Write de arquivo inteiro. -
Código de cena permanece em subagentes construtores. O agente principal nunca escreve ou lê
src/ouassets/*.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 emlook-build.md/express.md). O revisor nunca é um construtor. -
Imagens permanecem em subagentes. O agente principal nunca
Readuma imagem estática, tira, folha, escopo ou style frame: um subagente recebe os caminhos e o comando "Para o subagente" denext, retorna um veredito em texto. Exceção: o autor destyle-frames/src/abre cadareview/refs-board-<frame>.jpguma vez antes de sua primeira escrita. -
Modelo por trabalho, nunca perguntado:
state.mjs nextimprime 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ê vianext --step <n> --sub). Os verificadores escrevem seu arquivo de veredito, os construtoresreview/reports/<job>.md; ambos respondem brevemente, nunca redigitados.state.mjs logacompanha o comando do passo com&&, nunca em seu próprio turno. -
Compacto:
workspace.mjs initdefine 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 viaexpress.mjs after-voice; o planejador rodaexpress.mjs scaffold .); Passo 7 os rascunhos de verificação, depois revisor ‖ quiz ‖ verificação Realidade / Definir; Passo 8POST.mdenquanto renderiza. -
Barato antes de caro:
--sampleantes de uma tomada;--from-responsequando 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
| Passo | Faça | Termina com | Leia (references/) |
|---|---|---|---|
| 0 Configuração | preflight.mjs, corrija o que ele reporta, pasta do projeto | PRODUCTION.md | brief.md §0 |
| 1 Brief | tópico primeiro, todas as perguntas agora | BRIEF.md | brief.md §1 |
| 2 Referência (opcional) | meça o trabalho, nunca copie | reference-measurements.md | measure-reference.md |
| 3 Roteiro | trabalhos de pesquisa, escritor, leitura; approve 1 executa os lints | Portão 1 | script-voice.md §3 |
| 4 Voz | um trabalho de voz; after-voice preenche, Portões 1–2 | Portão 2 | script-voice.md §4 |
| 5 Visual | SPEC.md, herói, storyboard, ativos, style frames, benchmark | Portão 3 | look-build.md §5 |
| 6 Construção | construtores, tempos de BEATS/WORDS, mix de áudio | index.html, lints limpos | look-build.md §6 |
| 7 QC | rascunho, verificações, tiras, revisor, quiz, rodadas de correção | Portão 4 | qc.md §7 |
| 8 Final | verificação de ativos, renderização alta, re-verificação | final.mp4, POST.md, relatório | qc.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.