mkt-plan-short-video-edit-16-9
Planejador de duas camadas para slides de vídeo 16:9:
- Camada estrutural (15 tipos de Visual Thinking) — layout dos slides: Antes-Depois, Mapa Mental, Fluxograma, Matriz 2×2, Venn, Linha do Tempo, Pirâmide, Tabela Comparativa, Iceberg, Ciclo, Funil, Mapa Conceitual, Grade de Ícones, Infográfico Numérico, 3 Pilares. Guiado pelo arquétipo da cena (gancho → antes-depois, problema → grade de ícones, solução → 3 pilares, …).
- Camada de ilustração (2 bibliotecas de 25 metáforas) — imagens hand-drawn em estilo cream-paper compostas dentro da estrutura: ampulheta, corrente quebrada, orbe robô, porco quebrado, caracol ↔ foguete, lego montado, escada, chave-na-fechadura, cume da montanha…
JSON de saída consumido pelo editor mkt-hyperframe-talking-head-video-16-9 — substitui o preenchimento manual no checkpoint scenes-outline por um plano reproduzível.
Saída
| Arquivo | O quê |
|---|---|
visual-plan.json | Validado por schema. Por cena: visual_type (um de 15) + metaphor + tier_letter + items[] + badges[] + pip_events[]. |
prompts.md | Prompts numerados (1.png, 2.png, …) em estilo cream-paper. Cada um carrega a diretiva estrutural (Antes-Depois / Pirâmide / Funil / …) + metáfora + título/subtítulo em vietnamita. Cole no AI33 / Nano Banana Pro. |
scenes.json (via apply_plan_to_scenes.py) | Shim para o formato do editor. |
Schema (resumo de 1 página):
{ workspace_slug, total_duration, brand,
scenes: [{
id, num, kind, variant, start, end,
kicker, heading, accent_words[], voiceover_anchor,
tier_letter, // ≤5 caracteres: "8h" / "0h" / "∞" / "100tr" / "AI"
items[], badges[],
broll: [{
kind: "infographic-cream-paper",
visual_type, // 1 de 15 — veja references/visual-thinking-types.md
metaphor, // 1 de 25 — veja references/visual-thinking-library.md (ou "none")
title_vi, subtitle_vi,
palette_accents[], layout_description,
placeholder_filename, aspect
}],
pip_events: [{t_in, t_out, trigger}]
}]
}
Requisitos obrigatórios
- Cada cena
infographic-cream-paperb-roll deve carregar tantovisual_type(1 de 15) QUANTOmetaphor(1 de 25 ou"none"para diagramas puramente estruturais). Slides com apenas texto são rejeitados. - Tier-letter ≤ 5 caracteres (numerais/símbolos/palavras-chave da marca ganham — veja
references/tier-letter-selection-rules.md). - Janelas PIP não podem se sobrepor; intervalo mínimo de 0,3s.
- Títulos em vietnamita com diacríticos completos. Nomes de marcas e símbolos matemáticos permanecem em inglês.
Pipeline
1. Detectar cenas
Leia script.txt + transcript.json (ou transcript-cleaned.json). Reutilize o detect_scenes.py do editor se presente, caso contrário use a heurística de 5 cenas (gancho → problema → solução → recap → cta).
Suporte a listicle: scripts com estrutura de listicle (1 gancho + N dicas + 1 CTA) → produza N+2 cenas. Use kind: "tip-1", "tip-2", …, "tip-N" para as cenas do corpo — o editor downstream generate_root_index.py as monta como compositions/scene-{num}.html independentemente de N (sem colisão fs-lesson-1/recap-card). N recomendado = 3..7 (máx. 10).
1b. Fanout de sub-agentes LLM downstream (CONTRATO DO CONSUMIDOR)
Após este planejador escrever visual-plan.json, o orquestrador (mkt-full-video-with-11-hyperframe-heygen-16-9) NÃO chama generate_compositions.py (gerador Python Jinja2 obsoleto). Em vez disso, cria N agentes general-purpose em paralelo em 1 mensagem — 1 sub-agente por cena — cada um autorando compositions/scene-{num}.html a partir do visual-plan.json deste skill.
Isso significa:
- Cada bloco de cena em
visual-plan.jsondeve ser autossuficiente o suficiente para que um sub-agente isolado autorize sua composição sem coordenação — kicker completo, heading, accent_words, tier_letter, items, badges, broll metaphor comlayout_description,pip_eventscom temporização relativa+absoluta. - A metáfora padrão "robot-orb-with-tasks" deve ser substituída (por edição manual do LLM orquestrador) por uma metáfora específica da cena (
scroll-tape-wasted,edit-regenerate-loop,projects-vault-shared-knowledge,right-tool-for-job-vehicles,pacific-vs-vietnam-timezone, …) antes do fanout — metáfora genérica → composição tediosa. - Os campos
metaphorelayout_descriptionsão lidos diretamente no prompt do sub-agente; descrições mais ricas → melhores composições. - A imagem reside apenas na camada ROOT (
<img id="broll-N">no index.html). O HTML da composição NÃO deve incorporarimage-slot. O prompt do sub-agente deve proibir explicitamente slots de imagem incorporados.
2. Escolher visual_type por cena (O NOVO PASSO)
Consulte o mapa de arquétipos em references/visual-thinking-types.md. Padrão por arquétipo:
| Arquétipo | visual_type padrão | Fallback |
|---|---|---|
| gancho | before-after | number-infographic |
| problema / falha | icon-grid | iceberg |
| pivô | before-after | flowchart |
| solução | three-pillar | flowchart |
| diferenciador | comparison-table | venn |
| prova / resultado | number-infographic | comparison-table |
| recap | number-infographic | mind-map |
| cta | icon-grid | three-pillar |
3. Escolher metaphor da biblioteca
references/visual-thinking-library.md — 25 entradas hand-drawn. Escolha uma cuja imagem se encaixe naturalmente dentro do visual_type escolhido (ex.: before-after + dong-ho-cat, three-pillar + robot-orb-with-tasks, number-infographic + heo-dat-vo-ket-sat). Defina "none" apenas quando um diagrama puramente estrutural for mais legível (ex.: comparison-table de verificações de funcionalidades).
4. Derivar tier-letter, items, badges
Veja references/tier-letter-selection-rules.md. Numerais + unidades vencem (8h, 100tr, 15h). Símbolos OK (∞, →, ×). Limite rígido de ≤ 5 caracteres.
5. Calcular eventos PIP
1 janela por cena por padrão: t_in = scene_start + 1.4s, t_out = t_in + 3.5s (limitado a 0,3s antes do fim da cena). Cenas de solução longas (≥ 12s) ganham 2 janelas. Gancho não ganha nenhuma.
6. Renderizar prompts.md
render_infographic_prompts.py percorre visual-plan.json, injeta a diretiva visual_type no topo de cada prompt, depois adiciona metáfora + elementos decorativos + paleta. O resultado é um prompt editorial cream-paper pronto para colar.
Checkpoint com o usuário
Após plan_visuals.py ser executado, apresente um resumo em markdown (NÃO JSON bruto) — veja references/plan-checkpoint-protocol.md. Formato:
### Cena 1 · GANCHO (0.07–13.73s)
- Tipo visual: **before-after** → HyperFrame `tier-row`
- Tier-letter: **8h → 0h** (rosa ↔ lima)
- Metáfora: **ampulheta cheia↔vazia** (1.png)
- PIP: não (cena de gancho)
### Cena 3 · SOLUÇÃO (27.37–47.75s)
- Tipo visual: **three-pillar** → HyperFrame `hero-orb`
- Especificações: ∞ Lembrar de conversar · 100tr Ler documentos · 8h Clicar manualmente
- Metáfora: **robot-orb-with-tasks** (3.png)
- PIP: 28.77→32.77s + 34.37→38.87s
Padrões de resposta do usuário:
OK→ finalizar + passar para o editormudar cena N visual para funnel→ corrigirvisual_typemudar cena N metáfora para caracol→ corrigirmetaphor+ re-renderizarprompts.mdmudar tier-letter cena N para 25→ corrigirtier_lettermesclar cenas N+M→ reesboçar
Arquivos
mkt-plan-short-video-edit-16-9/
├── SKILL.md
├── scripts/
│ ├── plan_visuals.py ← PRINCIPAL. --workspace <dir>
│ ├── render_infographic_prompts.py ← visual-plan.json → prompts.md
│ └── apply_plan_to_scenes.py ← visual-plan.json → scenes.json (shim editor)
├── assets/templates/
│ ├── visual-plan.schema.json ← JSON Schema (visual_type + metaphor obrigatórios)
│ └── infographic-prompt.j2 ← Jinja: diretiva estrutural + metáfora + paleta
└── references/
├── visual-thinking-types.md ← 15 tipos estruturais (A lente PRIMÁRIA)
├── visual-thinking-library.md ← 25 entradas de metáfora (camada de ilustração)
├── tier-letter-selection-rules.md ← Seletor de glifos
├── scene-archetype-pattern-mapping.md ← Arquétipo → variante + árvore de decisão de metáfora
└── plan-checkpoint-protocol.md ← Template de resumo + manipuladores de revisão
Exemplo prático
Projeto de produção loi-ich-claude-ai:
| Cena | Tipo | visual_type | Metáfora | Tier | Variante HyperFrame |
|---|---|---|---|---|---|
| 1 | gancho | before-after | dong-ho-cat | 8h / 0h | tier-row |
| 2 | problema | icon-grid | broken-chain | 3× | chats-stack |
| 3 | solução | three-pillar | robot-orb-with-tasks | ∞ / 100tr / 8h | hero-orb |
| 4 | recap | number-infographic | heo-dat-vo-ket-sat | 15h | counter-row |
| 5 | cta | icon-grid | gift-box-open | AI | terminal-row |
Esse é o padrão ouro — dado script.txt + transcript.json para esse projeto, plan_visuals.py --workspace . deve rederivar essa tabela.