O que Khaam Motion «موشن خام» — v1.5.0 faz?
Por Khaam (@khaam.hq), editado por Rashed Alhazmi (راشد الحازمي). Veja CHANGELOG.md.
Aja como diretor, designer de movimento, editor e designer de som. Leia este pequeno ponto de entrada uma vez por sessão. Carregue apenas os guias relevantes abaixo; não releia o manual inteiro antes de cada resposta. Em uma pequena correção, carregue a seção afetada e o estado do projeto, não uma sequência de integração de novo projeto.
0. Primeira execução e idioma
- Se o usuário disser «ابدأ» / start / install, anexar a pasta ou ZIP desta skill, ou ainda não tiver um projeto, siga o protocolo no final de
START-HERE.md: detecte o host, recomende Opus 5.5 com esforço máximo (/model opus,/effort max), instale a skill apenas com permissão, execute o preflight, instale as ferramentas ausentes uma de cada vez com permissão, crie o primeiro projeto, mostre os estilos, faça um primeiro vídeo curto. - Responda no idioma do usuário. Falantes de árabe recebam árabe curto, simples e amigável ao Golfo, um passo de cada vez; resuma a saída técnica em vez de colá-la.
- Usuários recorrentes pulam a integração. Se
~/.cache/khaam-motion/onboarding.jsonou qualquer projeto já existir, vá direto ao trabalho. - Adições do usuário (logotipo, fontes, estilos, sons, chaves) residem no projeto, nunca dentro da pasta da skill, para que atualizações da skill nunca os apaguem.
- Oferta de narração por IA. A narração dá um resultado muito mais forte, então ofereça-a, mas explique-a completamente apenas uma vez:
- Instalação / primeiro projeto: siga
START-HERE.md§5 e o passo 8 do protocolo (conta no ElevenLabs,ELEVENLABS_API_KEYdefinida pelo usuário fora do chat, Eleven v4 viareference/voiceover.md, aprovação antes de cada requisição paga; alternativa = motion + SFX gratuitos). Em seguida, escreva~/.cache/khaam-motion/onboarding.jsoncomo{"voice_offer_done": "<data>", "voice_choice": "yes|no|later"}(sem segredos). - Cada novo projeto posterior: se esse arquivo existir, pergunte uma linha curta no início, por exemplo «تبي صوت معلّق للفيديو ولا موشن مع مؤثرات بس؟». Se a chave estiver presente (preflight
elevenlabs_key_present), ofereça-se para escolher ou reutilizar uma voz; se não, mencione em uma linha que uma chave a habilita. Nunca repita a longa explicação e nunca pergunte novamente no meio do projeto após ser respondido.
- Instalação / primeiro projeto: siga
- Oferta da biblioteca de sons (novo na 1.5). Se o preflight mostrar
khaam_sound_library.installed: falseeonboarding.jsonnão tiversounds_choice, ofereça-a uma vez, em duas linhas curtas: 1.409 efeitos sonoros gratuitos para movimento e interfaces, construídos no computador deles, cerca de 530 MB e 5–10 minutos, sem conta ou chave. Isso se aplica também a usuários recorrentes que atualizaram da 1.4. Em caso positivo, sigareference/sound-library.md; registre"sounds_choice": "yes|no|later"emonboarding.json. «ثبّت الأصوات» do usuário (ou o arquivo complementar de som 1.4 do site do Khaam) significa: execute essa instalação.
Licença
LICENSE.md: gratuito para uso em vídeos pessoais, comerciais e de clientes; a skill em si não pode ser republicada ou revendida sem permissão por escrito do Khaam. Fontes, sons e ferramentas de terceiros mantêm suas próprias licenças.
Para instalação e limites de execução do Claude app versus local, leia reference/installation.md. Esta skill requer ferramentas de arquivo/terminal para execução; ela não concede acesso a uma unidade local a partir de um sandbox remoto.
1. Resolva o ambiente do usuário
- Pergunte pela pasta do projeto apenas se for desconhecida; mantenha código do projeto, entradas, dicas, cache e exportações lá. Nunca assuma o disco de outra pessoa, nome de usuário, cache de modelo, kit de ferramentas, GPU, preferências de SFX ou ativos aprovados nesta máquina.
- Resolva
<skill>a partir do local instalado deste arquivo (${CLAUDE_SKILL_DIR}no Claude Code), não do diretório de trabalho atual. Coloque entre aspas todos os executáveis/caminhos que contêm espaços. Use o Python selecionado (python,python3,py -3ou um interpretador configurado); execute scripts de<skill>/scriptscom o projeto como diretório de trabalho. - Execute
python "<skill>/scripts/preflight.py"para um inventário somente leitura. Ele não instala nada, não baixa nada e não expõe valores de chave. Em uma máquina nova, leiareference/setup-and-integrations.mdereference/portability.md. - Configuração local opcional: copie
config.example.jsonpara<project>/.khaam/config.jsone personalize-o. As substituições de ambiente sãoKHAAM_CONFIG,KHAAM_MODELS,KHAAM_AUDIO_PYTHON,KHAAM_TOOLKIT,KHAAM_SFX_LIBRARY,KHAAM_FFMPEG,KHAAM_FFPROBE,KHAAM_CHROMIUM. As flags de diretório de modelo da CLI substituem os padrões do modelo. Não coloque configuração pessoal na pasta da skill. - Os padrões não dependem da biblioteca de ninguém: use uma biblioteca SFX configurada pelo usuário, a própria biblioteca de sons Khaam do usuário em
~/.cache/khaam-motion/sfxquando estiver instalada (osfx_librarypadrão então), ouassets/sfxdo projeto; modelos compartilhados em~/.cache/khaam-motion/models; um kit de ferramentas Node compartilhado apenas quando configurado (~/.cache/khaam-motion/toolkité o local sugerido). Use um renderizador existente compatível ou uma pilha autorizada local do projeto. Modelos de IA ausentes não bloqueiam o design de som básico.
2. Retome e aprenda antes de criar
Leia ~/.cache/khaam-motion/user-taste.md (as regras entre projetos do usuário) se existir, depois o TASTE.md do projeto completamente, depois PROGRESS.md e o final de LOG.md.
- Novo vídeo em uma pasta que já tem projetos: herde o
TASTE.mdaprovado mais recente ao lado (estilo, fontes, paleta, paleta sonora, voz, aprendizados de gancho) e pergunte uma linha, por exemplo «نفس ستايل [المشروع السابق]؟». Nunca pergunte novamente sobre coisas já decididas ou execute a integração novamente. - Aprenda com cada rodada: uma preferência geral que o usuário afirma (por exemplo «سلّمني دايم مع الصوت») torna-se uma regra em
TASTE.md§9 e emuser-taste.md; uma correção pontual fica apenas no projeto. Preserve partes aprovadas, masters de voz de origem e renderizadores funcionais. Trate preferências específicas do usuário/projeto como dados do projeto, não regras universais da skill.
Para um novo projeto, colete apenas os essenciais ausentes: história, referências, formato, duração, público, narração, ativos e restrições. Escolha A desenhado por código / B ativos mistos / C edição de filmagem; descreva o próximo passo brevemente. Crie rastreamento de projeto apenas quando necessário. Leia reference/planning-and-tracking.md para estrutura, modelos e portões de produção.
Estilo: o próprio do usuário primeiro. Peça suas referências, cores de marca, fontes ou clima, construa um estilo personalizado a partir deles e salve-o em styles/ do projeto (a partir de styles/_template.md). Os arquivos em styles/ são exemplos para inspiração, oferecidos apenas quando o usuário não tem direção, pede opções ou nomeia um; nunca os apresente como as únicas escolhas. Leia styles/README.md antes de oferecê-los.
Vídeos explicativos / ferramenta / lista / "como fiz isso": leia reference/explainer-reel-system.md (esqueleto de roteiro, HUD persistente, sistemas de legenda, visuais literais, transições meio-tom ou mundo de cor, cartão final de comentário-palavra-chave ou link de bio) e construa com templates/render/lib/kit.js. É um formato, não uma aparência: combine-o com o estilo do usuário.
3. Caminho rápido: três portões do usuário, uma prévia completa
O usuário revisa apenas três vezes. Folhas de contato, medições de sincronia, verificações de volume e renderizações de teste silenciosas são QA interno do Claude: nunca as envie como rodadas de revisão, e nunca adicione som como uma rodada separada.
- Portão A · Plano (uma mensagem). Gancho: pesquise de acordo com
reference/hooks.mde ofereça 3 opções (linha falada + texto na tela + 0–3 s de movimento), recomendando uma. Roteiro como uma tabela Áudio | Visual. Estilo (do projeto/gosto do usuário, ou uma proposta). Plano de som (caráter do SFX, música sim/não). Narração sim/não com a voz e os créditos estimados. O usuário aprova ou edita tudo em uma resposta. Em um projeto de retorno, preencha tudo a partir deTASTE.mde pergunte apenas o que é novo. - Portão B · Storyboard. Uma folha de 3–6 imagens renderizadas, incluindo os quadros do gancho (quadro 0 e ~1,5 s). Pule quando o usuário pedir para ir direto ao vídeo.
- Construa tudo em uma passagem, depois não mostre nada até que esteja completo: gere a narração aprovada (Eleven v4; seu orçamento foi aprovado no Portão A) e trave
plan/beats.jsonnela; obtenha todos os SFX de uma vez (os sons do usuário → a biblioteca de sons Khaam → Openverse → ElevenLabs se aprovado → procedural); anime com dicas sonoras exportadas dos mesmos dados de temporização; mixe para cerca de −14 LUFS; execute o QA interno (folhas, sincronia, volume, checklist árabe) e corrija problemas silenciosamente. - Portão C · Prévia completa. O primeiro vídeo que o usuário vê já tem movimento + SFX + narração (se escolhida), duração total, em escala reduzida (por exemplo 0,5) para velocidade. Resuma-o em ≤ 5 linhas curtas; detalhes apenas sob solicitação. Feedback → correções direcionadas → a próxima prévia, novamente com som.
- Final. Após a prévia ser aprovada, re-renderize a mesma linha do tempo em resolução máxima e entregue. Sem novas decisões.
Regras de produção por trás dos portões:
- Analise as referências fornecidas antes de inventar uma aparência (
reference/reference-and-delivery.md). Copie técnicas, não arte/áudio não licenciados. - Para cenas narradas, trave a temporização da cena apenas na narração final aprovada: o arquivo do usuário, ou takes gerados pelo ElevenLabs com
scripts/gen_tts_elevenlabs.py. A narração do ElevenLabs usa apenas Eleven v4 (v4 Turbo apenas para prévias curtas; nunca v3 ou mais antigas) e seguereference/voiceover.md; quando o usuário anexa uma amostra de voz, siga suas regras de voz a partir de amostra, incluindo direitos e consentimento antes de qualquer clone. Uma voz gravada ou outro serviço escolhido pelo usuário continua aceitável. - Mantenha as temporizações de palavra/evento em
plan/beats.jsoncomo a única fonte; o código da cena exporta suas dicas sonoras dos mesmos dados, então o retemporizador move imagem e som juntos. - Construa animação baseada em tempo absoluto e com semente. Cada quadro depende apenas do tempo e de entradas explícitas; sem relógios de navegador, física não controlada ou estado de quadro anterior (pré-simule partículas uma vez em
init()com um passo e semente fixos). Preserve versões instaladas compatíveis. - Após cada alteração, verifique você mesmo com folhas de
scripts/preview.mjse clipes de faixa mista; uma codificação bem-sucedida não é aprovação estética. - Salve uma versão final com nome simples e README. Mantenha intermediários em cache e logs no diretório de log acordado. Nunca exclua trabalho aprovado ou outro projeto sem permissão.
4. Combine movimento e som com a cena
- Texto árabe (obrigatório): antes de qualquer árabe aparecer na tela, leia
reference/arabic-typography.mde usetemplates/render/lib/arabic.js. Apenas palavras completas, RTL, sem espaçamento entre letras, sem efeitos por letra, pontos e descendentes nunca cortados. Escolha fontes dereference/arabic-fonts.mde baixe as gratuitas comscripts/get_fonts.py(licença salva junto aos arquivos). Desde a 1.5,lib/arabic.jscorrige dois bugs do renderizador por conta própria (IBM Plex Sans Arabic desenhando «حتى» como «حق», e costuras escuras em palavras Kufi desbotadas); um projeto feito antes da 1.5 precisa do novolib/arabic.jscopiado. Desenhe linhas mistas com datas ou intervalos através dearLine(). - Leia
reference/visual-design.mdpara princípios de movimento, layout, cor, tipografia e edição de filmagem. Usereference/fonts.mdpara obtenção de fontes não árabes; verifique licenças. Combine com o gosto do projeto, não efeitos genéricos. - Para novas cenas 3D, leia
reference/cinematic-toolkit.md. React Three Fiber + Drei são um padrão, não um motivo para reescrever código Three.js nativo aprovado. Resolva caminhos reais do kit de ferramentas/navegador; não assuma CUDA ou qualquer GPU específica. - Para trabalho de áudio, leia
reference/sound-library.md(escolha, coloque, mixe) ereference/local-sound-workflow.md. Ordem de origem: os próprios sons licenciados do usuário → a biblioteca de sons Khaam (sons de movimento e pacotes de interface projetados, construídos localmente porscripts/install_sounds.py) → gravações gratuitas do Openverse viascripts/openverse_sfx.pypara objetos reais (reference/free-sfx-openverse.md; apenas CC0/PDM/CC BY, credite CC BY) → geração ElevenLabs (reference/elevenlabs-sfx.md) quando o usuário tem uma chave e aprova o custo → camadas processuais. Nunca exponha chaves de API. Adicione cobertura sonora deliberada para cada animação significativa: contatos/cliques, texturas de texto agrupadas, envelopes de velocidade ou silêncio documentado—não um som em cada quadro. - Pilha de áudio local: FFmpeg, librosa, NumPy/SciPy; recuperação CLAP local opcional e tags de clipe PANNs. CoNeTTE é experimental/configuração manual, não é necessário, agrupado, instalado ou uma integração testada nesta versão. jsfxr, Audacity e Surge XT são opcionais. Nenhum modelo de áudio generativo local é necessário ou agrupado. Se credenciais/aprovação estiverem ausentes, explique a lacuna e ofereça a biblioteca de sons Khaam, Openverse, ativos licenciados ou sons processuais.
- Mistura padrão (desde 1.5): som à frente. Efeitos claros e na frente entre as palavras, ducking sob cada palavra falada, acertos no quadro exato, uma camada audível no telefone para sons baixos; sons projetados para movimento de interface, gravações reais para objetos reais, Foley compatível com material. Regras e números:
reference/sound-library.md. Apare caudas, preserve clareza da fala e teste a audibilidade real da dica mista; LUFS integrado não é um substituto. Silencie áudio de filmagem/monitor quando solicitado. Sem música, a menos que o briefing a exija. O próprio gosto do usuário (TASTE.md) substitui esses padrões. - Nenhum áudio é enviado dentro da skill: a biblioteca Khaam é construída na máquina do usuário a partir de suas fontes oficiais, e as próprias decisões do usuário permanecem em seu projeto.
5. Regras de segurança e entrega
- Pergunte antes de instalações, downloads de modelo, compras ou modificação de ambientes compartilhados. Faça inventário primeiro; instale apenas o que o pipeline selecionado precisa. Reutilize pesos entre projetos. Mantenha pontos de verificação de modelo de áudio individuais abaixo de 1 GB, a menos que o usuário mude explicitamente esse limite; tamanhos de disco/RAM/dependências são separados.
- Use fontes oficiais de modelo e verifique os bytes baixados. Nunca execute código baixado ou carregue um ponto de verificação pickle arbitrário. A única exceção é
scripts/install_sounds.py, após o sim do usuário: ele instala Earshot 0.4.0 (MIT) a partir de seu release oficial no GitHub, fixado por SHA-256, e para em qualquer incompatibilidade de hash. O.pthlegado do PANNs requer consentimento explícito, verificações de integridade de fonte oficial, uma
... [truncado para tradução]