Saltar al contenido

Cómo lo hemos hecho

Con datos oficiales, con programas propios que dejan rastro de cada paso y con huellas digitales que permiten comprobar que ningún fichero ha cambiado. Las herramientas de IA nos han ayudado a leer, ordenar, programar, proponer textos y revisar. Las cifras de los contratos de esPublico no salen de un modelo de IA: las calcula un programa con pruebas automáticas a partir de los ficheros oficialesfuente 1. Las demás las copiamos de su fuente y la citamos.

En detalle

Las fuentes oficiales

  • Plataforma de Contratación del Sector Público (contrataciondelestado.es)fuente 2. La Ley 9/2017 de Contratos del Sector Público la regula: los órganos de contratación publican en ella su perfil de contratante, y las comunidades autónomas pueden tener una plataforma propiafuente 3. El perfil de contratante existe para asegurar la transparencia y el acceso público a la actividad de cada órganofuente 4.
  • Datos abiertos de la Plataforma, en la web del Ministerio de Hacienda. Los genera la Dirección General del Patrimonio del Estado a partir de lo que introducen los propios órganos de contrataciónfuente 5. Usamos tres conjuntos: las licitaciones publicadas en los perfiles de contratante, las que llegan por agregación desde otras plataformas (desde el ) y los contratos menores (desde el )fuente 6. Las agregadas son las de las plataformas autonómicasfuente 7. El formato de los ficheros está en la especificación oficial de sindicaciónfuente 8.
  • Registro de alcaldes y concejales del Ministerio de Política Territorial y Memoria Democrática, en su Sistema de Información Localfuente 9, y consulta de cargos representativos locales de la Red SARAfuente 10. Solo los usamos para saber de qué partido era el alcalde o alcaldesa de cada ayuntamiento en cada fecha.
  • Boletín Oficial del Estado, para el texto de la Ley 9/2017fuente 11 y de la ley anteriorfuente 12.

Las herramientas

  • Robots de descarga, que bajan anuncios y pliegos de las plataformas públicasfuente 13,fuente 14.
  • Programas propios en Python que convierten los ficheros oficiales en tablas, con una fila por resultado de adjudicaciónfuente 15.
  • Un repositorio con control de versiones, en el que cada cambio queda registrado con su autor y su fechafuente 16, tal como los anota quien lo hace.
  • Manifiestos de huellas SHA-256 (más abajo).

Lo que han hecho las herramientas de IA

Les hemos dejado leer, ordenar, programar, proponer textosfuente 17 y revisar, pero no decidir. Así se lo dijimos a Antigravity: No eres letrado, no decides estrategia procesal, no firmas.fuente 18 Algunas de las que hemos usado:

  • Manus, desde el fuente 19: preparó la primera documentación de análisis del repositoriofuente 20.
  • El Clon, el cerebro digital de Miguel Ángel Domínguez, desde el : recibió el archivo del caso para ordenar lo que sabíamosfuente 21,fuente 22.
  • Antigravity, de Googlefuente 23, desde el : recibió el caso para integrarlo en el cerebro digitalfuente 24,fuente 25.
  • Claude Code, de Anthropicfuente 26, desde el fuente 27: programó el análisis de los datos abiertosfuente 28 y comprobó que cada licitación y cada persona que menciona el escrito remite a un documento del expedientefuente 29.

La cadena de custodia

Una huella SHA-256 es una cadena de letras y números que se calcula a partir del contenido de un fichero. Si cambia un solo bit del fichero, la huella es otrafuente 30. Por eso sirve para demostrar que un fichero no ha cambiado.

Hemos generado tres manifiestos del expediente, cada uno con la huella de cada fichero que recoge. Aquí publicamos la huella de cada manifiesto: si alguien enseña después uno de ellos, cualquiera podrá comprobar si es el mismo, porque con un solo cambio la huella ya no coincidiría. Esta página la publicamos nosotros: la huella demuestra que un manifiesto no ha cambiado, pero no desde cuándo existe.

  • fuente 31 · db2cb7498216d7d7994a465ca93ae50f77641b013e008d97f0ca8fb9544f660afuente 32
  • fuente 33 · d8159666f9845f2d4569fe0f7fd1f7edc5ba304395bd3be2bfb20f5d35a2238dfuente 34
  • fuente 35 · e3e071e13c41cfe262226bdb3d9939625712c6c2ef50adf19e9fd1a15ff96c5efuente 36

Antes de presentar la denuncia regeneraremos el manifiesto sobre la versión final del expedientefuente 37.

Cómo comprobar la huella de un ficherofuente 38:

  • macOS o Linux: shasum -a 256 fichero (en Linux también sha256sum ficherofuente 39)
  • Windows: certutil -hashfile fichero SHA256

El resultado tiene que coincidir, carácter a carácter, con el del manifiesto.

Lo que todavía no contamos

Parte del trabajo es un análisis documental de los pliegos publicadosfuente 40. Contaremos el método completo cuando la Fiscalía nos permita publicar la denuncia.

Fuentes de esta página

«Archivo de la investigación» son documentos nuestros que todavía no son públicos; «Código de esta web», el código fuente de este portal, que tampoco lo es. De unos y otros damos la referencia para poder localizarlos.

  1. Código de esta web, referencia datos-pruebas · comprobado el
  2. contrataciondelestado.es, referencia placsp-portal · comprobado el
  3. boe.es, Ley 9/2017, art. 347.1, 347.3, referencia lcsp-art-347 · comprobado el
  4. boe.es, Ley 9/2017, art. 63.1, referencia lcsp-art-63 · comprobado el
  5. hacienda.gob.es, referencia placsp-datos-abiertos · comprobado el
  6. hacienda.gob.es, referencia placsp-conjuntos · comprobado el
  7. Archivo de la investigación, referencia placsp-agregadas · comprobado el
  8. contrataciondelsectorpublico.gob.es, referencia placsp-especificacion · comprobado el
  9. mptmd.gob.es, referencia alcaldes-mptmd · comprobado el
  10. concejales.redsara.es, referencia alcaldes-redsara · comprobado el
  11. boe.es, referencia lcsp-boe · comprobado el
  12. boe.es, RDL 3/2011 (TRLCSP), art. 138.3, referencia trlcsp-art-138 · comprobado el
  13. Archivo de la investigación, referencia robot-descarga-anuncios · comprobado el
  14. Archivo de la investigación, referencia robot-pliegos · comprobado el
  15. Archivo de la investigación, referencia herramientas-scripts · comprobado el
  16. Archivo de la investigación, referencia git-registra-autor-fecha · comprobado el
  17. Archivo de la investigación, referencia antigravity-misiones · comprobado el
  18. Archivo de la investigación, referencia antigravity-no-decide · comprobado el
  19. Archivo de la investigación, referencia manus-20260101 · comprobado el
  20. Archivo de la investigación, referencia manus-uso · comprobado el
  21. Archivo de la investigación, referencia clon-ordena-archivo · comprobado el
  22. Archivo de la investigación, referencia clon-20260417 · comprobado el
  23. Archivo de la investigación, referencia antigravity-google · comprobado el
  24. Archivo de la investigación, referencia antigravity-encargo · comprobado el
  25. Archivo de la investigación, referencia antigravity-20260521 · comprobado el
  26. claude.com, referencia claude-code-anthropic · comprobado el
  27. Archivo de la investigación, referencia claude-code-20260702 · comprobado el
  28. Archivo de la investigación, referencia claude-code-analisis · comprobado el
  29. Archivo de la investigación, referencia claude-code-cobertura · comprobado el
  30. Archivo de la investigación, referencia sha256-un-bit · comprobado el
  31. Archivo de la investigación, referencia manifiesto-20260702 · comprobado el
  32. Archivo de la investigación, referencia huella-manifiesto-20260702 · comprobado el
  33. Archivo de la investigación, referencia manifiesto-20260704 · comprobado el
  34. Archivo de la investigación, referencia huella-manifiesto-20260704 · comprobado el
  35. Archivo de la investigación, referencia manifiesto-20260722 · comprobado el
  36. Archivo de la investigación, referencia huella-manifiesto-20260722 · comprobado el
  37. Archivo de la investigación, referencia manifiesto-final-previsto · comprobado el
  38. Archivo de la investigación, referencia como-comprobar-huella · comprobado el
  39. man7.org, referencia sha256sum-coreutils · comprobado el
  40. Archivo de la investigación, referencia analisis-pliegos · comprobado el