Cómo está hecho
Doce capas, y dos puntos de extensión
Una fuente nueva es un conector; una sospecha nueva, un detector.
| Capa | Qué hace | Extensión |
|---|---|---|
| 01Fuentes públicas (14) | Clasificadas por fricción de cosecha: A abierta, B semi, C controlada. Si existe un canal abierto, se usa ese. | — |
| 02Conectores | Uno por fuente, aislado, según su fricción. Tres disparadores: cron programado, watcher que compara el hash de la forma, y un puerto de webhook documentado y sin nada construido alrededor. | fuente nueva = un conector |
| 03Almacén crudo, inmutable | Bytes originales, hash, fecha de captura y fuente. Nada se pisa: se acumula. Es lo que permite reverificar años después. | — |
| 04Normalizador | Tipos, fechas, montos, codificaciones. Determinista: la misma entrada produce la misma salida, siempre. | — |
| 05Resolución de identidades | Capa propia, separada del normalizador, porque reconocer que el mismo RUC es la misma persona entre fuentes es una inferencia probabilística, no un hecho. Cada vínculo lleva su confianza. | — |
| 06Grafo canónico | Entidad · Persona · Empresa · Contrato · Norma · Cargo · Visita · Aporte, con procedencia por arista y con nivel en toda entidad. Desacopla las fuentes de los detectores: el conector traduce la fuente al grafo y el detector sólo lee el grafo. | — |
| 07Cruce entre fuentes | Entrelaza los hilos y escribe aristas, no señales. Cada arista lleva la regla que la creó y su confianza. Agregar una fuente no suma una tabla: suma cruces contra las que ya están. | — |
| 08Minería e insights | Etapa propia, y la única con advertencia: le habla al EQUIPO, no al público. Un insight de minería no es una señal, es una hipótesis. Su única salida es que alguien la escriba como regla determinista con umbral y prueba. | — |
| 09Detectores | Deterministas y versionados, con umbral explícito y prueba. Leen el grafo, se parametrizan por entidad y emiten señales. Ningún modelo de lenguaje y ninguna minería decide una señal. | sospecha nueva = un detector |
| 10Señales | Severidad, evidencia y la versión de la regla que las produjo. Reproducibles: recalcular la misma señal dentro de dos años debe dar lo mismo. Una señal es una pregunta, nunca una acusación. | — |
| 11Verificación humana | La única puerta a publicar, en dos partes: pre-verificación distribuida con asignación ciega y tres revisiones independientes, y un cierre editorial con una persona nombrada que firma. Nada se publica solo. | — |
| 12Salidas | Historias e indicadores públicos: tablero por entidad y API abierta. Los dos se publican también cuando no hay señales. | — |
Procedencia y auditoría, transversal a las doce: toda señal se rastrea hasta su evidencia, su registro en el grafo y la captura cruda que la originó. La cadena, contada de principio a fin →
Dónde corre cada cosa
| Componente | Dónde | Por qué |
|---|---|---|
| Cosecha, normalización, cruce, detectores | Runner, por cron o watcher | Sin tope de tiempo |
| Crudo, grafo, señales, tabla de entidades | Base de datos propia | Es el punto de encuentro |
| Vistas públicas | Web, sólo lectura | Lee vistas ya calculadas |
| Cola de verificación y de cosecha asistida | Web, con escritura | Son pantallas con estado, no descargas |
Las decisiones, con lo que se descartó
| Decisión | Por qué | Qué se descartó |
|---|---|---|
| ADR-0001El cómputo pesado corre en un runner, no en Vercel | El presupuesto de una función son sesenta segundos, y pasarse no da un error de la aplicación: la plataforma corta y devuelve su propia página. Una descarga masiva de contrataciones o un barrido del portal de transparencia entidad por entidad no cabe ahí. | Partir el trabajo en cientos de invocaciones: obliga a escribir un orquestador con estado sólo para esquivar un límite que en un runner no existe. |
| ADR-0002Base de datos propia, separada del resto del portafolio | Este producto mide al poder público: tiene perfil de riesgo, obligaciones registrales y perfil de carga distintos. El aislamiento es la medida más barata contra un incidente en cualquiera de los dos sentidos. | El proyecto compartido del ecosistema: ahorra aprovisionamiento, que es lo más barato, y paga con aislamiento, que es lo más caro. |
| ADR-0003El grafo vive en tablas de nodos y aristas | Las consultas que importan tienen profundidad acotada, y la procedencia por arista es una fila con columnas, que es lo que una base relacional hace bien. No agrega ningún servicio con estado a la operación. | Los motores de grafo dedicados, por licencia contagiosa o de fuente restringida en unos casos y por costo de operación en otros. |
| ADR-0004Python en la capa de datos, TypeScript en la web | La capa de datos corre en un runner, así que no hay runtime compartido que aprovechar. Deciden cuatro trabajos concretos: parseo de PDF, lectura de imágenes satelitales, emparejamiento probabilístico de registros y volumen tabular. | Un solo lenguaje de punta a punta: sería lo correcto si la capa de datos corriera junto a la web, pero obligaría a reimplementar tres bibliotecas maduras en el camino crítico de tres capacidades. |
| ADR-0005Ningún modelo ni minería emite una señal | El motivo es estructural, no ético: una señal producida por un modelo no es reproducible —el mismo insumo puede dar otro resultado— y no hay versión de regla que citar. La reproducibilidad es lo que sostiene la publicación. | Señales de IA marcadas como de baja confianza: la marca no sobrevive al recorrido, y le da una apariencia de rigor que no tiene. |
| ADR-0006El nivel de autoridad es un atributo de la entidad | Las fuentes nacionales ya contienen los tres niveles: cada adjudicación trae su entidad compradora y cada gasto su pliego. Un detector se escribe una vez y ampliar cobertura es agregar filas a una tabla. | Tres productos o tres módulos por nivel: triplica el trabajo para filtrar por un campo que ya viene en la fila, y rompe la comparación entre niveles. |
| ADR-0007La unidad publicable es el indicador; el texto es un campo | Una fila con periodo se apila en una serie, una con entidad se compara con sus pares, y una con versión de regla se recalcula. Ninguna de las tres propiedades se puede agregar después. | El artículo con datos adjuntos: cuando el texto es el objeto principal, el dato adjunto se desactualiza y nadie lo nota, porque la publicación ya se ve completa sin él. |
| ADR-0008Las barreras de acceso se encolan para una persona | El argumento es de costo de mantenimiento: un raspador que se esconde se rompe cuando la fuente aprende a defenderse, y se rompe sin avisar —sigue corriendo y alimentando el sistema con datos mal leídos—. | Servicios de resolución de captcha y rotación de identidad: no dejan procedencia auditable, y son incoherentes con lo que el producto le pide al Estado. |