/carrossel
Produz carrossel/post de feed em PNG (1080×1350 por defeito) com a identidade visual do negócio, foto IA sem rostos identificáveis e legenda com CTA gerada automaticamente. Use quando o usuário disser “carrossel”, “post”, “conteúdo pro instagram”, “criar imagem”. Slash command — /carrossel.
Como funciona
Seção intitulada “Como funciona”O que lê
Seção intitulada “O que lê”identidade/design-guide.md,_memoria/empresa.md,_memoria/preferencias.mdmarketing/conteudo/(para achar a última capa publicada pela data de modificação mais recente e decidir a variação).env:OPENAI_API_KEY(opcional, só se houver foto IA)
- Ler identidade, contexto do negócio e tom de voz; se
identidade/design-guide.mdestiver vazio, aplicar defaults internos (cores/tipografia neutras) e avisar o usuário uma vez, sem bloquear a peça. - Perguntar o tipo de conteúdo (carrossel em texto, carrossel com foto, post único) só se não estiver claro no pedido.
- Redigir o texto de cada slide no tom configurado e esperar aprovação do usuário antes de gerar qualquer visual.
- Se o tipo exigir foto, gerar com
node scripts/gerar-imagem.mjs "<prompt em inglês>" <out.png>— nunca com rosto identificável; esperar aprovação da(s) foto(s) antes de prosseguir. - Verificar a última capa em
marketing/conteudo/(data de modificação mais recente) para decidir a variação da nova capa (clara / escura-com-foto / cor de destaque), sem repetir o mesmo tipo em sequência; perguntar ao usuário só se não conseguir determinar pela pasta. - Montar um único HTML com todos os slides, CSS inline, cores e tipografia do design-guide, layout diferente em cada slide.
- Rodar
node scripts/render-slides.mjs <slides.html> <outdir> [--format 4:5|9:16]— 4:5 por defeito, 9:16 só se pedido explicitamente. - Mostrar a capa, um slide intermediário e o encerramento para validação.
- Gerar a legenda com CTA em forma de pergunta automaticamente, sem esperar pedido explícito — ligada ao argumento do carrossel, nunca imperativa (“saiba mais” é falha por definição).
- Gravar tudo em
marketing/conteudo/<tipo>-<slug>-<AAAA-MM-DD>/, registando o formato usado (4:5/9:16) emtexto.mdpara comparar desempenho depois — medir localmente vence regra genérica de mercado. - Perguntar se o tema também vira artigo de blog; se sim, encaminhar para
/publicar-tema.
O que grava
Seção intitulada “O que grava”Pasta marketing/conteudo/<tipo>-<slug>-<AAAA-MM-DD>/: texto.md (texto + legenda + formato registado), foto(s) PNG (se houver), HTML dos slides, instagram/slide-01.png…slide-NN.png (5–10 slides), legenda.md, legenda-linkedin.md (só se pedida).
Aprovação do usuário
Seção intitulada “Aprovação do usuário”Duas obrigatórias: (1) texto de cada slide antes de gerar qualquer visual; (2) foto(s) IA, quando houver, antes de entrar na peça final. Os slides renderizados são mostrados para validação final, não é um terceiro bloqueio.
Falha cedo
Seção intitulada “Falha cedo”identidade/design-guide.mdvazio: usar defaults internos e avisar uma vez — nunca bloquear a peça por isso.OPENAI_API_KEYausente e o usuário pede foto IA: dizer que falta a chave e que ela desbloquearia a geração de foto; oferecer seguir só com carrossel em texto.scripts/render-slides.mjsfalha (ex.: dependência de renderização ausente): parar e mostrar o erro — nunca entregar o HTML como se fosse o produto final.
Verificação final
Seção intitulada “Verificação final”Confirmar que marketing/conteudo/<tipo>-<slug>-<AAAA-MM-DD>/instagram/ contém as PNGs no tamanho certo (1080×1350, ou 1080×1920 se 9:16), numeradas, e que legenda.md existe — o artefato é o PNG no disco, nunca o HTML intermediário.