ASI2030/Fact-Check-X

Suite de habilidades de verificación de hechos basada en evidencia para la reproducibilidad de fuentes y comparación de respuestas.

¿Qué es Fact-Check-X?

Fact-Check-X es un conjunto de habilidades para agentes de IA que implementa un flujo de trabajo completo de verificación de hechos, priorizando la evidencia sobre las afirmaciones. Está diseñado para entornos como Claude Code, Cursor, Codex, etc., y orquesta tres habilidades hermanas: captura de respuestas y referencias de múltiples plataformas, comparación estructurada de conocimiento local y verificación autoritativa concurrente de cada punto de conocimiento. El flujo comienza con la recolección de resultados sin verificar, luego compara las afirmaciones con sus fuentes, y finalmente verifica cada punto contra fuentes autoritativas confiables (como el servicio de búsqueda confiable DeepSeek), generando informes HTML independientes para cada etapa. La habilidad no realiza inferencia de modelos por sí misma, sino que depende del agente anfitrión para la descomposición semántica y el juicio de evidencia. Es particularmente útil para periodistas, investigadores y desarrolladores que necesitan un proceso reproducible y auditable para verificar afirmaciones hechas por modelos de lenguaje o sistemas multiagente.

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

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Fact-Check-X 统一入口

Esta habilidad solo realiza orquestación, no incluye las tres capas de negocio. Llama a las habilidades hermanas en el siguiente orden:

  1. llm-answer-reference-compare: Recopilación de respuestas, referencias y evidencia de múltiples plataformas.
  2. fact-check-x-knowledge-compare: Comparación estructurada de conocimiento local (opcional).
  3. fact-check-x-authoritative-verify: Verificación autoritativa concurrente de cada punto de conocimiento y generación de informes de rendimiento de plataformas.

Toda la descomposición semántica y el juicio de evidencia son realizados por el agente que ejecuta la habilidad. El script no llama a ninguna API de modelo.

Ubicación de dependencias

Si las cuatro habilidades están en el mismo directorio, se pueden ejecutar directamente. También se puede configurar:

export FACTCHECK_SKILLS_DIR="<directorio padre de las cuatro habilidades>"

Verificar dependencias:

python3 scripts/fact_check_x.py locate

Flujo completo

Primero, recopilar results.json, luego preparar la comparación de puntos de conocimiento:

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

El comando genera sincrónicamente el informe de respuestas y referencias originales, crea 01-capture-report.html en la raíz del directorio de ejecución y devuelve la ruta visible para el usuario a través de deliverables. La entidad llamante debe primero enviar el enlace real del archivo Markdown con esa ruta antes de continuar con la comparación de puntos de conocimiento; está prohibido mostrar solo la ruta entre acentos graves.

En el modo interactivo predeterminado, después de enviar el producto de esta fase, la entidad llamante debe preguntar al usuario si desea "continuar al siguiente paso", "corregir el resultado actual" o "terminar aquí y conservar el producto". Solo después de recibir la instrucción de continuar se puede pasar a la siguiente fase. Solo si el usuario solicita explícitamente en la solicitud inicial que se ejecute automáticamente de principio a fin se puede ejecutar de forma continua, pero los productos de cada fase aún deben mostrarse paso a paso.

El agente actual lee <ejecución>/comparison-task.json, escribe <ejecución>/comparison-analysis.json y luego ejecuta:

Al descomponer, la atomicidad restringe tanto el punto de conocimiento como las claim de cada plataforma. Una oración original que contenga múltiples obligaciones, condiciones, objetos, valores o consecuencias independientes debe dividirse en puntos, y cada claim debe contener solo el hecho actual; los hechos sustanciales nuevos exclusivos de una plataforma también deben convertirse en puntos de conocimiento separados sin anclaje, sin fusionarse en puntos de conocimiento amplios y reutilizando anclajes de DeepSeek para evitar la verificación.

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

El comando genera 02-comparison-report.html en la raíz del directorio de ejecución y devuelve la ruta a través de deliverables; la entidad llamante debe mostrarlo al usuario como un archivo independiente en el que se pueda hacer clic. El informe debe incluir un borrador completo claramente marcado como "no verificado". En el modo interactivo predeterminado, se debe esperar la confirmación del usuario para continuar con la verificación autoritativa.

Generar solicitudes independientes para cada punto de conocimiento y realizar la recolección de evidencia de forma concurrente:

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

Si existen puntos de conocimiento que no están exentos de verificación pero la máquina local no tiene una configuración de búsqueda confiable, prepare-authority y search-authority devolverán status=configuration_required, userPrompt y configuration.command y saldrán con un estado distinto de cero. La entidad llamante primero muestra un aviso de inicio de sesión y luego ejecuta el comando en primer plano. El usuario solo necesita iniciar sesión en la página de MaaS de DeepSeek que se abre automáticamente; el componente reutilizará automáticamente cualquier clave completa existente, o si no hay ninguna, creará una clave dedicada Fact-Check-X, la verificará y la guardará en ~/.fact-check-x/credentials/trusted-search-key. Codex, Claude Code, WorkBuddy y otros portadores comparten esta configuración; si se detecta una clave existente, se omite el inicio de sesión. Una vez configurada correctamente, la entidad llamante vuelve a ejecutar prepare-authority automáticamente, sin solicitar al usuario que copie la clave, edite la configuración del shell, responda "configurado" ni usar fuentes de DeepSeek o búsqueda normal para evitar el proceso.

Solo cuando la búsqueda confiable devuelve 401/403 se considera que la clave existente no es válida y se inicia la configuración automática. En caso de tiempo de espera, falta de conexión o error de servicio, se conserva la configuración existente y se reintenta automáticamente; si después del reintento aún falla, se permanece en la fase de búsqueda y se devuelve un error técnico, sin solicitar al usuario que vuelva a iniciar sesión ni convertir a verificación de hechos manual.

prepare-authority escribe authority-gate.json. Solo después de que el lote de búsqueda confiable se complete normalmente y el estado de la puerta de enlace cambie a searched, se permite ejecutar finalize-authority; escribir manualmente evidencia o resultado no puede eludir esto.

El agente actual lee authority/requests y authority/evidence uno por uno, escribe el veredicto en authority/assessments/<ID del punto de conocimiento>.json, y luego:

En modo exento de verificación, trustedAnchor.officialAnswer es la conclusión autoritativa del punto de conocimiento actual; la lista de evidencia de anclaje se utiliza para el rastreo de fuentes, sin requerir que el título o el extracto truncado repitan textualmente esa conclusión. Cuando la afirmación de la plataforma es semánticamente consistente con officialAnswer o puede derivarse directamente de ella, el veredicto es supported y se hace referencia a los ID de evidencia de anclaje válidos. Solo cuando la afirmación de la plataforma agrega hechos sustanciales que la conclusión autoritativa no puede respaldar, o realmente no se puede determinar, se usa insufficient. La fidelidad de las referencias en la fase de comparación de puntos de conocimiento y la corrección factual en esta fase se conservan por separado; la falta de referencias de la plataforma no puede impedir juzgar una afirmación que ya ha sido confirmada por una conclusión autoritativa.

{
  "authoritativeFinding": "Conclusión del punto de conocimiento respaldada por evidencia autoritativa",
  "verdicts": {
    "<ID de plataforma>": {
      "verdict": "supported",
      "reason": "La afirmación coincide con E1",
      "evidenceIds": ["E1"]
    }
  }
}

verdict solo puede usar supported, contradicted o insufficient; los ID de evidencia deben existir en el archivo de evidencia actual. Los verdict, officialAnswer, platformAssessment de nivel superior antiguos serán rechazados.

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

finalize-authority genera la respuesta final después de la verificación autoritativa: incluye los puntos de conocimiento con evidencia suficiente en la respuesta determinada, y escribe los puntos de conocimiento con evidencia insuficiente en evidenceGaps y los excluye de la respuesta determinada y del denominador de precisión; siempre que la cadena técnica tenga éxito, el comando devuelve status=completed, y la entidad llamante continúa con el cuarto paso. Solo cuando el comando técnico devuelve un estado distinto de cero, se detiene y se reintenta la fase actual.

Después de completar el veredicto, finalize-authority genera de forma independiente 03-authority-report.html y devuelve la ruta a través de deliverables. La entidad llamante debe mostrar primero este informe de autoridad; en el modo interactivo predeterminado, solo si el estado es completed y el usuario confirma continuar, se ejecuta:

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

Cuando la búsqueda confiable devuelve no_evidence, se registra como insufficient_evidence: un resultado vacío solo significa que no se obtuvo material para juzgar en esta ocasión, no puede juzgarse directamente como "inventado"; después de registrar el límite de evidencia, se continúa generando el informe posterior.

deliver debe generar y devolver cuatro informes independientes legibles en la raíz del directorio de ejecución:

  • 01-capture-report.html: Respuestas originales, referencias bibliográficas y evidencia de citas;
  • 02-comparison-report.html: Comparación estructurada de puntos de conocimiento;
  • 03-authority-report.html: Conclusiones autoritativas por punto de conocimiento, evidencia oficial y veredictos de cada plataforma;
  • 04-final-report.html: Rendimiento de la plataforma, métricas integradas, hallazgos clave y evidencia completa.

No se debe generar ni entregar 05-complete-report-package.zip si falta alguno de los informes.

Finalmente, se conservan:

  • capture/results.json, capture/report.html, capture/report.md;
  • comparison-task.json, comparison-analysis.json, comparison.json, comparison.html;
  • request, evidence, assessment, result independientes para cada punto de conocimiento;
  • authority/batch.json, verification.json, report.html, pipeline.json;
  • Cuatro informes de fase y 05-complete-report-package.zip.

Omitir comparación de puntos de conocimiento

La comparación de puntos de conocimiento es una capacidad opcional. Si ya se dispone de puntos de conocimiento estructurados, se puede crear directamente una solicitud de un solo punto de conocimiento según el contrato de datos del módulo de verificación de evidencia autoritativa, y llamar de forma independiente a fact-check-x-authoritative-verify. La entrada unificada no obliga al usuario a recopilar primero múltiples respuestas de IA.

Límites de ejecución

  • En la fase de respuestas originales, solo se recopila, no se verifica; se puede usar el parámetro de texto completo de búsqueda confiable para completar el cuerpo del texto de la misma fuente ya proporcionada por la plataforma, pero no se pueden agregar ni reemplazar referencias.
  • La comparación de puntos de conocimiento solo compara las respuestas originales con las fuentes adjuntas, no busca la verdad en línea.
  • La capa en la nube solo recibe el punto de conocimiento actual; si las afirmaciones de las plataformas son iguales, no se sube la afirmación; solo si son diferentes se sube la diferencia.
  • Cuando DeepSeek ya tiene un anclaje oficial calificado, no se repite la búsqueda.
  • El informe final debe usar el renderizador de informes estable dentro del módulo de verificación de evidencia autoritativa.

Puerta de entrega

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

Los criterios completos se encuentran en Criterios de aceptación.

Skills relacionados