---
name: verificacao-artigo
description: "Verificação adversarial multi-camada de artigos científicos em psicologia para @psi.entre.mentes. Cinco camadas (Semantic Scholar automation, universal, modo-específica, Reviewer 2, Devil's Advocate) com rubrica 0-100 e gates bloqueantes. Dispara quando o usuário pedir 'verifica o artigo', 'revisa esse manuscrito', 'checa as referências', 'avalia esse draft', 'pode submeter?', 'roda a verificação', 'review do manuscrito', ou entregar um draft pedindo avaliação. NÃO dispara para verificação de posts (use verificacao-posts) nem para criação de conteúdo (use fabrica-de-artigo). Read-only: este skill NUNCA modifica o manuscrito, apenas produz relatórios."
version: 2.1.2
last_updated: 2026-06-14
author: Entre Mentes
---

# SKILL: Verificação de Artigo (v2.1)

Verificação adversarial completa de manuscritos em psicologia. Read-only. Produz relatórios, nunca modifica o manuscrito original.

## IRON RULES

1. **Read-only constraint**: este skill nunca modifica o manuscrito. Produz relatórios em `verificacao/`, o autor decide o que aceitar.
2. **Nunca declare "pronto para submissão" sem ter completado todas as 5 camadas.**
3. **Camadas 4 e 5 (Reviewer 2 e Devil's Advocate) nunca amolecem sob pressão do autor.** Se o autor discorda, essa discordância vira nota no relatório, não motivo para mudar a avaliação.
4. **Nunca invente problemas por "capricho crítico".** Todo ponto levantado tem justificativa específica (trecho, métrica, comparação).
5. **Nunca use overclaim nem em direção à crítica.** "Esse método é inadequado" só se sustenta com argumento técnico. Caso contrário: "esse método tem limitações X e Y que não foram endereçadas".
6. **Rubrica 0-100 com decisão**: ≥80 Aceitar | 65-79 Revisão Menor | 50-64 Revisão Maior | <50 Rejeitar. Não arredonde para ser simpático.
7. **Camada 1 (Semantic Scholar) é executada por script, não por texto livre.** Se o script não está disponível, marque no relatório "Tier 0 não executado" em vez de fingir que rodou.
8. **Devil's Advocate com concession threshold**: DA concede apenas se o contra-argumento do autor receber score ≥4 em escala 1-5. Após uma concessão, a barra da rodada seguinte sobe para 5/5. Protocolo canônico em `regras-comuns/references/concession-threshold.md`.
9. **Respeite a higiene de contexto.** Camadas 1 e 2 são executadas por scripts Python (não LLM); não tente replicar o que o script faz, apenas consuma o relatório dele. Se o manuscrito inteiro não couber no turno corrente, peça para processar seção por seção em vez de inflar o contexto.

---

## Protocolo de ativação

1. Identifique o modo do artigo (EMPIRICO, REVISAO, PSICOMETRICO) a partir de `context-artigo.md`.
2. Identifique o que o usuário quer verificar:
   - Seção específica → rode Camadas 2-3 dessa seção
   - Manuscrito completo → rode as 5 camadas
   - Só referências → rode Camada 1 + parte de referências da Camada 2
   - Gate pré-revisão (Estágio 4.5) → rode Camadas 1-3 (sem DA ainda)
   - Gate final (Estágio 7.5) → rode todas as 5 camadas, bloqueia se houver erro crítico
3. Verifique disponibilidade dos scripts em `scripts/`. Se ausentes, declare no relatório.
4. Execute as camadas em ordem. Não pule.
5. Produza o relatório no formato declarado ao final deste skill.

---

## As cinco camadas

```
┌─────────────────────────────────────────────────────────────┐
│ CAMADA 1: Automação (Tier 0, programática)                  │
│  Semantic Scholar API + CrossRef + DOI check                 │
│  Output: Tabela de referências com status                    │
├─────────────────────────────────────────────────────────────┤
│ CAMADA 2: Universal (todos os modos, todas as seções)       │
│  Escrita, citações APA, cross-check texto ↔ lista           │
├─────────────────────────────────────────────────────────────┤
│ CAMADA 3: Modo-específica                                    │
│  Checklist específico do modo (EMPIRICO/REVISAO/PSICOMETRICO)│
├─────────────────────────────────────────────────────────────┤
│ CAMADA 4: Reviewer 2 (simulação)                             │
│  8 perguntas estruturadas de reviewer cético                 │
├─────────────────────────────────────────────────────────────┤
│ CAMADA 5: Devil's Advocate (com concession threshold)       │
│  Desafia o argumento central                                 │
└─────────────────────────────────────────────────────────────┘

Cada camada produz score 0-100 + lista de issues.
Score final = média ponderada (ver references/rubrica.md).
```

Detalhes completos em `references/camadas.md`.

---

## Camada 1: Automação (Tier 0)

**O que faz**: verificação programática da existência e metadata correta de cada referência citada. Zero tolerância para referência fabricada.

**Script**: `scripts/verify_citations.py` v3.1 (Python stdlib + cache SQLite). Triangulação Crossref → OpenAlex → DataCite antes de reprovar qualquer DOI (referências com ID arXiv e sem DOI usam a cadeia arXiv → OpenAlex → DataCite; DOIs `10.48550/*` ganham o arXiv como quarto índice): falha de índice único nunca reprova referência válida (literatura em SciELO e PePSIC frequentemente não está no Semantic Scholar). Três classes determinísticas no nível de DOI: `VERIFIED`, `UNRESOLVED`, `FABRICATED_LIKELY` — `UNRESOLVED` nunca escala pra `FABRICATED_LIKELY` por falha de rede ou de índice; `FABRICATED_LIKELY` exige 404 definitivo nos três índices. Modo unitário `--doi <DOI>` / `--arxiv <ID>` / `--json` (consumido pela pesquisa-academica). Exit codes: 0 VERIFIED, 1 FABRICATED_LIKELY, 2 UNRESOLVED. Mecânica de triangulação adaptada do ARS v3.11.1 (Cheng-I Wu, CC BY-NC; ver `regras-comuns/references/ars-proveniencia.md`).

**Pipeline**:
1. Extrai citações do manuscrito (regex APA)
2. Extrai entradas da lista de referências (parser)
3. Cross-check: citação ↔ entrada
4. Para cada entrada com DOI: valida via triangulação Crossref → OpenAlex → DataCite
5. Para cada entrada sem DOI: busca no Semantic Scholar por título + autores, usa Levenshtein ≥ 0.70 para casamento
6. Flag inconsistências: ano, autor, et al., DOI

**Output**: tabela TSV com colunas `citacao | entrada | status | problema | doi_sugerido`.

Status possíveis: `VERIFIED`, `DOI_MISMATCH`, `AUTHOR_MISMATCH`, `YEAR_MISMATCH`, `NOT_FOUND`, `CITATION_WITHOUT_REFERENCE`, `REFERENCE_WITHOUT_CITATION`.

**Score**:
- 100: todas VERIFIED
- -5 por DOI_MISMATCH, AUTHOR_MISMATCH, YEAR_MISMATCH
- -15 por NOT_FOUND (provável fabricação)
- -10 por CITATION_WITHOUT_REFERENCE, REFERENCE_WITHOUT_CITATION

Score <70 aqui é bloqueante. Corrija antes de prosseguir.

**BLOQUEIO DE DOI**

**MODO 7-bis (Citation Metadata Hallucination)**: DOI correto NÃO é condição suficiente. Após confirmar que o DOI resolve, verificar título exato, revista exata, volume, número e páginas contra a fonte original. Qualquer divergência de metadados = BLOQUEANTE. Documento deve ser corrigido antes de prosseguir.

Detalhes em `references/camada-1-automacao.md`.

---

## Camada 2: Universal

Aplicável a todos os modos. Verifica:

**Escrita**:
- Sem travessões (—)
- Sem bullets no corpo (exceto APA-permitidos)
- Sem filler ("vale destacar", "é importante notar", "nesse sentido", "de fato", "em suma", "notavelmente")
- Sem overclaim ("prova", "demonstra definitivamente", "comprova")
- Prosa corrida, sem parágrafos de uma linha
- Consistência de terminologia (mesmo construto, mesmo nome)
- Separador decimal consistente com o idioma
- Padrões de AI-writing: detectar sinais característicos (ver `references/humanizer-academic.md`)

**Citações APA 7**:
- Formato correto para 1, 2, 3+ autores
- et al. usado só para 3+
- Ordem dos autores consistente entre citação e referência
- Ano consistente entre citação e referência
- Parafraseamento predominante, citações diretas raras

**Lista de referências**:
- Ordem alfabética
- Formato APA 7 por tipo (artigo, livro, capítulo, tese, manual)
- DOIs completos (`https://doi.org/...`)
- Volume em itálico, número não
- Sentence case em títulos

**Fidelidade de alegação (âncora por citação)**:
- DOI existir não basta: a fonte precisa sustentar o que o texto diz que ela sustenta (citação real com alegação não sustentada é tão grave quanto DOI fabricado; Zhao et al., arXiv:2605.07723).
- Toda citação central carrega âncora: o achado específico que sustenta a frase (N, efeito, página/seção ou quote de até 25 palavras).
- Passo de auditoria (amostral por padrão, completo sob demanda): buscar a fonte e julgar se ela sustenta a alegação.
- Checagem temporal anti-anacronismo: a fonte precisa ser anterior ao que supostamente sustenta. Paper de 2024 não documenta evento de 2026.

Detalhes em `references/camada-2-universal.md`.

**Score**: rubrica 0-100 com 15 itens. Ver rubrica.md.

---

## Camada 3: Modo-específica

Carregue **apenas** o arquivo correspondente ao modo identificado:

- Modo EMPIRICO → `references/camada-3-empirico.md`
- Modo REVISAO → `references/camada-3-revisao.md`
- Modo PSICOMETRICO → `references/camada-3-psicometrico.md`

No modo EMPIRICO, a seção de Resultados é verificada também contra `references/statistical_reporting_standards.md` (effect sizes, ICs, poder, pressupostos, red flags de p-hacking e HARKing).

**Fechamento obrigatório da camada**: rodar o checklist de `references/ai_research_failure_modes.md` (7 modos de falha de pesquisa com IA; Lu et al., 2026, Nature 651) e registrar no relatório cada modo checado e o resultado.

---

## Camada 4: Reviewer 2

Simulação de revisor cético. 8 perguntas estruturadas, cada uma com resposta justificada.

1. A contribuição é clara? O artigo deixa explícito o que acrescenta à literatura?
2. O método sustenta as conclusões? Há inferências que extrapolam o delineamento?
3. As referências são adequadas? Faltam trabalhos óbvios? Há autocitação excessiva?
4. A amostra é representativa da população-alvo declarada? Vieses não discutidos?
5. A análise é a mais adequada? Alternativas foram consideradas?
6. O framework teórico está coerente com os instrumentos e análises?
7. Há críticos do framework não citados?
8. O título reflete o conteúdo real do estudo?

Cada pergunta gera score 0-100 e lista de issues. Ver `references/camada-4-reviewer-2.md`.

**Fechamento obrigatório da camada**: antes de fixar o score, reavaliar as 8 respostas pelas três lentes de `references/review_quality_thinking.md` (validade interna, validade externa, contribuição).

---

## Camada 5: Devil's Advocate

Desafia o argumento central do artigo. Não é checklist, é confronto.

**Protocolo** (baseado em Imbad0202 v1.7):

1. Identifique o argumento central do artigo (uma frase)
2. Gere o melhor contra-argumento possível, fundamentado
3. Espere rebuttal do autor (quando houver)
4. **Concession threshold**: score o rebuttal em 1-5 conforme critérios:
   - 5: rebuttal apresenta evidência empírica nova que derruba o contra-argumento
   - 4: rebuttal mostra que o contra-argumento interpreta mal o artigo
   - 3: rebuttal é argumento teórico legítimo mas não conclusivo
   - 2: rebuttal é reformulação do artigo, sem nova evidência
   - 1: rebuttal é apelo à autoridade, ao consenso, ou à frustração
5. Concessão apenas com score ≥4
6. **Barra pós-concessão (5/5)**: se na rodada anterior houve concessão, nesta a barra sobe pra 5/5. Substitui o bloqueio absoluto de concessões consecutivas, que punia autor com dois argumentos bons em sequência.
7. **Taxa de concessão**: acima de 50% das rodadas dispara flag de auto-suspeição no relatório.
8. **Pressão não é evidência**: pushback repetido com o mesmo argumento não aumenta a nota.
9. **Frame-lock bidirecional**:
   - do autor: 3 insistências na mesma linha argumentativa sem nova evidência → o DA congela a posição e declara "argumentação circular detectada";
   - do avaliador: o DA não recicla objeção já respondida adequadamente; ao fechar, pergunta "existe premissa não examinada que nenhuma dimensão de ataque capturou?"

Protocolo canônico completo em `regras-comuns/references/concession-threshold.md` (herdado também por auditor-p e responde-comentarios).

O DA produz um relatório separado, não modifica o texto. O autor decide o que fazer com as objeções.

Detalhes em `references/camada-5-devil-advocate.md`.

---

## Cross-model verification (opcional, sob demanda)

Leia `references/cross-model.md` **somente se o usuário pedir explicitamente** verificação cross-model ou se o manuscrito for submissão Q1, validação central de mestrado, ou capítulo de tese. Para verificações rotineiras, não carregue este arquivo.

---

## Formato do relatório final

```
VERIFICAÇÃO DE ARTIGO — [Título curto]
Modo: [EMPIRICO | REVISAO | PSICOMETRICO]
Escopo: [seção X | manuscrito completo | gate 4.5 | gate 7.5]
Data: [data]
Camadas executadas: [1, 2, 3, 4, 5] ou subset

---
RESUMO EXECUTIVO

Score final: XX/100
Decisão recomendada: [ACEITAR | REVISÃO MENOR | REVISÃO MAIOR | REJEITAR]

Scores por camada:
Camada 1 (Automação): XX/100
Camada 2 (Universal): XX/100
Camada 3 (Modo): XX/100
Camada 4 (Reviewer 2): XX/100
Camada 5 (DA): XX/100

Erros críticos (bloqueantes): N
Atenções: N
Sugestões: N

---
CAMADA 1: AUTOMAÇÃO
[tabela de referências com status]

CAMADA 2: UNIVERSAL
[itens com status + justificativa]

CAMADA 3: MODO-ESPECÍFICA
[itens com status + justificativa]

CAMADA 4: REVIEWER 2
[8 perguntas + respostas]

CAMADA 5: DEVIL'S ADVOCATE
[argumento central + contra-argumento + rodadas de debate se houver]

---
AÇÕES OBRIGATÓRIAS ANTES DE SUBMISSÃO
1. [ação com localização no manuscrito e correção sugerida]
2. ...

AÇÕES RECOMENDADAS (não bloqueantes)
1. ...

DECISÕES DO AUTOR
1. ...
```

---

## Scripts

- `scripts/verify_citations.py` (v3.1): Camada 1 (triangulação Crossref → OpenAlex → DataCite + arXiv pra IDs arXiv, três classes, modo `--doi`/`--arxiv`/`--json`)
- `scripts/apa7_check.py`: Camada 2 (regex checks de formato)
- `scripts/claim_check.py`: Camada 4 (entailment claim ↔ source)

Scripts executáveis, testáveis, com exit codes. Não são prompts: são código.

---

## Configuração Opus 4.7 recomendada

Para verificação completa de manuscrito (todas as 5 camadas):
- `effort: xhigh` ou `max` (verificação rigorosa vale o custo)
- `task_budget: 80000` (comporta artigo inteiro + todas as camadas)
- Janela 1M permite artigo + bibliografia + sínteses NotebookLM simultaneamente

Para verificação de seção isolada:
- `effort: high`
- `task_budget: 30000`
