Overview
Validador semântico de citações: dado um documento (TCC, dissertação, artigo, parecer jurídico, matéria jornalística, due diligence) e as fontes originais em uploads/sources/ (PDF ou Markdown), verifica se cada citação direta e cada paráfrase reflete fielmente o que a fonte realmente diz. Complementa skills estruturais como br-abnt-citacao-cross-check com a próxima camada de revisão — não basta a citação existir na bibliografia; o que se atribui ao autor precisa de fato estar lá, com o sentido que o autor lhe deu.
Idiomas suportados: pt-BR e en. Não cobre tradução cruzada (citação em pt vs. fonte em en) — a v1 reporta esses casos como traducao-cruzada-fora-de-escopo.
Vereditos atribuídos
Cinco vereditos cobrem o universo de respostas possíveis:
| Veredito | Quando aplicar |
|---|---|
fiel | Citação direta bate com a fonte (ignorando whitespace, aspas tipográficas, travessões e diacríticos). Para paráfrase: o conteúdo da passagem-fonte sustenta a afirmação atribuída sem alteração material. |
parcialmente-fiel | Direta com omissão não-marcada (faltou [...]), troca tipográfica, ou paráfrase com ponto preservado mas modalidade, ênfase ou escopo alterados. |
distorcida | Passagem-fonte não sustenta a afirmação: troca de polaridade, atribuição cruzada, inserção de qualificadores, cherry-picking, desvio de escopo material, desvio temporal, ou desvio de função discursiva (hipótese vendida como fato). |
fonte-nao-encontrada | Fonte foi fornecida, mas a passagem citada não existe na página indicada nem em ±2 páginas adjacentes. Sugere erro de paginação ou citação fabricada. |
fonte-nao-fornecida | Nenhum arquivo em uploads/sources/ casa com a chave da citação. Sem material para comparar. |
O que esta skill não detecta
- Plágio invertido (texto não-citado que copia uma fonte).
- Falsidade da própria fonte (a fonte mente, mas a citação reproduz fielmente).
- Tradução incorreta entre idiomas.
- Mau uso de citação por contexto institucional (inflar bibliografia, etc.).
Example Conversation
You: Terminei meu TCC e quero fazer uma revisão de fidelidade — quero ter certeza de que minhas paráfrases não estão distorcendo nenhum dos autores que citei. O texto está em
output/tcc.mde subi as fontes emuploads/sources/.Agent: Vou rodar a tool
extract_citation_locino documento para listar todas as citações com a chave-fonte (<sobrenome>-<ano>) e o trecho direto precedente, quando houver. Depois cruzo com os arquivos emuploads/sources/.(reads
output/tcc.md, runsextract_citation_loci)Resultado da extração:
- 18 citações detectadas (5 diretas, 13 paráfrases).
- 7 chaves-fonte distintas:
severino-2017,silva-2020,marconi-lakatos-2017,gil-2017,bourdieu-1989,moreira-2019,cohen-swerdlik-2010.Cruzando com
uploads/sources/:
- 5 fontes encontradas (
severino-2017.pdf,silva-2020.pdf,marconi-lakatos-2017.pdf,gil-2017.pdf,bourdieu-1989.pdf).- 2 fontes faltando: moreira-2019 (linha 41) e cohen-swerdlik-2010 (linha 88). Você consegue subir?
You: O Moreira eu consultei online e não tenho o PDF — pode marcar como sem fonte. O Cohen & Swerdlik eu subo agora.
(user uploads
cohen-swerdlik-2010.pdf)Agent: Recebido. Vou rodar
extract_reading_ordernos 6 PDFs e processar cada citação. Começo pelas diretas (verdade-base objetiva), depois passo para as paráfrases.(verifies each direct quote with
verify_direct_quote_in_source, then reads source pages to judge each paraphrase)Concluído. 18 citações analisadas, 5 não-conformidades identificadas:
distorcida— linha 87 (Silva, 2020): você escreve “Silva (2020) demonstra que amostras pequenas e não-probabilísticas produzem padrões generalizáveis”. Na fonte (cap. 4), Silva diz que essas amostras “sugerem padrões que precisam ser confirmados em pesquisas posteriores”. Três distorções sobrepostas: (a)sugerem→demonstra(modalidade — hipótese vira fato); (b) omissão do qualificador “que precisam ser confirmados” (desvio de função discursiva); (c) “padrões” generalizados para “generalizáveis” (desvio de escopo).
distorcida— linha 142 (Severino, 2017): você escreve “todos os pesquisadores experientes revisam primeiro a estrutura argumentativa”. Na fonte (p. 50): “Alguns pesquisadores experientes preferem revisar a estrutura argumentativa antes de cuidar do estilo; outros invertem a ordem. Não há prescrição universal.” O qualificador “todos” não está na fonte — Severino diz explicitamente o oposto.
distorcida— linha 198 (Marconi; Lakatos, 2017): você atribui a M&L a frase “Não há observação inocente: toda descrição é, ao mesmo tempo, uma construção do objeto…”. Na fonte (p. 145), essa passagem é uma citação literal de Bourdieu (1989) reproduzida por M&L para discussão. Atribuição cruzada.
parcialmente-fiel— linha 220 (Gil, 2017): você escreve “Gil (2017) afirma que toda revisão de literatura deve identificar lacunas no campo”. A fonte (p. 51) lista quatro funções da revisão — identificar lacunas é uma delas, não a única função. Não é distorção, mas a paráfrase omite o contexto. Sugestão: “Gil (2017) inclui a identificação de lacunas entre as funções da revisão de literatura”.
fonte-nao-fornecida— linha 41 (Moreira, 2019): sem PDF/MD emuploads/sources/. Cita como “boa-fé interpretativa em pesquisa qualitativa”. Verifique se essa expressão consta na fonte antes de submeter.Quer que eu escreva o relatório completo em
output/citation-fidelity-report.md?You: Sim. E sobre a #3 (Marconi e Lakatos / Bourdieu): como devo corrigir?
Agent: Vou escrever o relatório primeiro.
(writes
output/citation-fidelity-report.md)Para a #3 você tem três opções:
- Citar Bourdieu diretamente (preferida se você tem ou consegue acessar a obra original):
(BOURDIEU, 1989, p. 27)e adicionar a referência à lista.- Usar a expressão apud (NBR 10520:2023 §6.1.2):
(BOURDIEU, 1989 apud MARCONI; LAKATOS, 2017, p. 145)— só M&L precisa estar na lista.- Reescrever a paráfrase atribuindo corretamente a citação no corpo da frase: “Marconi e Lakatos (2017, p. 145) reproduzem Bourdieu para discutir a reflexividade na observação…” — assim Bourdieu não é apresentado como fala de M&L.
Recomendo a opção 1 se possível, pois apud reflete leitura indireta e o leitor pode preferir saber se você foi à fonte primária. Qual prefere?
Sample Output Excerpt
Trecho de um relatório output/citation-fidelity-report.md gerado após rodar a skill no fixture de regressão (assets/fixture-artigo.md: artigo sintético com 10 citações plantadas — 6 fiéis, 3 distorcidas em modalidades diferentes, 1 sem fonte fornecida).
Citation Fidelity — relatório
Documento: output/fixture-artigo.md
Data: 2026-05-10
Idioma detectado: pt-BR
Fontes consultadas: 4 (severino-2017.md, silva-2020.md, marconi-lakatos-2017.md, gil-2017.md)
Fontes ausentes: 1 (moreira-2019)
Resumo executivo
- Citações analisadas: 10
fiel: 6 (60%)parcialmente-fiel: 0distorcida: 3 (30%)fonte-nao-encontrada: 0fonte-nao-fornecida: 1 (10%)
Tabela por citação
| ID | Linha | Citação | Fonte | Página | Veredito | Trecho-fonte | Explicação |
|---|---|---|---|---|---|---|---|
| c01 | 20 | Severino (2017, p. 42) | severino-2017 | 42 | fiel | “A pesquisa científica é um processo metódico…” (literal, score 1.0) | Direta literal bate com a fonte. |
| c02 | 22 | (SILVA, 2020) | silva-2020 | — | fiel | Cap. 3 sobre triangulação metodológica | Paráfrase preserva a cautela do original (“aplicada com critério”). |
| c03 | 24 | Silva (2020) | silva-2020 | — | fiel | “nenhum estudo isolado pode estabelecer validade de construto…” (literal, score 1.0) | Direta literal bate com a fonte. |
| c04 | 28 | (MARCONI; LAKATOS, 2017, p. 110) | marconi-lakatos-2017 | 110 | fiel | Tipologia da pesquisa (natureza, abordagem, objetivos, procedimentos) | Paráfrase enumera fielmente as 4 dimensões. |
| c05 | 30 | Gil (2017, p. 26) | gil-2017 | 26 | fiel | Critérios do problema bem formulado | Paráfrase preserva os 4 critérios. |
| c06 | 34 | (SEVERINO, 2017, p. 50) | severino-2017 | 50 | fiel | “A redação do trabalho acadêmico exige clareza…” (literal, score 1.0) | Direta literal bate com a fonte. |
| c07 | 38 | Silva (2020) | silva-2020 | — | distorcida | “amostras pequenas e não-probabilísticas sugerem padrões que precisam ser confirmados” | Três distorções: (a) sugerem → demonstra (§4.1 modalidade); (b) supressão de “precisam ser confirmados” (§4.8 função discursiva); (c) “padrões” → “padrões generalizáveis” (§4.6 escopo). |
| c08 | 40 | Severino (2017, p. 50) | severino-2017 | 50 | distorcida | “Alguns pesquisadores experientes preferem… outros invertem a ordem. Não há prescrição universal.” | §4.2 qualificador inserido: “alguns” universalizado para “todos os pesquisadores”. A fonte afirma explicitamente o oposto (“não há prescrição universal”). |
| c09 | 42 | Marconi e Lakatos (2017, p. 145) | marconi-lakatos-2017 | 145 | distorcida | A passagem é citação literal de Bourdieu (1989, p. 27) reproduzida por M&L | §4.3 atribuição cruzada: a fala é de Bourdieu, não de M&L. Corrija com citação direta ou expressão apud. |
| c10 | 46 | Moreira (2019, p. 17) | — | 17 | fonte-nao-fornecida | — | Arquivo moreira-2019.{pdf,md} ausente em uploads/sources/. |
Citações distorcidas — sugestões de correção
c07 (Silva, 2020) — linha 38
Silva (2020) demonstra que amostras pequenas e não-probabilísticas produzem padrões generalizáveis em estudos exploratórios.Sugestão: Silva (2020) observa que, em estudos exploratórios, amostras pequenas e não-probabilísticas sugerem padrões que precisam ser confirmados em pesquisas posteriores.
c08 (Severino, 2017) — linha 40
Conforme Severino (2017, p. 50), todos os pesquisadores experientes revisam primeiro a estrutura argumentativa e só depois cuidam do estilo.Sugestão: Severino (2017, p. 50) observa que alguns pesquisadores preferem revisar a estrutura argumentativa antes do estilo, embora não exista prescrição universal.
c09 (Marconi & Lakatos, 2017) — linha 42
Marconi e Lakatos (2017, p. 145) afirmam: “Não há observação inocente…"Sugestão (opção apud): “Não há observação inocente…” (BOURDIEU, 1989 apud MARCONI; LAKATOS, 2017, p. 145).
Citações sem fonte
moreira-2019(linha 46): subamoreira-2019.pdfemuploads/sources/e rode a skill novamente para verificar.
Extension Tools
A skill registra duas tools determinísticas — sem chamadas externas, sem consulta a LLM. A decisão semântica sobre paráfrases é tomada pelo agente lendo a fonte; as tools entregam a base auditável.
extract_citation_loci
Extrai todas as citações autor-data de um documento Markdown e devolve, para cada uma:
id— identificador estável (c001,c002…) usado no relatório.surname,year,page?— campos brutos.source_key— slug normalizado (<sobrenome>-<ano>, com suporte a co-autoria e entidades coletivas) usado para casar com arquivos emuploads/sources/.form—parenthetical/in-text/apud-original/apud-intermediary.raw,line— texto bruto da chamada e linha no documento.direct_quote?— trecho entre aspas imediatamente antes ou depois da chamada (cobre tanto"..." (Autor, ano)quantoAutor (ano) afirma: "...").
Heurísticas:
- Regex de citações parentéticas cobre forma canônica
(SILVA, 2020, p. 15), co-autoria(MARCONI; LAKATOS, 2017), entidades coletivas(BANCO CENTRAL, 2024)e apud. - Regex in-text captura
Severino (2017, p. 42),Marconi e Lakatos (2017),Smith and Jones (2020),Souza et al. (2022). - Stopwords em pt-BR e en evitam falsos-positivos como
Em (2020)ouAccording (2021). precedingQuotedSnippetolha 400 caracteres antes da chamada;followingQuotedSnippetolha até ~80 caracteres de conectivos antes da abertura de aspas (define que,afirma:,argues that).
verify_direct_quote_in_source
Verifica se um trecho citado aparece literalmente em um texto-fonte. Pipeline de normalização em três passos:
- Pré-processamento:
stripAbntMarkersremove marcadores ABNT NBR 10520:2023 ([...],[sic],[grifo nosso],[grifo do autor],[ênfase adicionada],[tradução nossa]) antes de comparar. A presença dos marcadores é registrada emmismatchescomomarcadores_abnt_presentes, não penalizada — uma omissão marcada é citação fiel, não infidelidade.- Normaliza whitespace, colapsa quebras de linha, e unifica aspas tipográficas (
"",'') e travessões (—,–) para suas formas ASCII.
- Pass 1 — match exato (preserva diacríticos, ignora caixa):
score = 1.0→fieldefinitivo. - Pass 2 — match accent-insensitive: registra
diacriticos_divergentesemmismatches,score = 0.95→fielcom nota. - Pass 3 — janela de sobreposição de palavras: desliza uma janela do tamanho da citação sobre o texto da fonte e calcula
overlap / window_size.score ≥ 0.7indica trecho reconhecível mas alterado (parcialmente-fieloudistorcidadependendo do contexto);score < 0.7é tratado como ausente.
Retorno: { found, score, position, snippet, mismatches[] }. A tabela completa de score → veredito está em references/heuristicas-fidelidade.md §3.
Por que não há tool para “veredito automático de paráfrase”
Paráfrases exigem leitura de contexto: o autor está citando outro? o parágrafo seguinte qualifica a afirmação? a fonte é uma hipótese ou um fato estabelecido? Essas decisões são feitas pelo agente, com a fonte aberta, seguindo as heurísticas em heuristicas-fidelidade.md (modalidade, qualificador, atribuição cruzada, cherry-picking, polaridade, escopo, tempo, função discursiva). A skill explicitamente proíbe vereditos sobre paráfrases sem leitura da fonte — não há verify_paraphrase automático, e isso é intencional.
Getting Started
Suba o documento a auditar em
output/(ex.:output/tcc.md,output/artigo.md,output/parecer.md). Markdown é o formato recomendado — se você tem.docx, peça à skilloffice-to-markdownpara converter antes.Suba as fontes citadas em
uploads/sources/, uma por obra. Aceitos:.pdf(preferível para fontes paginadas) e.md(para fontes já extraídas). Nomeie cada arquivo com o slug<sobrenome>-<ano>:silva-2020.pdfmarconi-lakatos-2017.pdf(co-autoria)severino-2017a.pdf,severino-2017b.pdf(letra distintiva ABNT)banco-central-do-brasil-2024.pdf(entidade coletiva)
Sufixos descritivos são aceitos:
silva-2020-direito-civil.pdf.Inicie a sessão pedindo: “Verifique a fidelidade das citações em output/tcc.md contra as fontes em uploads/sources/.” A skill faz primeiro um inventário, alerta sobre fontes faltando e só então roda a análise.
Revise o relatório em
output/citation-fidelity-report.md. Para cada distorção, a skill oferece sugestões de correção — mas não corrige silenciosamente. Você decide se aceita a sugestão, reformula, ou substitui por outra fonte.Re-execute após cada correção: a skill é determinística e barata, use sem cerimônia até o relatório ficar limpo.
Funciona melhor depois de já ter passado pelo cross-check estrutural (br-abnt-citacao-cross-check) — primeiro confirme que todas as citações têm referência na lista, depois confirme que cada citação reflete a fonte. As duas skills se complementam: estrutura primeiro, semântica depois.