CommunityPesquisa e Análise de Dadosgithub.com

ASI2030/Fact-Check-X

Suíte de habilidades para verificação de fatos baseada em evidências, garantindo reprodutibilidade e comparação de respostas com fontes verificáveis.

O que é Fact-Check-X?

O Fact-Check-X é uma suíte de habilidades (skills) projetada para agentes de IA como Claude Code, Cursor ou Codex, que automatiza o processo completo de verificação de fatos com rastreabilidade de fontes. Ele orquestra três habilidades irmãs em sequência: coleta de respostas e referências de múltiplas plataformas (llm-answer-reference-compare), comparação estruturada de conhecimentos locais (fact-check-x-knowledge-compare, opcional) e verificação autoritativa por ponto de conhecimento com buscas concorrentes em fontes confiáveis (fact-check-x-authoritative-verify). O agente executa toda a lógica de decomposição semântica e julgamento de evidências localmente, sem chamar APIs de modelo. A suíte gera quatro relatórios progressivos (captura, comparação, autoridade e final), além de um pacote zip consolidado. É útil para cenários onde a precisão factual e a auditabilidade são críticas, como jornalismo, pesquisa acadêmica ou moderação de conteúdo. A configuração de busca confiável é automatizada via login único no DeepSeek MaaS, dispensando manipulação manual de chaves. As habilidades se comunicam por arquivos JSON e scripts Python, com validação integrada para garantir a integridade do pipeline.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add ASI2030/Fact-Check-X

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Fact-Check-X — Entrada Unificada

Esta habilidade apenas orquestra, não incorpora as três camadas de negócio. Ela chama as habilidades irmãs na seguinte ordem:

  1. llm-answer-reference-compare: Coleta de respostas, referências e evidências de múltiplas plataformas.
  2. fact-check-x-knowledge-compare: Comparação estruturada de pontos de conhecimento locais (opcional).
  3. fact-check-x-authoritative-verify: Verificação autoritativa concorrente de cada ponto de conhecimento e relatório de desempenho das plataformas.

Toda decomposição semântica e julgamento de evidências é realizado pelo agente que carrega a habilidade. O script não chama nenhuma API de modelo.

Localização de Dependências

As quatro habilidades podem ser executadas diretamente se estiverem no mesmo diretório. Alternativamente, configure:

export FACTCHECK_SKILLS_DIR="<diretório pai das quatro habilidades>"

Verifique as dependências:

python3 scripts/fact_check_x.py locate

Fluxo Completo

Primeiro, colete o results.json, depois prepare a comparação de pontos de conhecimento:

python3 scripts/fact_check_x.py prepare-comparison \
  --results <results.json> \
  --run-dir <run>

O comando gera sincronamente o relatório de respostas e referências originais, criando 01-capture-report.html no diretório raiz da execução, e retorna o caminho visível ao usuário via deliverables. O chamador deve primeiro enviar um link real para o arquivo Markdown usando esse caminho antes de prosseguir com a comparação de pontos de conhecimento; é proibido exibir apenas o caminho entre crases.

No modo interativo padrão, após enviar o artefato desta fase, o chamador deve perguntar ao usuário se deseja "continuar para o próximo passo", "corrigir o resultado atual" ou "encerrar aqui e manter os artefatos". Somente após receber a instrução de continuar é que se avança para a próxima fase. A execução contínua só é permitida se o usuário solicitou explicitamente a execução completa automática desde o início, mas os artefatos de cada fase ainda devem ser apresentados gradualmente.

O agente atual lê <run>/comparison-task.json, escreve <run>/comparison-analysis.json e, em seguida, executa:

Durante a decomposição, a atomicidade se aplica tanto aos pontos de conhecimento quanto às claims de cada plataforma. Uma sentença original que contenha múltiplas obrigações, condições, objetos, valores ou consequências independentes deve ser dividida em vários pontos, cada claim mantendo apenas o fato atual. Fatos novos substantivos exclusivos de uma plataforma também devem ser tratados como pontos de conhecimento independentes, sem âncora, e não podem ser incorporados a um ponto de conhecimento amplo reutilizando uma âncora de conhecimento profundo para evitar verificação.

python3 scripts/fact_check_x.py complete-comparison \
  --results <results.json> \
  --run-dir <run>

O comando gera 02-comparison-report.html no diretório raiz da execução e retorna o caminho via deliverables; o chamador deve apresentá-lo ao usuário como um arquivo clicável independente. O relatório deve conter um rascunho consolidado explicitamente marcado como "não verificado". No modo interativo padrão, a verificação autoritativa só pode prosseguir após confirmação do usuário.

Gere solicitações independentes na nuvem para cada ponto de conhecimento e realize a coleta concorrente de evidências:

python3 scripts/fact_check_x.py prepare-authority --run-dir <run>
python3 scripts/fact_check_x.py search-authority --run-dir <run> --max-workers 12

Se houver pontos de conhecimento não isentos de verificação, mas a máquina ainda não tiver uma configuração de busca confiável, prepare-authority e search-authority retornarão status=configuration_required, userPrompt e configuration.command, saindo com código de erro diferente de zero. O chamador primeiro exibe o prompt de login e, em seguida, executa o comando em primeiro plano. O usuário só precisa fazer login na página do DeepSeek MaaS que abre automaticamente; o componente reutiliza automaticamente qualquer chave completa existente ou, se não houver, cria uma chave dedicada para Fact-Check-X, valida e salva em ~/.fact-check-x/credentials/trusted-search-key. Codex, Claude Code, WorkBuddy e outros ambientes compartilham essa configuração; se uma chave já existir, o login é ignorado. Após a configuração bem-sucedida, o chamador reexecuta automaticamente prepare-authority sem solicitar que o usuário copie a chave, edite configurações do shell ou responda "configurado", e não deve contornar usando fontes DeepSeek ou buscas comuns.

A chave existente só é considerada inválida quando a busca confiável retorna 401/403, iniciando a configuração automática. Timeouts, falta de rede ou erros de serviço mantêm a configuração existente e tentam novamente automaticamente; se a retentativa falhar, a execução permanece na fase de busca retornando um erro técnico, sem exigir que o usuário faça login novamente ou converter para verificação manual.

prepare-authority escreve authority-gate.json. O comando finalize-authority só pode ser executado após o lote de busca confiável ser concluído normalmente e o status do gate mudar para searched; escrever manualmente evidence ou result não contorna essa verificação.

O agente atual lê authority/requests e authority/evidence um por um, escreve o julgamento em authority/assessments/<ID-do-ponto-de-conhecimento>.json e então:

No modo de isenção, trustedAnchor.officialAnswer é a conclusão autoritativa para o ponto de conhecimento atual; a lista de evidências de âncora é usada para rastreamento de fontes, não sendo necessário que o título ou o resumo truncado repitam textualmente essa conclusão. Quando a alegação da plataforma é semanticamente consistente com officialAnswer ou pode ser diretamente derivada dela, o veredito é supported, citando IDs de evidências de âncora válidos. Apenas quando a alegação da plataforma adiciona fatos substantivos que a conclusão autoritativa não pode suportar, ou quando realmente não é possível determinar, usa-se insufficient. A fidelidade às referências da fase de comparação de pontos de conhecimento e a correção factual desta fase são mantidas separadamente; não se pode recusar julgar uma alegação já confirmada pela conclusão autoritativa apenas porque a plataforma não forneceu referências suficientes.

{
  "authoritativeFinding": "Conclusão do ponto de conhecimento suportada por evidências autoritativas",
  "verdicts": {
    "<ID-da-plataforma>": {
      "verdict": "supported",
      "reason": "Alegação consistente com E1",
      "evidenceIds": ["E1"]
    }
  }
}

verdict só pode ser supported, contradicted ou insufficient; os IDs de evidência devem existir no arquivo de evidências atual. Os antigos campos verdict, officialAnswer e platformAssessment no nível superior serão rejeitados.

python3 scripts/fact_check_x.py finalize-authority --run-dir <run>

finalize-authority gera a resposta final após a verificação autoritativa: inclui pontos de conhecimento com evidências suficientes na resposta definitiva, escreve pontos com evidências insuficientes em evidenceGaps e os exclui da resposta definitiva e do denominador da taxa de precisão. Desde que o pipeline técnico tenha sido bem-sucedido, o comando retorna status=completed e o chamador prossegue para o quarto passo. A execução só para e tenta novamente a fase atual se o comando técnico retornar código de erro diferente de zero.

Após concluir os julgamentos, finalize-authority gera independentemente 03-authority-report.html e retorna o caminho via deliverables. O chamador deve primeiro apresentar este relatório de autoridade; no modo interativo padrão, somente se o status for completed e o usuário confirmar a continuação, executa-se:

python3 scripts/fact_check_x.py deliver --results <results.json> --run-dir <run>

Quando a busca confiável retorna no_evidence, registra-se como insufficient_evidence: resultado vazio significa apenas que nenhum material julgável foi obtido desta vez, não podendo ser diretamente classificado como "fabricado"; após registrar os limites das evidências, continua-se gerando os relatórios subsequentes.

deliver deve gerar e retornar quatro relatórios independentes e legíveis no diretório raiz da execução:

  • 01-capture-report.html: Respostas originais, referências bibliográficas e evidências de citação;
  • 02-comparison-report.html: Comparação estruturada de pontos de conhecimento;
  • 03-authority-report.html: Conclusões autoritativas por ponto de conhecimento, evidências oficiais e julgamentos de cada plataforma;
  • 04-final-report.html: Desempenho da plataforma, métricas compostas, descobertas principais e evidências completas.

Se faltar algum relatório, 05-complete-report-package.zip não pode ser gerado ou entregue.

Artefatos finais preservados:

  • capture/results.json, capture/report.html, capture/report.md;
  • comparison-task.json, comparison-analysis.json, comparison.json, comparison.html;
  • Para cada ponto de conhecimento: request, evidence, assessment, result;
  • authority/batch.json, verification.json, report.html, pipeline.json;
  • Quatro relatórios de fase e 05-complete-report-package.zip.

Pulando a Comparação de Pontos de Conhecimento

A comparação de pontos de conhecimento é uma capacidade opcional. Quando pontos de conhecimento já estão estruturados, é possível estabelecer solicitações de ponto único diretamente de acordo com o contrato de dados do módulo de verificação autoritativa e chamar fact-check-x-authoritative-verify de forma independente. A entrada unificada não força o usuário a coletar múltiplas respostas de IA primeiro.

Limites de Execução

  • A fase de respostas originais apenas coleta, não verifica; parâmetros de busca confiável de texto completo podem ser usados para completar o texto da mesma fonte já fornecida pela plataforma, mas não é permitido adicionar ou substituir referências.
  • A comparação de pontos de conhecimento apenas compara as respostas originais com as fontes anexadas, sem buscar a verdade online.
  • A camada de nuvem recebe apenas o ponto de conhecimento atual; se as alegações forem idênticas entre plataformas, não são enviadas; diferenças são enviadas.
  • DeepSeek não repete a busca se já houver uma âncora oficial qualificada.
  • O relatório final deve usar o renderizador estável do módulo de verificação autoritativa.

Portão de Entrega

python3 tests/smoke_test.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .

Critérios completos em Critérios de Aceitação.

Habilidades Relacionadas