akuko — do roteiro ao filme, uma etapa revisada de cada vez
Este arquivo é um roteador. Cada ação vive em seu próprio arquivo em actions/; carregue-o sob demanda e siga-o. Não coloque o comportamento da ação aqui. As regras compartilhadas estão em lib/:
lib/state.md— o arquivo do projeto, estágios, transições de status, dobramento de decisões. Leia antes de qualquer coisa que escreva.lib/hosts.md— detecção de host, o que cada host pode fazer, o adaptador de host.lib/spend.md— o portão de gasto e o livro-razão de custos (WP-03).lib/providers.md— provedores (WP-03).
O formato do projeto é schema/akuko-project.ts (akuko.json, JSON Schema em schema/akuko-project.schema.json).
Toda ação começa da mesma forma
- Detecte o host (
lib/hosts.md§Detecção): A claude-artifact · B local · C ikenga. Executenode --experimental-strip-types hosts/detect.ts --tools <sua lista COMPLETA de ferramentas — todos os nomes de ferramentas carregadas e adiadas>. Se a saída tiver umaviso, ou se houver qualquer dúvida, trate o host como A (base de dados de artefato) e nunca crie uma pasta de projeto. Registre o resultado emakuko.json.host. - Leia o projeto através do adaptador de host (
readState()); se não houver nenhum, direcione paraintake(ousetupse a pessoa quiser configurar primeiro). - Dobre as decisões que as pessoas tomaram desde a última execução (
readDecisions()→lib/state.md§Dobramento de decisões) antes de fazer qualquer outra coisa. - Carregue o arquivo de ação e siga-o. Escreva o projeto apenas através de
writeState(); armazene arquivos apenas através destoreAsset().
Roteamento
| Se o usuário disser… | Carregue isto | Responsável |
|---|---|---|
| "configurar akuko", "configurar", "definir um orçamento", "adicionar minhas chaves" | actions/setup.md | WP-08 |
| "verificar minha configuração", "o que está faltando", "diagnóstico" | actions/doctor.md | WP-08 |
| "fazer um filme a partir desta história/roteiro", "iniciar um projeto", "intake" | actions/intake.md | WP-04 |
| "decompor", "lista de planos", "decomposição", "importar uma lista de planos" | actions/breakdown.md | WP-04 |
| "personagens", "locais", "visual / estilo", "bíblia" | actions/bible.md | WP-05 |
| "storyboard", "esboço de quadro", "quadro de batida", "board" | actions/board.md | WP-21 |
| "quadros-chave", "painéis finais", "keyframes", "verificação de continuidade" | actions/keyframes.md | WP-22 |
| "animar", "fazer os clipes", "movimento", "tratamento", "movimentos de câmera" | actions/motion.md | WP-10 · WP-11 · WP-27 |
| "sincronia labial", "fazê-los falar a fala", "lipsync" | actions/lipsync.md | WP-28b |
| "voz-over", "música", "efeitos sonoros", "som" | actions/sound.md | WP-12 |
| "animatic", "pré-visualizar o filme", "deixe-me assistir", "corte bruto", "montar" | actions/assemble.md | B-11 (preview construído) · WP-13 (corte bruto, trava de imagem: stub) |
| "exportar", "enviar para Resolve", "me dê uma timeline" | actions/export.md | WP-23 (entrega para Resolve) |
| "eu revisei", "aplicar minhas notas", "revisão" | actions/review.md | WP-07a |
| "mostre-me …", "abra o board", "visualizar" | actions/view.md | WP-07c |
| "onde estamos", "o que vem a seguir", "status", "quanto vai custar", "estimativa" | actions/status.md | WP-30 (estimativa do filme inteiro) |
A exportação entrega o filme aprovado para o DaVinci Resolve como uma timeline mais mídia. Masters MP4, cortes e um deck Canva estão estacionados (plano Round 7): se for solicitado um MP4, diga isso e ofereça a entrega.
Se nada corresponder, execute status e ofereça a próxima ação que ele sugerir. Se um arquivo de ação (ou a rota solicitada) ainda disser Stub (WP-02), informe à pessoa que não está construído e pare — não improvise. Um animatic também não é improvisado: assemble preview é a rota gratuita e construída para um (quadros-chave aprovados cronometrados aos planos, nunca uma unidade de revisão, nunca salva no projeto).
Estágios
intake → breakdown → sketch → bible → keyframes → motion → sound → assemble → export (0–8, schema/akuko-project.ts#STAGES; o perfil do filme é profiles/film/profile.json). Um estágio abre apenas quando os estágios anteriores são aprovados (lib/state.md §Estágios).
Regras de revisão
Estas valem em todos os hosts e em toda ação e visualização:
- Apenas uma pessoa aprova. Ações movem unidades para
pending-review; apenas a decisão de uma pessoa move uma unidade paraapproved. Nenhuma ação ou visualização aprova automaticamente, pré-marca ou aprova em lote. - Nunca avance automaticamente além da revisão. Cada estágio termina em um portão de revisão (Atelier
ux_mode: approve): execute, depois pause no que foi produzido. - Uma unidade de cada vez dentro de um estágio: produza, mostre, aguarde — não regenere o estágio inteiro porque um plano foi enviado de volta.
- Decisões passam pelo formato de decisão (
Decisionno schema), escritas por uma superfície de revisão para o armazenamento do host. Uma visualização nunca editaakuko.jsone nunca chamawriteState(). - Mudanças solicitadas são honradas, depois marcadas: revise a unidade, adicione um comentário "Revisado: …", retorne-a para
pending-review.
Regras de gasto
- Nenhuma chamada paga sem um OK. Cada trabalho pago (imagem, vídeo, TTS) passa pelo portão de gasto (
lib/spend.md): mostre a estimativa, o limite, o que foi gasto e o que sobra se você aprovar, então aguarde uma aprovação explícita desse trabalho. - Sem limite, sem gasto. Se
akuko.json.budgetfor nulo, recuse trabalhos pagos e aponte parasetup. - Nunca exceda o limite ou o
approved_maxde um trabalho; pare e pergunte. - O dinheiro nunca é ocultado ou arredondado. Todo chamada paga é registrada em
ledger[], sucesso ou fracasso. - As chaves permanecem no ambiente (ou no cofre de segredos do host) — nunca em
akuko.json, uma visualização, a base de dados de artefato, o livro-razão ou um arquivo que o board possa ler, e nunca repetidas. No claude.ai (host A) uma chave é colada por chat, e apenas quando uma chamada paga direta está prestes a ser executada: primeiro teste a rede (scripts/probe.ts), informe à pessoa que a chave será visível no histórico deste chat, é usada apenas neste chat e nunca é escrita em lugar nenhum, obtenha "use minha chave para este chat", então defina-a apenas no ambiente desse comando, reserve, salve no board, envie (lib/spend.md§Host A, R-11). - As regras da casa vêm antes do dinheiro. Quando o projeto tem
rules, cada trabalho é verificado contra elas antes do portão de gasto, e uma violação é recusada (rules-breach), nomeando a regra e o texto ou arquivo infrator. Relate e pare; nunca reformule, remova uma referência ou edite as regras para contorná-la. Executerules/cli.ts checkpara uma pré-verificação gratuita (lib/state.md§"Guarda de regras (WP-26)"). - Uma mesada de plano também é gasto. Uma ferramenta conectada que usa a mesada de plano da própria pessoa em vez de dinheiro (limite mensal de IA do Canva no claude.ai) obtém um OK de cada leva: a contagem, o serviço, que o akuko não pode ver o que resta, e a resposta exata
approve <n> <service> generations. Cada geração vai para o livro-razão com dinheiro zero e uma contagem de unidades (lib/spend.md§Mesada).
Hosts em uma linha cada
- A — claude-artifact (claude.ai): Node e arquivos apenas em um espaço de trabalho remoto que dura um chat, então sem pasta de projeto durável. O projeto vive na base de dados do artefato do board; o agente lê e escreve com chamadas de ferramenta e executa os comandos do estágio em uma cópia de trabalho. Geração através de MCPs conectados (ex. Canva), pacotes de prompt manuais e APIs pagas diretas com uma chave colada para aquele chat (R-11, após um teste de rede); renders MP4 localmente.
- B — local (Claude Code):
akuko.jsonno disco, arquivos na pasta do projeto, todos os provedores via chaves de ambiente, HyperFrames + FFmpeg. - C — ikenga: B mais a ponte Ikenga (e Studio quando seu MCP estiver conectado); Studio possui o estado de render.
Detalhes e a evidência de capacidade: lib/hosts.md.
Arquivos
SKILL.md este roteador
actions/*.md um arquivo por ação (frontmatter Atelier)
lib/state.md regras do arquivo do projeto, estágios, transições, dobramento de decisões
lib/hosts.md detecção de host, capacidades, verificação manual de host
hosts/types.ts contrato HostAdapter (G-HOST)
hosts/{claude-artifact,local,ikenga}.ts um adaptador por host
profiles/film/ o perfil do filme
schema/ formato akuko.json (G-SCHEMA)