| name | mira-cinema-deck |
| description | Orquestrar o deck cinematográfico de ponta a ponta: a cadeia narrativa do Story Team decide a história, o deck nasce com o modo cinema instalado e o mira-animator implementa a partitura com câmera, profundidade e grade de cor. Usar quando o usuário pedir deck cinematográfico, deck com história, deck com câmera, usar o Story Team, ou a sequência inteira da premissa até o HTML animado. Não usar para slide avulso, que é do mira-animator, nem para deck rápido, que é do mira-fast e não tem cinema. |
MIRA Cinema Deck
Um tema entra; sai um deck com história, encenação e câmera. Esta skill não escreve HTML nem
inventa metáfora: ela conduz a ordem, instala o que precisa existir e passa o bastão. Quem
escreve a animação é o /mira-cine-animator, o irmão cinematográfico que herda o método
inteiro do /mira-animator por referência. Num deck que existe para ser cinema, rotear para o
irmão comum entrega um deck comum, e foi exatamente o defeito do deck de 2026-08-07.
Por que ela existe
A cadeia narrativa e o modo cinema já existiam separados, e não se encontravam sozinhos:
- o
/mira-direct-cinematic-motion escreve partitura de câmera, mas se o deck não tiver o
mira-cinema.js ele é obrigado a produzir direção sem câmera, grade nem planos;
- o
mira-cinema.js é opt-in e não entra em deck nenhum por padrão;
- sem alguém instalar o módulo antes da direção, a cadeia inteira degrada em silêncio e o
usuário recebe um deck comum achando que pediu cinema.
Esta skill é o que fecha esse laço, e a ordem abaixo é o motivo dela.
Pré-condições, checadas antes de qualquer coisa
-
Story Team instalado. Confira se /mira-premise-forge existe. O Story Team é obrigatório e
chega em toda instalação; se mesmo assim não existir, pare e diga:
"O Story Team não está instalado. Rode npx mira-animator update para trazê-lo."
Não emule os agentes narrativos dentro desta skill. Um orquestrador que finge ser a cadeia
entrega texto sem o método dela.
-
Fonte ou tema. Sem material nenhum, pergunte de onde vem a história antes de começar.
A ordem, e por que é essa
Alinhamento conceitual não entra aqui. O /mira-concept-align e o /mira-storyboard são
fluxo alternativo, acionado só quando o autor pede, para quando a ideia não está clara. Você
não oferece, não sugere e não roda. Se o deck já tiver storyboard/concept-brief.md, os agentes da
cadeia leem como referência, do mesmo jeito que leem references/.
Fase 0, o deck nasce com cinema
ANTES da direção, não depois. É a única ordem que funciona:
npx mira-animator new <slug> --cinema
Isso instala quatro coisas, e as quatro são necessárias:
| Arquivo | Para quê |
|---|
mira/mira-cinema.js + assets/vendor/gsap.min.js | a câmera, os planos, a grade e o ritmo |
mira/mira-foco.js | o modo câmera da tecla C, onde o autor ajusta os cues na tela |
servidor.bat na raiz do deck | http://localhost, sem o qual o Ctrl+S do modo câmera não grava direto no arquivo |
As tags entram na ordem certa (GSAP, depois o cinema, depois o foco, e os três antes dos módulos de
autoria). A instalação é do CLI, e não sua: copiar biblioteca e injetar tag é passo determinístico, e
é onde um agente falha em silêncio.
Confira que decks/<slug>/mira/mira-cinema.js, decks/<slug>/mira/mira-foco.js e
decks/<slug>/servidor.bat existem antes de seguir. Faltando o primeiro, pare: toda a direção de
câmera das fases seguintes seria descartada. Faltando os outros dois, o deck sai certo e o autor não
consegue ajustar nada nele, que foi o que já aconteceu: a tecla C não fazia nada porque o
mira-foco.js não era instalado por ninguém. Se faltar, rode npx mira-animator update.
Coloque o material-fonte em decks/<slug>/references/ agora.
Se o autor pediu "só prepare", pare aqui, e pare dizendo como voltar. Encerre com a frase
literal:
Deck preparado em <caminho absoluto>. Coloque o material em references/ e volte com
/mira-cinema-deck continuar. Sem esse comando a cadeia narrativa não roda, e o deck sai
sem encenação nem partitura.
É a falha que já aconteceu: o autor preparou o deck, colocou o material e retomou com um comando
genérico de execução. A fase 1 inteira foi pulada em silêncio, o /mira-animator recebeu o
storyboard cru no lugar de um briefing por cena, e o deck saiu com desenho feito à mão sem
encenação. Qualquer retomada tem que voltar por esta skill. Ao receber continuar, leia o que
já existe em references/, diga em que etapa está entrando e por quê, e siga da fase 1.
Fase 1, a história (Story Team)
Na ordem, um de cada vez, com o resultado de cada um alimentando o seguinte:
| # | Agente | Entrega |
|---|
| 1 | /mira-premise-forge | Premise Brief |
| 2 | /mira-concept-storyteller | Concept Contract |
| 3 | /mira-story-architect | Story Bible |
| 4 | /mira-design-audience-journey | Audience Journey Map |
| 5 | /mira-direct-slide-sequence | MIRA Slide Score, uma cena por slide |
| 6 | /mira-direct-scene | encenação: composição, planos com oclusão, enquadramento, grade do deck |
| 7 | /mira-direct-cinematic-motion | MIRA Motion Score: temperamento, beats, câmera, easing, loop |
| 7b | /mira-scene-brief | destila tudo em um briefing autossuficiente por slide, com a âncora que liga um ao outro e o campo Cinema, que carrega a câmera, os planos e a atmosfera daquele slide |
| 7c | /mira-asset-scout | decide a origem de cada ator: desenhar, buscar SVG de fonte aberta ou pedir ao autor |
Dá para entrar no meio. Se a premissa já existe, comece na 2; se a Story Bible está de pé, use
as três últimas. Diga ao usuário em qual etapa você entrou e por quê.
Pare entre as etapas e mostre a entrega. É deck que precisa convencer: vetar uma premissa custa
uma mensagem, vetar um deck pronto custa a geração inteira.
Grave cada entrega em decks/<slug>/references/, senão a etapa seguinte reconstrói de memória.
Fase 2, o deck
| # | Agente | Papel |
|---|
| 8 | /mira-builder | monta o HTML a partir do Slide Score |
| 9 | /mira-cine-animator | implementa a partitura: metáfora, câmera, planos e grade, com a nota avaliada com o cinema ligado |
| 10 | /mira-validator | relatório de conformidade |
O passo 8 monta DENTRO do deck que a fase 0 criou, nunca num arquivo novo: o index.html de lá
já carrega as tags do GSAP, do mira-cinema.js, do mira-foco.js e dos módulos de autoria, na
ordem certa. Remover ou reordenar essas tags ao montar os slides desfaz a fase 0 em silêncio, e o
sintoma só aparece no passo 9, quando a câmera não tem motor. Depois do builder, confira que as tags
continuam lá.
Entre a fase 1 e o passo 9 entra o /mira-scene-brief, e ele muda o que o passo 9 recebe.
A cadeia produz cerca de 28 mil palavras antes de existir imagem. Quem desenhava o slide chegava
lendo 13 mil palavras acumuladas, e o resultado medido não era um slide melhor, era um slide
genérico: ninguém decide bem com 13 mil palavras na frente. O /mira-scene-brief destila tudo em um
briefing autossuficiente por slide, cerca de 180 palavras.
A cadeia continua inteira. Ela só para de ser lida.
Consequência para este orquestrador, e é a regra que mais muda:
- entregue ao
/mira-cine-animator um briefing por vez, o daquele slide, e nada mais. Nem o Motion
Score, nem o Slide Score, nem os briefings dos vizinhos. A única coisa que viaja junto é a tabela
de origem do /mira-asset-scout daquele slide, que cabe em três linhas e evita que ele desenhe à
mão o que não sabe desenhar;
- confira que cada briefing tem o campo Cinema preenchido (cues com alvo, beat, duração e razão,
planos com oclusão). É por ele, e só por ele, que a câmera do Motion Score chega no implementador:
briefing de deck cinematográfico sem esse campo volta para o
/mira-scene-brief antes de qualquer
código;
- se um slide sair errado, o defeito está no briefing, não no implementador. Corrija o briefing e
gere de novo, em vez de mandar mais contexto junto. Mandar mais contexto desfaz o método.
O /mira-cine-animator já conhece a API (MiraCinema.palco, Cam.*, Prof.*, Grade.*) e os
tetos, herdados do método do /mira-animator, e não precisa da cadeia para isso.
Exceção: deck de um slide só não tem âncora entre cenas, e aí a destilação não paga o passo.
Nesse caso o Motion Score vai direto para o passo 9.
Depois de pronto: a câmera se ajusta na tela, não no código
O deck sai com a câmera que o Motion Score pediu, e ela quase nunca fica certa de primeira, porque
enquadramento é decisão de olho. O ajuste fino é do autor, no navegador, com a tecla C, o modo
câmera do mira/mira-foco.js (a tecla A é outra coisa, a barra de ritmo do mira-cinema.js):
- quatro pistas, uma por efeito (zoom, travelling, tremor, tensão), para efeitos sobrepostos no
tempo, que é o normal e não a exceção;
- a agulha da régua percorre a cena quadro a quadro, para achar o instante exato de um cue;
- intensidade e duração dos abalos em slider, com prévia ao vivo;
- uma quinta pista, a dos pontos de execução: onde a cena para enquanto você apresenta;
Ctrl+S grava tudo como comentários @MIRA:FOCO, @MIRA:CICLO, @MIRA:LOOP, @MIRA:VOLTA e
@MIRA:PASSOS dentro da <section>, no arquivo. Sobrevive ao F5 e ao próximo agente que abrir
o deck.
Ponto de execução não é cue de câmera, e por isso é lista à parte. @MIRA:PASSOS 1.85 7.37 9.80
(segundos, ordem crescente) diz onde a cena espera por você. Não existe botão de ligar: a lista
é a declaração. Sem ponto nenhum a cena roda solta como qualquer slide; com pontos ela corre e para
no primeiro, e cada seta a leva até o próximo. Depois do último, a seta leva a cena até o fim (a
Regra Zero vale aqui: cena não congela), e só a próxima troca de slide. A seta para cima volta um
ponto, cancela um avanço em curso e recaptura a cena solta no último ponto. Cria-se pelo ícone da
última pista, no ponto da agulha, arrasta para mover e duplo clique remove.
E é por isso que deck cinematográfico se edita pelo servidor.bat, não por file://. Em
http://localhost o Ctrl+S lê e reescreve o index.html direto, sem diálogo. Em file:// ele
depende do seletor de arquivo do Chrome, pede permissão a cada sessão e falha em qualquer outro
navegador. O npx mira-animator new <slug> --cinema já deixa o servidor.bat na raiz do deck:
mande o autor abrir por ele, e diga isso na entrega. O deck continua abrindo por file:// para
apresentar, o servidor é para autorar.
Não reescreva no código cue que o autor ajustou na tela. Os marcadores são a fonte da verdade da
câmera desde o nascimento: o implementador escreve a direção de câmera como @MIRA:FOCO dentro
da <section>, nunca como Cam.* inline na timeline (contrato no /mira-animator, seção do modo
cinema). Cue inline é invisível para a tecla C, e um deck com câmera que o autor não consegue
ajustar é um deck com câmera errada para sempre. O código do slide conta a história, os marcadores
enquadram.
Regras que valem sobre tudo
- A grade de cor é do DECK, uma só. Quem decide é o
/mira-direct-scene, na fase 1, e todos os
slides herdam. Grade escolhida slide a slide vira ruído, e é assim que um deck vira dez filmes.
- Temperamento
sereno é o padrão. tenso só quando a cena pede tensão. Pedido implícito não
conta.
- A nota de corte (85, sem veto) é avaliada com o cinema LIGADO, porque quem implementa aqui é
o
/mira-cine-animator e essa é a inversão que o define. O teste que continua valendo: tirando o
cinema, sobrar menos história é legítimo; sobrar história nenhuma reprova nos dois irmãos,
porque aí não havia cena, havia efeito.
- Nenhum agente da fase 1 escreve HTML. Se algum entregar código, descarte e peça direção.
file://, offline e ausência de build são premissa. O deck tem que abrir com duplo clique.
Quando NÃO usar esta skill
| Caso | Use |
|---|
| Um slide avulso | /mira-animator |
| Deck rápido, sem história | /mira-fast ou /mira-ultrafast, que não têm cinema de propósito |
| Deck de gravação com teleprompter | /mira-studio ou /mira-studio-full |
| Trocar a animação de um slide existente | /mira-animator no modo substituir |
Entrega
Ao terminar, diga:
- o caminho do deck e quantos slides tem;
- a grade escolhida e o temperamento dominante;
- quantos cues de câmera entraram, e em quais slides;
- o que o usuário deve olhar para aprovar: a história aparece com o título escondido? o corte
do loop aparece? o Replay deixa dois atores rodando? a câmera tem razão narrativa em cada cue?
- o que ficou de fora, se ficou.
A conferência no navegador é do usuário. Não afirme que assistiu à animação.