---
name: fabrica-de-posts
description: "Cria posts completos para o Instagram @psi.entre.mentes: slides em prosa,   legenda, referências com DOIs e prompt de capa com pintura clássica. Dispara   sempre que o usuário pedir post, carrossel, slide, conteúdo para Instagram,   ou disser \"faz um post\", \"escreve sobre\", \"monta o carrossel\", \"próximo   post\", \"prepara sobre\", \"novo post sobre\", \"quero um post\", \"post sobre X\",   \"escreve os slides\", \"faz o conteúdo\". Também dispara para revisão ou   reescrita de rascunhos de posts. Dispara mesmo que o usuário não use a   palavra \"post\" explicitamente — se a intenção é criar conteúdo para o perfil   de Instagram, este skill deve ser usado. NÃO use para verificação de DOIs   isolada (use verificacao-posts), tarefas acadêmicas, ou conteúdo que não   seja para o Instagram."
---



# Fábrica de Posts — @psi.entre.mentes

<context>
Este skill produz posts para um perfil de Instagram de divulgação em psicologia
que faz análise crítica da psicologia para psicólogos e estudantes. O perfil
NÃO é divulgação científica genérica nem perfil de coach. É metacrítica
epistemologicamente orientada, escrita de dentro da área.

O dono do perfil é contextualista funcional, usa network approach (Borsboom)
e Process-Based Therapy (Hayes & Hofmann). Psicopatologia = rede dinâmica.
Diagnósticos = ferramentas pragmáticas. Formulação idiográfica antes do DSM.
</context>

## Antes de começar qualquer post

<required_reading>
0. Leia `/mnt/skills/user/regras-comuns/SKILL.md` — IRON RULES universais de
   escrita (fluidez por encaixe, variação de ritmo, bottom-line, vocabulário
   inflado, filler banido), que esta skill herda
1. Leia `references/voice-and-style.md` — regras de escrita inegociáveis
2. Leia `references/performance-patterns.md` — formatos e métricas dos 7 posts
3. Leia 2-3 arquivos em `few-shot/` escolhendo os que mais combinam com
   o formato do tema pedido (ver formatos em performance-patterns.md).
   Ler todos os 7 só na primeira tarefa ou quando o usuário pedir calibração.
</required_reading>

<on_demand_reading>
Ler SÓ quando a tarefa exigir:
- `references/posts-publicados.md` → ao propor tema novo (evitar repetição)
- `references/gamma-config.md` → ao gerar slides no Gamma (final do processo)
- `references/pipeline.md` → se perguntar sobre o pipeline
- `about-me.md` → se precisar de detalhes do contexto ou de colaboradores
- `references/style_calibration_protocol.md` → SÓ sob pedido explícito de
  recalibração de voz (ARS v3.11.1, CC BY-NC; útil pela separação entre
  dimensões seguras e arriscadas de estilo)
</on_demand_reading>

## Fórmula validada

<format_spec>
O formato padrão é listicle acadêmica. Os dados de performance de 7 posts
com 30k-280k views cada confirmam que esta fórmula funciona:

- ITENS: 9 a 13 por post (posts com 10-12 itens têm melhor ratio saves/likes)
- CAPA: pintura clássica/barroca + tipografia carmesim (#E00000) em pincelada
  a óleo. A pintura deve argumentar junto com o tema, não ser decorativa.
- SLIDE DE INTRO: contextualização provocativa, sem CTA genérico
- SLIDES DE CONTEÚDO: um item por slide, 50-80 palavras, prosa corrida
- SLIDE FINAL: síntese reflexiva ou posicionamento teórico. Posts que fecham
  com 3-5 slides conceituais (não CTA) performam melhor em saves.
- LEGENDA: prosa corrida, MÁXIMO 2.200 caracteres no total (limite RÍGIDO do
  Instagram, conta tudo: texto, quebras de linha e hashtags). Mirar 1.900-2.100
  para deixar margem. Parágrafos curtos, 2-4 frases. SEMPRE medir o número de
  caracteres antes de entregar; se passar de 2.200, cortar até caber. O texto
  longo e aprofundado vai nos slides e no link Telegraph, não na legenda.
- REFERÊNCIAS: ao final da legenda, com autores, ano, periódico, DOI
</format_spec>

## Processo passo a passo

### Passo 1: Validar tema
- Checar `references/posts-publicados.md` — tema já foi coberto?
- O tema tem pelo menos 3 referências peer-reviewed acessíveis?
- Existe tensão ou controvérsia interna? (consenso trivial não funciona)
- Qual formato dos few-shot mais combina com este tema? (claim+retruco,
  conceito+utilidade, área+justificativa, ferramenta+fundamentação)

### Passo 2: Curar referências
- Mínimo 5, ideal 8-12 referências por post
- Hierarquia: meta-análises > RCTs > estudos observacionais > livros
- Cada referência: autores, ano, periódico, DOI
- As referências chegam dos Projects upstream (Pesquisa de Temas / Pesquisa
  Acadêmica) já classificadas como VERIFICADO ou PROVÁVEL. Não reverificar.
- Referência NOVA adicionada durante a Fábrica passa pelo protocolo
  determinístico antes de entrar: `https://api.crossref.org/works/<DOI>` +
  `https://api.openalex.org/works/doi:<DOI>`, título + 1º autor + ano batendo
  (2-de-3 com Semantic Scholar como árbitro), metadados copiados literais,
  retratação limpa (`update-to` no Crossref, `is_retracted` no OpenAlex).
- Artigo de periódico sem DOI triangulável é DESCARTADO, nunca marcado com
  placeholder. [DOI não verificado] não existe mais neste pipeline: ou a ref
  está verificada, ou é PROVÁVEL sinalizada, ou não entra.
- Fontes legitimamente sem DOI (livro, tese, documento normativo) entram como
  fonte secundária com identificador alternativo (ISBN, URL institucional
  estável) e flag explícita de tipo. Nunca como âncora empírica do post.
- Classificar distância ao tema clínico: A (clínica direta), B (psicopatologia),
  C (neuro cognitiva), D (neuro teórica), E (sem ponte)
- Referência nível C ou inferior precisa de justificativa explícita
- A lista final, depois de verificada, vira link curto público no Telegraph
  (ver Passo 6.5). Esse link é o que vai no Instagram, nunca a lista crua de DOIs.

### Passo 3: Escrever slides
<writing_rules>
A mecânica universal de escrita (fluidez por encaixe, variação de ritmo,
bottom-line, vocabulário inflado, filler banido) vem de regras-comuns. Abaixo, só o
inegociável do post e o que é específico de slide (ver voice-and-style.md para a
lista completa):
- Prosa corrida. ZERO bullet points. ZERO listas numeradas.
- ZERO travessões (—). Usar vírgulas, pontos, conectores.
- NUNCA abrir com "Em [ano], [pesquisador] demonstrou..."
- NUNCA usar tríades simétricas
- NUNCA repetir "Não é X. É Y." (máximo 1x por post inteiro)
- NUNCA: "genuinamente", "de fato", "notavelmente", "é importante notar"
- ZERO emojis. ZERO formatação de coach.
- Variar ritmo: alternar sentenças curtas e longas entre slides
- Cada slide = uma ideia central, desenvolvida, com referência integrada
- A referência vive dentro do argumento, não solta como citação decorativa
- No slide, período enxuto e escaneável: o período longo e encadeado é arma da
  legenda, não do slide, que é lido num passar de olhos
- Cada slide carrega seu bottom-line, e a abertura e o slide de fechamento cravam
  o bottom-line do post inteiro, que é o sentido de fundo que a pessoa salva
</writing_rules>

<overlap_check>
Em listicles com 10+ itens: antes de finalizar, listar todos os pares de
slides que possam parecer redundantes ao leitor. Para cada par:
- Compartilham mesma referência, área ou autor principal?
- A distinção está explícita no texto do slide?
Classificar como: SOBREPOSIÇÃO PROBLEMÁTICA (corrigir) ou COMPLEMENTAR
(manter com justificativa registrada).
</overlap_check>

### Passo 4: Escrever legenda
<caption_models>
Três modelos testados com dados reais (escolher o mais adequado):

MODELO A — Metáfora da capa → dados → argumento → CTA
Usado em posts de referência/utilitários. Conecta imagem ao argumento.
Performance: altos saves, envios moderados.

MODELO B — Mini-ensaio sem CTA
Cada parágrafo é argumento autocontido. Sem "salve" nem "comente".
Performance: altos comentários, reposts, engajamento polarizado.

MODELO C — Manifesto curto (2-3 parágrafos)
Direto ao ponto. Respeita tempo do leitor.
Performance: funciona em temas técnicos/nichados.
</caption_models>

- Prosa corrida, sem bullet points, sem headers
- LIMITE RÍGIDO: a legenda inteira (texto + quebras + hashtags) tem no MÁXIMO
  2.200 caracteres, que é o teto do Instagram. Mirar 1.900-2.100 para margem.
  Medir o número de caracteres ANTES de entregar; passou de 2.200, cortar.
- Parágrafos curtos (2-4 frases). Dentro do teto, a legenda ainda abre cravando
  o bottom-line e mantém o período coeso de regras-comuns, mas comprimido
- A profundidade mora nos slides e no link Telegraph; a legenda é a porta de
  entrada, não o lugar do texto longo
- Incluir ao menos uma admissão de limitação ou controvérsia não resolvida
- Referências NÃO entram cruas na legenda (ocupam espaço e não ficam clicáveis):
  vão no link Telegraph do comentário fixado. Máximo 5 hashtags do nicho

### Passo 5: Criar prompt de capa
<cover_spec>
- Sugerir pintura clássica específica: nome da obra, autor, período
- A pintura deve criar tensão semântica com o tema (ver performance-patterns.md)
- Composição tipográfica: número grande + palavra-chave em vermelho carmesim
  (#E00000) com textura de pincelada manual a óleo + complemento em branco
- Formato: 4:5 (1080x1350px), 8K, museum-quality
- Incluir alternativa de pintura (primeira escolha + backup)
- Prompt escrito em inglês para o gerador de imagem
</cover_spec>

<buscar_pintura_real>
Depois de sugerir a pintura clássica específica (a obra, o autor, o período, a
primeira escolha e o backup que o bloco acima já define), buscar essa obra real
em domínio público de forma interativa e à prova de erro, ainda dentro do Passo
5, antes de seguir para o Passo 6. O fluxo é conversado com o autor, não
automático até o fim.

Primeiro, rodar a busca sem baixar nada:
  python3 scripts/artes.py buscar "NOME DO ARTISTA" --fontes met,rijks,cleveland,wikidata,wikimedia --min 1500 --json

Pegar o JSON de saída, em que cada item traz titulo, artista, resolucao e
image_url, abrir as imagens dos candidatos e mostrar as pinturas ao autor na
conversa, numeradas, cada uma com artista, título e resolução. Esperar o autor
escolher um número, sem decidir por ele.

Com a escolha feita, salvar EXATAMENTE o item escolhido, o objeto JSON daquele
índice da lista, num arquivo, por exemplo ./capa/escolhido.json, e baixar só
ele:
  python3 scripts/artes.py baixar --de-json ./capa/escolhido.json --saida ./capa

Esse modo baixa a obra exata que o autor escolheu, a partir do próprio objeto da
busca, sem refazer a busca nem tentar casar fonte por nome, então nunca vem a
obra errada.

Entregar o arquivo da pintura em alta resolução junto com o sidecar de crédito
que o script gera, que carrega a atribuição da obra.

Regra crítica: isto NÃO substitui o prompt de capa. O prompt de capa em inglês
continua sendo gerado normalmente no bloco <cover_spec> acima e continua sendo o
item 1 do <output_format> no Passo 6. A capa passa a ter saída dupla, a pintura
real baixada com crédito e o prompt de capa, ambos entregues.
</buscar_pintura_real>

### Passo 6: Entregar output completo
<output_format>
Entregar tudo junto, nesta ordem exata:
1. Capa, em saída dupla: a pintura clássica real baixada em alta resolução com o
   sidecar de crédito gerado pelo script (Passo 5, bloco <buscar_pintura_real>),
   mais o prompt de capa em inglês
2. Todos os slides com texto final numerados
3. Legenda completa em prosa corrida
4. Lista de referências com DOIs
5. Registro de pares verificados (sobreposição vs. complementar)
6. Fraquezas aceitas (se houver)
7. Classificação das referências por distância (tabela A/B/C/D/E)
8. Corpo de aprofundamento (`aprofundamento.md`): tudo que não coube nos slides,
   números completos, limitações, contradições, informação mais detalhada
9. Link público da PÁGINA DE APROFUNDAMENTO no Telegraph (gerado no Passo 6.5,
   carrega o aprofundamento + as referências), pronto para o comentário fixado

NÃO fragmentar a entrega. Entregar completo salvo se o volume exigir.
</output_format>

### Passo 6.5: Página de aprofundamento + referências (Telegraph), automática

<pagina_aprofundamento>
REGRA PERMANENTE (Entre, jun/2026): o link do Telegraph NÃO é mais só a lista de
DOIs. É a PÁGINA DE APROFUNDAMENTO do post, e ela carrega SEMPRE, junto com as
referências, tudo que a legenda comprimida e os slides escaneáveis tiveram que
deixar de fora. É o lugar onde a profundidade vive. É esse link que vai no
Instagram (comentário fixado), nunca a lista crua de DOIs.

O que a página SEMPRE inclui, nesta ordem:
1. Um parágrafo de abertura situando o post (a tese em uma frase).
2. O conteúdo aprofundado que não coube nos slides: os números completos (N,
   tamanhos de efeito, intervalos de confiança, páginas das citações), o
   raciocínio estendido, as nuances de cada estudo.
3. Limitações: o que cada achado NÃO sustenta, amostras WEIRD, proof-of-concept,
   poder estatístico, distância clínica das referências de nível C/D.
4. Contradições e tensões: onde os estudos se enfrentam, modalidade das
   afirmações fortes, o que fica em aberto na literatura.
5. As referências completas, com DOI clicável, ao final (o script já anexa sob
   o título "Referências").

A matéria-prima do aprofundamento já existe no próprio processo: as Fraquezas
aceitas, o overlap check, a classificação A/B/C/D/E, o inventário numérico da
consolidação e tudo que foi cortado dos slides por limite de palavra. Montar o
`aprofundamento.md` é reunir esse material em prosa corrida (as IRON RULES de
escrita continuam valendo: sem travessão, sem bullet em texto corrido de
parágrafo, embora listas sejam aceitas aqui porque é página de referência, não
slide).

Por que Telegraph e não Notion ou Google Doc: não exige conta nem expõe
identidade. Notion publicado vaza nome e e-mail dos editores (intencional, sem
correção); Google Doc público mostra o nome da conta. O Telegraph sai anônimo,
só com a assinatura "Entre Mentes".

Quando gerar: SÓ depois da verificacao-posts e do auditor-p (o link carrega a
credibilidade do perfil). Referência PROVÁVEL e fonte sem DOI (livro,
tese, normativo) entram como texto puro, sem hyperlink (o script já faz isso
sozinho). Referência não triangulada não chega até aqui.

Como gerar:
  python3 scripts/publicar_referencias.py --conteudo aprofundamento.md --refs refs.json
O `aprofundamento.md` é o corpo em Markdown simples (títulos com #/##/###,
parágrafos, listas, **negrito**, *itálico*, [texto](url), > citação). O
`refs.json` é a lista final de referências, uma string por referência com a URL
do DOI no fim. O script converte o Markdown em página Telegraph, anexa as
referências sob "Referências", e imprime a URL curta no formato
https://telegra.ph/Aprofundamento-MM-DD. Sem --conteudo, ele cai no modo antigo
(só referências, slug Referencias-MM-DD).

Detalhes que o script já resolve:
- URL limpa em ASCII no slug, título com acento no topo (cria com título ASCII e
  depois edita para a versão acentuada, sem mudar o endereço).
- Posts do mesmo dia recebem sufixo -2, -3 automático no slug.
- Mesma conta anônima (token no script): qualquer correção posterior reusa o
  fluxo. O Telegraph não apaga páginas; versões antigas ficam órfãs.
</pagina_aprofundamento>

## Jargão e sinalização de incerteza

<jargon_uncertainty_rules>
Base empírica, ambas verificadas:
- Jargão reduz fluência de processamento e, por essa via, credibilidade
  percebida e intenção de buscar mais informação, mesmo quando o termo é
  definido em seguida (Dayton & Dragojevic, 2024, Journal of Language and
  Social Psychology, https://doi.org/10.1177/0261927X231191787; linha
  Shulman/Bullock).
- Comunicar incerteza como faixa numérica reduz pouco a confiança no número
  e não reduz a confiança na fonte; hedge verbal vago ("pode ser que",
  "alguns estudos sugerem") corrói mais (van der Bles et al., 2020, PNAS,
  https://doi.org/10.1073/pnas.1913678117; replicado com N>10.000 em Kerr
  et al., 2023, Royal Society Open Science, https://doi.org/10.1098/rsos.230604).

Regras práticas:
1. Termo técnico só entra se carrega o argumento. Se entra, a definição vem
   na mesma frase, integrada, nunca em aposto didático ("ou seja, ...").
2. Preferir faixa numérica a hedge verbal: "efeito entre pequeno e moderado
   (d entre 0,2 e 0,5)" em vez de "efeito possivelmente relevante".
3. Hedge verbal permitido só quando a literatura não dá número; nesse caso,
   dizer por que não dá ("estudos heterogêneos demais pra um intervalo").
4. Incerteza declarada protege a credibilidade do perfil, não enfraquece o
   post. Esconder incerteza é violação da cardinal rule de regras-comuns.
</jargon_uncertainty_rules>

## Calibração de controvérsia

<controversy_test>
Antes de finalizar qualquer afirmação provocativa:
1. É verificável contra evidência citada no post?
2. Passa no teste: "Um psicólogo que discorde pode descartar como opinião rasa?"
   Se sim → recalibrar até que a evidência proteja a provocação.
3. Ataca paradigmas/práticas/crenças, NUNCA pessoas ad hominem.
</controversy_test>

## Transposição interdisciplinar

<interdisciplinary_check>
Quando o post importar conceitos de outra disciplina:
1. O conceito foi transposto com fidelidade ao formalismo original?
2. Se o uso é metafórico, está marcado como tal? Se é formal, a transposição
   está citada?
3. Controvérsias na disciplina de origem foram mencionadas?
4. Teste: "Um especialista da área de origem reconheceria este uso como legítimo?"
</interdisciplinary_check>