Overview
Validador cruzado (não-gerador) que cruza as citações no corpo do texto com a lista de referências de um TCC, dissertação, tese ou artigo científico em ABNT e devolve um relatório estruturado de não-conformidades — pronto para revisão pré-banca, pré-submissão a periódico ou conferência por bibliotecário.
Complementa a skill br-abnt-referencias-citacoes (que valida cada entrada isoladamente conforme NBR 6023:2025 e NBR 10520:2023). Aqui o foco é a coerência entre texto e lista: um trabalho pode ter referências bem formatadas e ainda assim conter citações sem entrada correspondente, ou entradas que nunca são citadas.
O que é detectado
Sete tipos de não-conformidade, separados por severidade:
| # | Tipo | Severidade |
|---|---|---|
| 1 | Citação órfã — chamada no texto sem entrada correspondente na lista | crítica |
| 2 | Referência não citada — entrada na lista nunca aparece no texto | crítica |
| 3 | Divergência de ano — mesmo autor citado com ano X, referência tem ano Y | crítica |
| 4 | Grafia de autor inconsistente — variação para além de acentuação (Levenshtein ≤ 2, mesmo ano) | aviso |
| 5 | apud quebrado — autor intermediário ausente, ou obra original listada indevidamente | crítica |
| 6 | Citação direta sem página — trecho entre aspas com chamada sem p. XX | aviso |
| 7 | Ambiguidade de letra distintiva — duas obras do mesmo autor/ano na lista sem a/b | aviso |
A skill não corrige nada: reporta a não-conformidade, oferece sugestões e aguarda decisão do usuário antes de editar o texto.
Example Conversation
You: Terminei meu TCC e quero auditar a bibliografia antes da banca. Pode rodar um cross-check em
output/tcc.md?Agent: Vou rodar a tool
cross_check_citacoes_referenciasno documento. Ela extrai todas as citações no padrão autor-data (parentéticas e in-text, incluindo apud e multi-obra) e cruza com as entradas da seção## Referências.(reads
output/tcc.md, runscross_check_citacoes_referenciaswith the contents)Resultado do cross-check:
- 42 citações detectadas no texto
- 38 entradas na lista de referências
- 38/42 citações cobertas (90%)
- 6 não-conformidades (críticas: 4, avisos: 2)
Os pontos mais graves:
Citação órfã (linha 87):
(MOREIRA, 2019)— não há nenhum Moreira de 2019 na lista de referências. Você consultou essa obra? Se sim, posso te ajudar a formatar a entrada com a skillbr-abnt-referencias-citacoes. Se não, talvez seja melhor remover a citação.Divergência de ano (linha 142): texto cita
(SILVA, 2021, p. 45), mas na lista a entrada de Silva está datada de 2020. Provavelmente um typo — qual é o ano correto?apud quebrado (linha 198): você cita
(BACHELARD, 1938 apud JAPIASSU, 1992, p. 17)mas o Japiassu, 1992 (a obra que você efetivamente leu) não está na lista. A NBR 10520:2023 §6.1.2 exige que apenas a obra consultada seja referenciada.Referência não citada (linha 312 da lista):
PESSOA, F. Mensagem. 1934.— está na bibliografia mas você nunca cita Pessoa no texto. Remover, ou faltou citar?Os 2 avisos são de menor urgência:
- linha 156:
"a pesquisa é um processo metódico" (SEVERINO, 2017)— citação direta (entre aspas) sem indicação de página. Acrescentarp. XX.- linha 67: grafia inconsistente — você cita
(SOUZA, 2022)mas a referência é deSOUSA, João Pedro(distância ortográfica 1, mesmo ano). Conferir qual é o sobrenome correto.Quer que eu escreva o relatório completo em
output/citacao-cross-check-report.md?You: Sim, escreve o relatório. E sobre o Moreira — eu consultei mesmo. Era uma resenha que vi no Google Scholar. Pode adicionar à lista?
Agent: Vou escrever o relatório primeiro.
(writes
output/citacao-cross-check-report.mdwith the full markdown report)Para adicionar a entrada do Moreira preciso de alguns dados:
- Nome completo do autor (sobrenome + prenome)
- Título do trabalho
- Tipo: é um artigo de periódico, capítulo de livro, livro, ou outro?
- Local, editora/periódico, ano (2019, já confirmado)
- Se for online: URL e data de acesso
Quando você me passar isso, eu uso
formatar_referencia(da skillbr-abnt-referencias-citacoes) para gerar a entrada conforme NBR 6023:2025 e adiciono na lista. Depois rodamos o cross-check de novo para confirmar que a não-conformidade saiu.You: É um artigo: Moreira, A. F. B. “Currículo, cultura e formação de professores”. Educar em Revista, n. 17, p. 39-52, 2019.
Agent: Perfeito. Formato:
MOREIRA, Antonio Flavio Barbosa. Currículo, cultura e formação de professores. Educar em Revista, Curitiba, n. 17, p. 39-52, 2019.
Aviso: o artigo é de periódico mas você não me passou DOI nem URL. A NBR 6023:2025 recomenda DOI quando disponível — vale procurar no portal da revista. Posso adicionar a entrada como está (com placeholder
[DOI a confirmar]) e te avisar para checar?
Sample Output Excerpt
Trecho de um relatório output/citacao-cross-check-report.md gerado pela skill após rodar cross_check_citacoes_referencias no fixture de regressão (TCC sintético com 7 não-conformidades plantadas — uma por categoria).
Cross-check de citações e referências — relatório
Documento: output/tcc.md
Data: 2026-05-10
Norma: ABNT NBR 10520:2023 + NBR 6023:2025
Resumo
- Citações detectadas no texto: 8
- Entradas na lista de referências: 9
- Citações cobertas pela lista: 7/8 (88%)
- Não-conformidades: 6 (críticas: 4, avisos: 2)
Não-conformidades
1. Citações órfãs (críticas)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 7 | Moreira (2019) | Citação MOREIRA, 2019 sem entrada correspondente na lista de referências. | Adicione a referência completa à lista, ou remova a citação se a obra não tiver sido efetivamente consultada. |
2. Referências não citadas (críticas)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 34 | PESSOA, Fernando. **Mensagem**. Lisboa: Parceria António Maria Pereira, 1934. | Entrada na lista de referências sem citação correspondente no texto: PESSOA, 1934. | Remova a entrada da lista, ou cite a obra no texto se for relevante. |
3. Divergências de ano (críticas)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 13 | Silva (2021, p. 45) | Texto cita SILVA, 2021 mas a referência correspondente está datada de 2020. | Corrija o ano na citação ou na referência. Verifique a fonte original. |
4. Grafia de autor inconsistente (avisos)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 18 | (SOUZA, 2022) | Citação SOUZA ≠ referência SOUSA (distância ortográfica baixa, mesmo ano). | Unifique a grafia. Atenção a acentos, hífens e abreviações. |
5. apud — autor intermediário ausente ou obra original listada
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 22 | (BACHELARD, 1938 apud JAPIASSU, 1992, p. 17) | apud quebrado: autor intermediário JAPIASSU (1992) não está na lista de referências. | Adicione a obra consultada (JAPIASSU, 1992) à lista. A NBR 10520:2023 §6.1.2 exige que apenas a obra consultada (intermediária) seja referenciada. |
6. Citação direta sem página (avisos)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 26 | (SEVERINO, 2017) | Trecho entre aspas (A pesquisa científica é um processo metódico…) seguido de citação sem indicação de página. | Citação direta deve incluir página: ex. ‘(SILVA, 2020, p. 15)’. |
7. Ambiguidade de letra distintiva (avisos)
| # | Linha | Item | Detalhe | Sugestão |
|---|---|---|---|---|
| 1 | 30 | (SILVA, 2020) | Há 2 entradas para SILVA, 2020 na lista. A NBR 10520 exige letra distintiva (a, b, …) na citação para desambiguar. | Adicione letra distintiva à citação (SILVA, 2020a / SILVA, 2020b …) e às referências correspondentes. |
Observações
- Falsos-positivos podem ocorrer para entidades citadas por sigla (ex.:
(ABNT, 2025)cuja referência começa porASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS). Adicione a sigla entre parênteses no início da referência, ou ignore o aviso após verificação manual. - Citações diretas longas (recuo de 4 cm, sem aspas) não são analisadas pelo heurístico de “citação direta sem página”.
- Comunicação pessoal pode legitimamente não constar da lista (NBR 10520:2023 §6.3.4). Conteúdo gerado por IA, ao contrário, deve ter entrada na lista conforme NBR 6023:2025 seção 9.
Extension Tools
A skill registra uma única ferramenta TypeScript determinística — sem chamadas externas e sem consultar LLM para a decisão de match:
cross_check_citacoes_referencias — recebe o texto do documento (Markdown) e, opcionalmente, a lista de referências em separado. Executa três fases:
Fase 1 — Extração de citações
Três regex coordenadas varrem o texto:
- Parentéticas —
(SILVA, 2020, p. 15),(GIL, 2017; SEVERINO, 2017)(multi-obra),(SILVA, 2018, 2020, 2022)(multi-ano),(SOUZA et al., 2022),(MARCONI; LAKATOS, 2017)(co-autoria de uma única obra detectada quando apenas o último segmento tem ano). - In-text —
Severino (2017, p. 42),Marconi e Lakatos (2017),Souza et al. (2022). Stopwords comoEm,Para,Segundo,Como,Conformesão filtradas para evitar falsos-positivos. - apud —
(BACHELARD, 1938 apud JAPIASSU, 1992, p. 17)produz duas entradas: a original (sem exigência de estar na lista) e a intermediária (que deve estar).
Entidades multi-token como (SÃO PAULO, 2023) ou (BANCO CENTRAL DO BRASIL, 2024) são suportadas. Para cada citação a tool registra também o trecho entre aspas precedente (quando houver) — usado depois para flagar citação direta sem página.
Fase 2 — Extração de referências
Localiza a seção ## Referências (ou ## Referências bibliográficas, ou ## Bibliografia com aviso) e quebra em entradas por parágrafo. Cada entrada é classificada por:
- Autoria pessoal — primeiro bloco em CAIXA ALTA seguido de vírgula (
GIL, Antonio Carlos...). - Entidade coletiva — bloco em CAIXA ALTA opcionalmente seguido de qualificador entre parênteses, depois ponto (
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS.,SÃO PAULO (Município).). - Ano — primeiro número de 4 dígitos
19xxou20xx, com letra distintiva opcional (2020a).
Entradas que não inicia com nenhum dos dois padrões são ignoradas com aviso de parsing — evita ruído de cabeçalhos, notas de rodapé ou texto de transição.
Fase 3 — Política de match em cascata
Para cada citação extraída, a tool tenta casar com a lista de referências em ordem de prioridade:
- Match exato por sobrenome normalizado + ano — único candidato → casada. Múltiplos candidatos com letra distintiva → casa pela letra; sem letra → reporta ambiguidade.
- Match por sobrenome (ano divergente) — mesmo autor, ano diferente → reporta divergência de ano (crítica).
- Fuzzy match por ano (sobrenome divergente) — Levenshtein ≤ 2 sobre os sobrenomes normalizados, mesmo ano → reporta grafia inconsistente (aviso). Acentos são absorvidos pela normalização, então
JAPIASSÚvsJAPIASSUé considerado match exato. - Nenhum match — reporta citação órfã (crítica), ou apud quebrado se a citação for o intermediário de uma expressão apud.
Para cada referência da lista que nunca tenha sido casada com alguma citação: reporta referência não citada.
A normalização de sobrenomes faz lowercase + remoção de diacríticos (NFD strip) + remoção de não-letras. SÃO PAULO → saopaulo, JAPIASSÚ → japiassu, D'AMBROSIO → dambrosio.
Saída
A tool devolve:
nao_conformidades— array tipado com{ tipo, citacao_ou_referencia, detalhe, sugestao, linha, severidade }.resumo— contagens (citações detectadas, referências detectadas, % cobertura, críticas, avisos).relatorio_markdown— relatório completo pronto para escrever emoutput/citacao-cross-check-report.md.avisos_parsing— entradas da lista de referências que foram ignoradas por não casarem com nenhum dos formatos esperados.
Limitações conhecidas (documentadas)
- Siglas de entidades: a tool não resolve
(ABNT, 2025)paraASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICASautomaticamente — reporta como órfã e recomenda adicionar a sigla entre parênteses no início da referência (ASSOCIAÇÃO ... (ABNT). ...). Trade-off intencional: melhor um falso-positivo silenciável do que um falso-negativo silencioso. - Citações em notas de rodapé: TCCs em humanidades e direito frequentemente usam notas numeradas. Se as notas não estiverem em texto inline Markdown, suas citações não são analisadas.
- Citações diretas longas (recuo de 4 cm, sem aspas) não disparam o heurístico de “citação direta sem página”.
- Comunicação pessoal (NBR 10520:2023 §6.3.4) e citações de entrevista presencial podem legitimamente não constar da lista — marque como falso-positivo após confirmação com o autor.
A skill validada por 9 testes automatizados (extension.test.ts) cobre cada uma das 7 categorias de não-conformidade, o happy path (zero achados) e o caminho de erro (lista de referências ausente).
Getting Started
A skill br-abnt-citacao-cross-check é instalada com dependência automática em br-abnt-referencias-citacoes — a partir dela, qualquer correção sugerida no relatório (adicionar uma referência, refazer uma citação apud, formatar uma entrada de IA conforme NBR 6023:2025 seção 9) pode ser executada na mesma conversa.
Pré-requisitos para o cross-check funcionar bem:
- Documento em Markdown — TCC, dissertação, tese ou artigo, geralmente em
output/tcc.mdououtput/artigo.md. - Seção de referências detectável — um cabeçalho
## Referências(ou## Bibliografia, com aviso) marca o início da lista. A skill encerra a lista no próximo cabeçalho de mesmo nível ou no fim do arquivo. - Entradas no formato ABNT NBR 6023:2025 — cada referência deve começar com o sobrenome do autor em CAIXA ALTA seguido de vírgula, ou com o nome de uma entidade coletiva em CAIXA ALTA seguido de ponto.
Quando usar:
- Auditoria pré-banca de TCC, dissertação ou tese.
- Conferência pré-submissão a periódico ou evento.
- Revisão por orientador, bibliotecário ou pesquisador.
- Validação de bibliografia em texto migrado entre gerenciadores de referência (Zotero, Mendeley) — útil para detectar perdas durante exportação.
Quando NÃO usar:
- Para formatar uma nova referência ou citação isolada — use
br-abnt-referencias-citacoes(ferramentasvalidar_referencia_abnt,validar_citacao_abnt,formatar_referencia). - Para verificar se a paráfrase reflete o conteúdo da fonte original — esse é o trabalho da skill irmã
citation-source-fidelity. - Para estilos não-ABNT (APA, Vancouver, IEEE).
Confirme com a biblioteca da IES qual edição da NBR 6023 a instituição adotou. Para o cross-check estrutural a diferença entre 6023:2018 e 6023:2025 é irrelevante na maioria dos casos — a exceção é conteúdo gerado por IA, cuja forma de referência prescrita só existe na 6023:2025 (seção 9). Se a IES ainda usa 6023:2018 e o trabalho cita IA, a skill reporta que aquele tipo de documento não tem forma prevista na versão antiga da norma.