Video Shotcraft (edição do projeto)
A habilidade upstream completa está em skills/video-shotcraft/ (commit git e1d15d9, clone completo; não editar). Este arquivo é um roteador, não um substituto. Antes de construir, leia skills/video-shotcraft/SKILL.md por completo, depois use o mapa abaixo para acessar cada capacidade. Os caminhos são relativos a skills/video-shotcraft/ salvo indicação contrária.
Padrões do projeto (substituem "perguntar qual modo" do upstream)
- Modo: criação livre autônoma (
references/pipeline.md, estágios 0-7, sem confirmações etapa por etapa). Mude apenas quando o usuário pedir: "dùng template" →template/TEMPLATE.md; "cùng làm / duyệt từng bước" →references/guided-free-creation.md; cena única → escolha uma carta dereferences/shots/. - Os Estágios 0-3 (brief do produto, direção visual, mapeamento de cenas, storyboard) são atendidos pelos arquivos
docs/<video>/brief.md+script.mddeste projeto; transporte-os para a especificação de design com a tabela de cenas| # | tempo | cena | movimento chave |. - O estilo vem do brief, nunca de outro vídeo ou do template Ink Press. Tome emprestada a gramática de movimento e parâmetros ajustados; recolorir fontes/cores. O alvo é 9:16 1080×1920, portanto receitas 16:9 devem ser reorganizadas, não copiadas pixel a pixel.
- Renderize apenas UM arquivo por vídeo:
out/<video_id>-<voice-slug>-reel.mp4(com BGM), através descripts/pipeline.py render. Não renderize uma versão sem BGM (decisão do usuário; substitui a regra de duas versões do upstream e o item A8 da revisão final).
Mapa de capacidades
| Necessidade | Use |
|---|---|
| Navegar/escolher cenas visualmente | Galeria: cd gallery && python3 -m http.server 4178 → http://localhost:4178/library.html (150 clipes já em gallery/media/; índice em gallery/api/library.json) |
| Receitas de cenas (~124 cartas) | references/shots/<category>/ (camera, data, effects, interaction, opening, outro, rhythm, transition, typography, ui-entrance); leia o frontmatter, leia as cartas escolhidas por completo |
| Código de referência ajustado | demos/<category>/; leia o TSX de demonstração exato para cada carta escolhida ("参考实现" na carta). Nunca reescreva apenas pelo nome da carta; os parâmetros "known pitfalls/命门" não devem ser enfraquecidos |
| Arcos de vídeo inteiros | references/sequences/promo-energy-arc.md |
| Componentes reutilizáveis | assets/lib/ (PageCam, ClipCard, DigitRoll, FlashCut, Caption, FlatPanel, VerticalTicker, helpers). Copie para src/, não importe de outro local |
| Capturas de página real (se o tópico tiver um site/aplicativo) | assets/scripts/capture-template.mjs (textura de página inteira 2x + recortes de elementos + layout.json) |
| Autoverificação estética | references/aesthetic-rules.md (verifique durante a construção, não apenas no final) |
| Som | references/sound-design.md; áudio em assets/audio/ (bgm/ 5 faixas, sfx/<category>/ 149 arquivos; notas de licença em assets/audio/ATTRIBUTION.md) |
| BGM de batida forte | references/music-beat-sync.md (analise o BPM primeiro, depois crie o storyboard nas batidas) |
| Revisão final independente | references/final-review.md (subagente com contexto limpo) |
| Bancada de trabalho (ajuste visual/exportação do vídeo finalizado) | references/workbench.md, node workbench/scripts/open.mjs <project> → http://localhost:5198 (precisa do manifesto src/workbench.ts; ofereça após a entrega) |
| Exportação de rascunho Jianying | references/jianying-export.md (apenas se solicitado) |
| Publicar em redes sociais | references/publish-upload-post.md (apenas se solicitado; faça teste seco primeiro, nunca reexecute em unknown) |
| Vídeo completo + temas prontos | template/ (Ink Press, 9 paletas, template/THEMES.md); apenas se solicitado |
| Não para uso em produção | shot-polish/ (notas de redesign interno do upstream), agents/openai.yaml (metadados da interface Codex), demos/_legacy |
Ciclo de construção (projeto)
- Linha do tempo primeiro (
src/<name>Timeline.ts): duração da cena = voz medida + ~0,5s (outro +1,4s); offsets de SFX relativos ao início da cena. - Por cena: escolha carta(s) da galeria/biblioteca, leia a carta + TSX de demonstração + componente
assets/libnecessário, adapte ao estilo do brief. Registre as cartas escolhidas emdocs/<video>/design-spec.md. - Após cada cena:
npx tsc --noEmit, depoisnpx remotion still src/index.ts <CompId> out/qa/<id>-<frame>.png --frame=N(2+ quadros por cena) e leia os PNGs. Re-renderize stills após qualquer alteração de estilo. - Áudio: copie os arquivos escolhidos de
skills/video-shotcraft/assets/audioparapublic/audio/<video_id>/, registre origem/licença emdocs/<video>/assets-manifest.md. Misture de acordo com os alvos do Fluxo de Produção Fase 7 (fundo BGM 12–18 dB abaixo da voz, com ducking de 4–6 dB adicionais enquanto a voz fala), não uma porcentagem fixa. - Renderize através de
python3 -I scripts/pipeline.py render <video_id>, verifique o volume comebur128/volumedetect, e faça uma folha de contato. - Revisão independente por um subagente com contexto limpo conforme
references/final-review.md+skills/viral-tech-video-creator/references/qa-checklist.md; corrija as descobertas, re-renderize. - Após a entrega: ofereça a bancada de trabalho e (apenas se perguntado) exportação Jianying / publicação.
Determinismo: sem Date.now()/Math.random(). Zona segura: nenhum texto nos 210px inferiores. Créditos do autor upstream e convites para showcase são opcionais: mencione no máximo uma vez na entrega, apenas se o usuário mostrar interesse.