Pular para o conteúdo

/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.

  • identidade/design-guide.md, _memoria/empresa.md, _memoria/preferencias.md
  • marketing/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)
  1. Ler identidade, contexto do negócio e tom de voz; se identidade/design-guide.md estiver vazio, aplicar defaults internos (cores/tipografia neutras) e avisar o usuário uma vez, sem bloquear a peça.
  2. Perguntar o tipo de conteúdo (carrossel em texto, carrossel com foto, post único) só se não estiver claro no pedido.
  3. Redigir o texto de cada slide no tom configurado e esperar aprovação do usuário antes de gerar qualquer visual.
  4. 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.
  5. 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.
  6. Montar um único HTML com todos os slides, CSS inline, cores e tipografia do design-guide, layout diferente em cada slide.
  7. Rodar node scripts/render-slides.mjs <slides.html> <outdir> [--format 4:5|9:16] — 4:5 por defeito, 9:16 só se pedido explicitamente.
  8. Mostrar a capa, um slide intermediário e o encerramento para validação.
  9. 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).
  10. Gravar tudo em marketing/conteudo/<tipo>-<slug>-<AAAA-MM-DD>/, registando o formato usado (4:5/9:16) em texto.md para comparar desempenho depois — medir localmente vence regra genérica de mercado.
  11. Perguntar se o tema também vira artigo de blog; se sim, encaminhar para /publicar-tema.

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).

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.

  • identidade/design-guide.md vazio: usar defaults internos e avisar uma vez — nunca bloquear a peça por isso.
  • OPENAI_API_KEY ausente 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.mjs falha (ex.: dependência de renderização ausente): parar e mostrar o erro — nunca entregar o HTML como se fosse o produto 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.