{
  "generated_at": "2026-06-05T00:12:43.764Z",
  "summary": {
    "generatedAt": "2026-06-05T00:12:43.764Z",
    "modules": 15,
    "activeModules": 9,
    "plannedModules": 0,
    "artifacts": 386,
    "rows": 239024,
    "latestUpdate": "2026-06-05T00:12:43.764Z"
  },
  "modules": [
    {
      "id": "compras",
      "title": "Compras públicas directas",
      "href": "/herramientas/compras/",
      "status": "Funcional",
      "health": "active",
      "source": "ARCE / Compras Estatales",
      "cadence": "Actualización diaria vía Vercel y Blob.",
      "coverage": "Compras directas comunes adjudicadas en el corte 2026.",
      "lastUpdated": "2026-06-05T00:08:05.981Z",
      "range": "2026-01-01 a 2026-06-03",
      "artifacts": 14,
      "rows": 193253,
      "metrics": [
        {
          "label": "compras",
          "value": "33.703"
        },
        {
          "label": "ítems",
          "value": "94.948"
        },
        {
          "label": "un oferente",
          "value": "26.675"
        }
      ],
      "limits": [
        "Lee compras directas comunes; no mezcla el régimen de excepción.",
        "Las alertas priorizan revisión, no atribuyen irregularidad.",
        "Los adjuntos PDF/XML se registran como variable de apoyo, no como prueba cerrada."
      ],
      "nextSteps": [
        "Refinar vínculos con expedientes y respuestas.",
        "Mejorar lectura de adjuntos para corregir cantidades o unidades declaradas.",
        "Mantener optimización incremental del refresh diario."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/compras/"
        },
        {
          "label": "Datos",
          "href": "/herramientas/compras/datos/latest.json"
        },
        {
          "label": "Método",
          "href": "/herramientas/compras/metodo/"
        }
      ]
    },
    {
      "id": "compras-excepciones",
      "title": "Compras por excepción",
      "href": "/herramientas/compras/?vista=excepciones",
      "status": "Separado",
      "health": "active",
      "source": "ARCE / Compras Estatales",
      "cadence": "Actualización diaria junto al pipeline de compras.",
      "coverage": "Compra directa por excepción como régimen separado de las compras directas comunes.",
      "lastUpdated": "2026-06-05T00:09:18.964Z",
      "range": "2026-01-01 a 2026-06-03",
      "artifacts": 14,
      "rows": 16979,
      "metrics": [
        {
          "label": "compras",
          "value": "2.775"
        },
        {
          "label": "ítems",
          "value": "10.026"
        },
        {
          "label": "artefactos",
          "value": "14"
        }
      ],
      "limits": [
        "No se compara como si fuera compra directa común.",
        "La causal de excepción requiere revisión documental caso a caso."
      ],
      "nextSteps": [
        "Mejorar ficha propia para causales y documentos.",
        "Conectar casos relevantes con pedidos de acceso."
      ],
      "links": [
        {
          "label": "Datos",
          "href": "/herramientas/compras/datos/excepciones/"
        }
      ]
    },
    {
      "id": "expedientes",
      "title": "Expedientes y pedidos",
      "href": "/herramientas/expedientes/",
      "status": "MVP funcional",
      "health": "active",
      "source": "CSV de seguimiento editorial y documentos vinculados.",
      "cadence": "Actualización cuando se prepara, envía o recibe respuesta.",
      "coverage": "Pedidos de acceso y consultas periodísticas derivados de señales priorizadas.",
      "lastUpdated": "2026-06-05T00:09:50.035Z",
      "range": "próximo control 2026-06-23",
      "artifacts": 5,
      "rows": 450,
      "metrics": [
        {
          "label": "expedientes",
          "value": "26"
        },
        {
          "label": "organismos",
          "value": "11"
        },
        {
          "label": "documentos",
          "value": "424"
        }
      ],
      "limits": [
        "El estado publicado refleja el tracker, no el expediente completo del organismo.",
        "Muchos casos están en borrador hasta registrar envío o acuse.",
        "Los documentos faltantes son una lista de solicitud, no evidencia de incumplimiento."
      ],
      "nextSteps": [
        "Cargar acuses, tickets o expedientes cuando existan.",
        "Vincular respuestas recibidas con fichas de Compras.",
        "Definir política pública de corrección y derecho de respuesta."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/expedientes/"
        },
        {
          "label": "Datos",
          "href": "/herramientas/expedientes/datos/"
        },
        {
          "label": "Feed",
          "href": "/herramientas/expedientes/feed/"
        }
      ]
    },
    {
      "id": "pauta",
      "title": "Pauta oficial",
      "href": "/herramientas/pauta/",
      "status": "Piloto",
      "health": "active",
      "source": "ARCE / Compras Estatales, filtrado por objetos e ítems.",
      "cadence": "Se regenera con el build y el refresh de compras.",
      "coverage": "Radar inicial de publicidad, comunicación, campañas, medios, producción audiovisual, redes y piezas gráficas en compras directas y excepciones.",
      "lastUpdated": "2026-06-05T00:09:18.964Z",
      "range": "2026-01-01 a 2026-06-03",
      "artifacts": 171,
      "rows": 1276,
      "metrics": [
        {
          "label": "señales",
          "value": "1.276"
        },
        {
          "label": "organismos",
          "value": "47"
        },
        {
          "label": "proveedores",
          "value": "641"
        },
        {
          "label": "pedidos sugeridos",
          "value": "10"
        },
        {
          "label": "expedientes",
          "value": "7"
        },
        {
          "label": "docs faltantes",
          "value": "134"
        },
        {
          "label": "casos documentales",
          "value": "7"
        },
        {
          "label": "fichas",
          "value": "160"
        }
      ],
      "limits": [
        "Es un radar por palabras clave sobre compras directas y excepciones; no equivale al gasto total en pauta oficial.",
        "Una compra puede ser comunicación, producción o impresión sin compra de espacios en medios.",
        "Los proveedores salen de ítems/adjudicaciones disponibles; algunas filas pueden requerir documentos adjuntos o pedidos de acceso.",
        "La clasificación es una señal para abrir expediente, no una conclusión sobre campaña, medio o beneficiario final."
      ],
      "nextSteps": [
        "Enviar o confirmar canal oficial de los borradores de acceso ya registrados.",
        "Crear fichas de campañas cuando haya documentos o respuestas.",
        "Conectar respuestas documentales con campañas, medios, agencias, piezas y publicaciones editoriales."
      ],
      "links": [
        {
          "label": "Abrir radar",
          "href": "/herramientas/pauta/"
        },
        {
          "label": "Seguimiento",
          "href": "/herramientas/pauta/expedientes/"
        },
        {
          "label": "Matriz documental",
          "href": "/herramientas/pauta/documental/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/pauta.json"
        },
        {
          "label": "Ficha ejemplo",
          "href": "/herramientas/pauta/senales/excepcion-1335286/"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        }
      ]
    },
    {
      "id": "presupuesto",
      "title": "Gasto territorial",
      "href": "/herramientas/presupuesto/",
      "status": "En desarrollo",
      "health": "draft",
      "source": "OPP/OTU, ARCE, FIGM y fuentes municipales.",
      "cadence": "Revisión periódica de fuentes y regeneración del dataset.",
      "coverage": "Presupuesto territorial, municipios, transferencias, actas, autoridades, contactos y compras locales.",
      "lastUpdated": "2026-06-04T23:59:03.089223+00:00",
      "range": "ejecución 2024 · transferencias 2026/4",
      "artifacts": 31,
      "rows": 23957,
      "metrics": [
        {
          "label": "departamentos",
          "value": "19"
        },
        {
          "label": "municipios",
          "value": "136"
        },
        {
          "label": "alertas",
          "value": "37"
        }
      ],
      "limits": [
        "La ejecución presupuestal disponible tiene corte anual 2024.",
        "Algunas asociaciones municipales se infieren por nombre y deben revisarse antes de usarse como imputación formal.",
        "Las compras territoriales son una capa de contexto, no el total del gasto municipal."
      ],
      "nextSteps": [
        "Pulir perfiles territoriales y mapas.",
        "Separar señales metodológicas de alertas editoriales.",
        "Conectar pedidos territoriales con Expedientes."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/presupuesto/"
        },
        {
          "label": "Datos",
          "href": "/herramientas/presupuesto/datos/"
        },
        {
          "label": "Feed",
          "href": "/herramientas/presupuesto/feed/"
        }
      ]
    },
    {
      "id": "viajes",
      "title": "Viajes y viáticos",
      "href": "/herramientas/viajes/",
      "status": "Piloto con datos",
      "health": "draft",
      "source": "UAIP, transparencia activa, datos abiertos, resoluciones y datasets oficiales localizados de URSEC, ANCAP, Correo, BCU y Junta Departamental de Maldonado.",
      "cadence": "Se actualiza con el build del sitio y con refresh manual de datasets oficiales.",
      "coverage": "Piloto con viáticos nacionales de URSEC, fuentes públicas por organismo, fichas de señales vinculables, validación documental de compras, evidencia vinculada, candidatos a caso, promoción asistida, pedidos preparados y matriz para viajes oficiales, participantes, pasajes, rendiciones y resultados.",
      "lastUpdated": "2026-06-05T00:11:47.724Z",
      "range": "2019-02-14 a 2024-12-11",
      "artifacts": 40,
      "rows": 701,
      "metrics": [
        {
          "label": "fuentes",
          "value": "4"
        },
        {
          "label": "dimensiones",
          "value": "6"
        },
        {
          "label": "pedidos",
          "value": "4"
        },
        {
          "label": "organismos",
          "value": "9"
        },
        {
          "label": "fuentes localizadas",
          "value": "6"
        },
        {
          "label": "fuentes por organismo",
          "value": "10"
        },
        {
          "label": "registros",
          "value": "527"
        },
        {
          "label": "monto viáticos",
          "value": "$ 3,2 M · ≈ USD 77.851"
        },
        {
          "label": "compras vinculables",
          "value": "731"
        },
        {
          "label": "fichas señal",
          "value": "80"
        },
        {
          "label": "validaciones",
          "value": "11"
        },
        {
          "label": "alta prioridad",
          "value": "1"
        },
        {
          "label": "pedidos preparados",
          "value": "5"
        },
        {
          "label": "seguimiento",
          "value": "5"
        },
        {
          "label": "canal pendiente",
          "value": "5"
        },
        {
          "label": "casos documentados",
          "value": "0"
        },
        {
          "label": "candidatos a caso",
          "value": "5"
        },
        {
          "label": "promoción",
          "value": "5"
        },
        {
          "label": "promoción con expediente",
          "value": "5"
        },
        {
          "label": "docs sugeridos",
          "value": "53"
        },
        {
          "label": "docs faltantes",
          "value": "9"
        },
        {
          "label": "docs cubiertos",
          "value": "8"
        },
        {
          "label": "cierres en pedido",
          "value": "5"
        },
        {
          "label": "evidencia vinculada",
          "value": "6"
        },
        {
          "label": "evidencia con expediente",
          "value": "5"
        },
        {
          "label": "requisitos faltantes",
          "value": "15"
        }
      ],
      "limits": [
        "Este módulo todavía no publica un ranking de viajes ni una base consolidada de personas.",
        "Una tabla de viáticos no prueba por sí sola un uso indebido ni describe una misión completa: ordena preguntas documentales.",
        "Los datos pueden estar repartidos entre transparencia activa, resoluciones, compras, agenda pública y respuestas de acceso.",
        "La lectura debe distinguir viático asignado, gasto rendido, pasaje, alojamiento, reintegro y resultado."
      ],
      "nextSteps": [
        "Mapear organismos con tabla pública de viajes y viáticos.",
        "Ampliar el piloto con más tablas oficiales y mantener separada la fuente de cada organismo.",
        "Completar la validación documental de señales de compras de pasajes, hoteles o agencias antes de convertirlas en fichas.",
        "Cargar resoluciones, delegaciones, costos y resultados para que la compuerta habilite fichas documentadas."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/viajes/"
        },
        {
          "label": "Señales",
          "href": "/herramientas/viajes/senales/"
        },
        {
          "label": "Validación",
          "href": "/herramientas/viajes/validacion/"
        },
        {
          "label": "Pedidos",
          "href": "/herramientas/viajes/pedidos/"
        },
        {
          "label": "Documentos",
          "href": "/herramientas/viajes/documentos/"
        },
        {
          "label": "Cierre",
          "href": "/herramientas/viajes/cierre/"
        },
        {
          "label": "Evidencia",
          "href": "/herramientas/viajes/evidencia/"
        },
        {
          "label": "Seguimiento",
          "href": "/herramientas/viajes/seguimiento/"
        },
        {
          "label": "Casos",
          "href": "/herramientas/viajes/casos/"
        },
        {
          "label": "Promoción",
          "href": "/herramientas/viajes/promocion/"
        },
        {
          "label": "Organismos",
          "href": "/herramientas/viajes/organismos/"
        },
        {
          "label": "Feed",
          "href": "/herramientas/viajes/feed/"
        },
        {
          "label": "Datos",
          "href": "/herramientas/viajes/datos/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/viajes.json"
        },
        {
          "label": "JSON casos",
          "href": "/herramientas/viajes/casos.json"
        },
        {
          "label": "CSV candidatos",
          "href": "/herramientas/viajes/datos/candidatos-caso.csv"
        },
        {
          "label": "JSON promoción",
          "href": "/herramientas/viajes/promocion.json"
        },
        {
          "label": "CSV promoción",
          "href": "/herramientas/viajes/datos/promocion-casos.csv"
        },
        {
          "label": "JSON documentos",
          "href": "/herramientas/viajes/documentos.json"
        },
        {
          "label": "JSON cierre",
          "href": "/herramientas/viajes/cierre.json"
        },
        {
          "label": "JSON evidencia",
          "href": "/herramientas/viajes/evidencia.json"
        },
        {
          "label": "JSON seguimiento",
          "href": "/herramientas/viajes/seguimiento.json"
        },
        {
          "label": "JSON feed",
          "href": "/herramientas/viajes/feed.json"
        },
        {
          "label": "RSS feed",
          "href": "/herramientas/viajes/feed.xml"
        },
        {
          "label": "JSON pedidos",
          "href": "/herramientas/viajes/pedidos.json"
        },
        {
          "label": "CSV viajes",
          "href": "/herramientas/viajes/datos/viajes.csv"
        },
        {
          "label": "CSV organismos",
          "href": "/herramientas/viajes/datos/organismos.csv"
        },
        {
          "label": "CSV fuentes",
          "href": "/herramientas/viajes/datos/fuentes-organismos.csv"
        },
        {
          "label": "CSV validación",
          "href": "/herramientas/viajes/datos/validacion-compras.csv"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        }
      ]
    },
    {
      "id": "cargos",
      "title": "Cargos y designaciones",
      "href": "/herramientas/cargos/",
      "status": "Piloto con datos",
      "health": "draft",
      "source": "Transparencia activa, actos administrativos, datos abiertos y pedidos de acceso a construir.",
      "cadence": "Se actualiza con el build del sitio y carga manual verificada.",
      "coverage": "Borrador operativo para cargos de confianza, contratos personales, asesorías, remuneraciones, compensaciones, vigencias y actos administrativos con archivo de organismos, fuentes base, cortes publicados, brechas documentales, compuerta documental, reglas de privacidad, canal de correcciones/respuesta, fuentes sin corte priorizadas y pedidos preparados.",
      "lastUpdated": "2026-06-05T00:11:37.975Z",
      "range": "2026-05-30 a 2026-05-30",
      "artifacts": 20,
      "rows": 152,
      "metrics": [
        {
          "label": "fuentes",
          "value": "4"
        },
        {
          "label": "dimensiones",
          "value": "6"
        },
        {
          "label": "organismos",
          "value": "13"
        },
        {
          "label": "fuentes org.",
          "value": "25"
        },
        {
          "label": "cortes fuente",
          "value": "8"
        },
        {
          "label": "sin corte",
          "value": "17"
        },
        {
          "label": "fuentes usables",
          "value": "8"
        },
        {
          "label": "pedir corte",
          "value": "16"
        },
        {
          "label": "fuentes a pedir",
          "value": "16"
        },
        {
          "label": "brechas",
          "value": "23"
        },
        {
          "label": "brechas alta",
          "value": "6"
        },
        {
          "label": "compuerta",
          "value": "6"
        },
        {
          "label": "bloqueantes",
          "value": "5"
        },
        {
          "label": "privacidad",
          "value": "5"
        },
        {
          "label": "redactar",
          "value": "2"
        },
        {
          "label": "respuesta",
          "value": "0"
        },
        {
          "label": "respondidos",
          "value": "0"
        },
        {
          "label": "pedidos prep.",
          "value": "17"
        },
        {
          "label": "pedidos alta",
          "value": "6"
        },
        {
          "label": "org. con fuente",
          "value": "13"
        },
        {
          "label": "prioridad alta",
          "value": "5"
        },
        {
          "label": "pedidos",
          "value": "4"
        },
        {
          "label": "registros",
          "value": "28"
        }
      ],
      "limits": [
        "El módulo no debe convertirse en un buscador de exposición personal masiva.",
        "La publicación debe priorizar cargos, funciones, actos administrativos y uso de fondos públicos.",
        "Un nombre publicado por fuente oficial no basta para inferir conflicto, privilegio o irregularidad.",
        "Las remuneraciones pueden no ser comparables si mezclan nominal, líquido, partidas, compensaciones o dedicación horaria."
      ],
      "nextSteps": [
        "Mapear organismos con tablas públicas de autoridades, remuneraciones, cargos y contratos.",
        "Cargar un primer CSV manual solo con fuente verificable y fecha de corte.",
        "Crear señales documentales antes de publicar fichas de persona o cargo.",
        "Conectar pedidos de acceso con Expedientes para completar contratos, actos y compensaciones."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/cargos/"
        },
        {
          "label": "Organismos",
          "href": "/herramientas/cargos/organismos/"
        },
        {
          "label": "Fuentes",
          "href": "/herramientas/cargos/fuentes/"
        },
        {
          "label": "Feed",
          "href": "/herramientas/cargos/feed/"
        },
        {
          "label": "Brechas",
          "href": "/herramientas/cargos/brechas/"
        },
        {
          "label": "Registros",
          "href": "/herramientas/cargos/registros/"
        },
        {
          "label": "Compuerta",
          "href": "/herramientas/cargos/compuerta/"
        },
        {
          "label": "Privacidad",
          "href": "/herramientas/cargos/privacidad/"
        },
        {
          "label": "Respuesta",
          "href": "/herramientas/cargos/respuesta/"
        },
        {
          "label": "Pedidos",
          "href": "/herramientas/cargos/pedidos/"
        },
        {
          "label": "Datos",
          "href": "/herramientas/cargos/datos/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/cargos.json"
        },
        {
          "label": "JSON feed",
          "href": "/herramientas/cargos/feed.json"
        },
        {
          "label": "RSS feed",
          "href": "/herramientas/cargos/feed.xml"
        },
        {
          "label": "JSON organismos",
          "href": "/herramientas/cargos/organismos.json"
        },
        {
          "label": "JSON fuentes",
          "href": "/herramientas/cargos/fuentes.json"
        },
        {
          "label": "JSON brechas",
          "href": "/herramientas/cargos/brechas.json"
        },
        {
          "label": "JSON registros",
          "href": "/herramientas/cargos/registros.json"
        },
        {
          "label": "JSON compuerta",
          "href": "/herramientas/cargos/compuerta.json"
        },
        {
          "label": "JSON privacidad",
          "href": "/herramientas/cargos/privacidad.json"
        },
        {
          "label": "JSON respuesta",
          "href": "/herramientas/cargos/respuesta.json"
        },
        {
          "label": "JSON pedidos",
          "href": "/herramientas/cargos/pedidos.json"
        },
        {
          "label": "CSV cargos",
          "href": "/herramientas/cargos/datos/cargos.csv"
        },
        {
          "label": "CSV organismos",
          "href": "/herramientas/cargos/datos/organismos.csv"
        },
        {
          "label": "CSV fuentes",
          "href": "/herramientas/cargos/datos/fuentes-organismos.csv"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        }
      ]
    },
    {
      "id": "transparencia-activa",
      "title": "Transparencia activa",
      "href": "/herramientas/transparencia-activa/",
      "status": "Mapa transversal",
      "health": "draft",
      "source": "Agregado interno de fuentes localizadas en Cargos, Viajes y señales de Pauta derivadas de Compras.",
      "cadence": "Se regenera con el build de Pistas públicas.",
      "coverage": "Mapa transversal de organismos, fuentes visibles, cortes publicados, señales sin fuente propia y pedidos sugeridos.",
      "lastUpdated": "2026-06-05T00:09:18.964Z",
      "range": "cobertura transversal de módulos activos",
      "artifacts": 31,
      "rows": 91,
      "metrics": [
        {
          "label": "organismos",
          "value": "23"
        },
        {
          "label": "filas",
          "value": "32"
        },
        {
          "label": "con fuente",
          "value": "19"
        },
        {
          "label": "pedidos sugeridos",
          "value": "14"
        },
        {
          "label": "candidatos",
          "value": "18"
        },
        {
          "label": "brechas",
          "value": "18"
        },
        {
          "label": "requieren corte",
          "value": "5"
        },
        {
          "label": "solo señal",
          "value": "3"
        }
      ],
      "limits": [
        "No mide cumplimiento legal completo: ordena fuentes visibles y brechas documentales detectadas por Pistas públicas.",
        "Una fuente localizada no significa que la publicación sea completa, actualizada o suficiente para publicar una investigación.",
        "Las señales derivadas de Compras indican dónde pedir documentación específica, no prueban omisión de transparencia activa."
      ],
      "nextSteps": [
        "Registrar historial de cambios por organismo cuando una fuente cambie de estado o publique nuevo corte.",
        "Agregar Tribunal de Cuentas y Obras cuando existan datasets normalizados.",
        "Convertir brechas persistentes en pedidos de acceso registrados en Expedientes."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/transparencia-activa/"
        },
        {
          "label": "Organismos",
          "href": "/herramientas/transparencia-activa/organismos/"
        },
        {
          "label": "JSON organismos",
          "href": "/herramientas/transparencia-activa/organismos.json"
        },
        {
          "label": "Brechas",
          "href": "/herramientas/transparencia-activa/brechas/"
        },
        {
          "label": "JSON brechas",
          "href": "/herramientas/transparencia-activa/brechas.json"
        },
        {
          "label": "Pedidos sugeridos",
          "href": "/herramientas/transparencia-activa/pedidos/"
        },
        {
          "label": "JSON pedidos",
          "href": "/herramientas/transparencia-activa/pedidos.json"
        },
        {
          "label": "JSON",
          "href": "/herramientas/transparencia-activa.json"
        },
        {
          "label": "Viajes organismos",
          "href": "/herramientas/viajes/organismos/"
        },
        {
          "label": "Cargos organismos",
          "href": "/herramientas/cargos/organismos/"
        },
        {
          "label": "Pauta",
          "href": "/herramientas/pauta/"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        }
      ]
    },
    {
      "id": "tribunal-cuentas",
      "title": "Tribunal de Cuentas",
      "href": "/herramientas/tribunal-cuentas/",
      "status": "Radar documental + índice semilla",
      "health": "draft",
      "source": "Tribunal de Cuentas / resoluciones y organismos públicos",
      "cadence": "Se actualiza cuando se releven nuevas fuentes o cambie el método.",
      "coverage": "Radar documental e índice semilla para observaciones, reiteraciones, resoluciones, organismos y cruces con otros módulos.",
      "lastUpdated": "2026-05-31T00:00:00-03:00",
      "range": "primer mapa de fuentes, brechas y registros semilla",
      "artifacts": 22,
      "rows": 143,
      "metrics": [
        {
          "label": "registros",
          "value": "6"
        },
        {
          "label": "observaciones mantenidas",
          "value": "3"
        },
        {
          "label": "monto semilla",
          "value": "$ 135,8 M · ≈ USD 3,3 M"
        },
        {
          "label": "cruces",
          "value": "14"
        },
        {
          "label": "cruces pendientes",
          "value": "8"
        },
        {
          "label": "fuentes",
          "value": "5"
        },
        {
          "label": "dimensiones",
          "value": "6"
        },
        {
          "label": "brechas",
          "value": "5"
        },
        {
          "label": "alta prioridad",
          "value": "3"
        },
        {
          "label": "pedidos",
          "value": "3"
        },
        {
          "label": "campos mínimos",
          "value": "25"
        },
        {
          "label": "normalizados",
          "value": "6"
        },
        {
          "label": "ordenador pend.",
          "value": "4"
        },
        {
          "label": "normalización",
          "value": "13"
        },
        {
          "label": "catálogos",
          "value": "48"
        },
        {
          "label": "bloqueantes",
          "value": "7"
        },
        {
          "label": "borradores promoción",
          "value": "25"
        },
        {
          "label": "promoción con pista",
          "value": "8"
        },
        {
          "label": "ventanas relev.",
          "value": "18"
        },
        {
          "label": "pendientes relev.",
          "value": "17"
        },
        {
          "label": "años relev.",
          "value": "7"
        }
      ],
      "limits": [
        "No publica todavía un ranking de organismos observados: primero falta normalizar resoluciones, causales y actos de reiteración.",
        "Una observación del Tribunal de Cuentas no equivale por sí sola a corrupción ni a delito.",
        "Los cruces con compras, cargos, viajes u obras deben tratarse como pistas hasta confirmar expediente y documento."
      ],
      "nextSteps": [
        "Escalar el índice semilla a un relevamiento completo de resoluciones, observaciones y reiteraciones.",
        "Completar ordenadores firmantes y actos de reiteración para los registros semilla.",
        "Conectar resoluciones con Compras, Pauta, Cargos, Viajes y Presupuesto solo cuando haya identificadores o documentos suficientes."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/tribunal-cuentas/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/tribunal-cuentas.json"
        },
        {
          "label": "Datos",
          "href": "/herramientas/tribunal-cuentas/datos/"
        },
        {
          "label": "Registros",
          "href": "/herramientas/tribunal-cuentas/registros/"
        },
        {
          "label": "JSON registros",
          "href": "/herramientas/tribunal-cuentas/registros.json"
        },
        {
          "label": "CSV registros",
          "href": "/herramientas/tribunal-cuentas/datos/registros.csv"
        },
        {
          "label": "Cruces",
          "href": "/herramientas/tribunal-cuentas/cruces/"
        },
        {
          "label": "JSON cruces",
          "href": "/herramientas/tribunal-cuentas/cruces.json"
        },
        {
          "label": "CSV cruces",
          "href": "/herramientas/tribunal-cuentas/datos/cruces.csv"
        },
        {
          "label": "Fuentes",
          "href": "/herramientas/tribunal-cuentas/fuentes/"
        },
        {
          "label": "JSON fuentes",
          "href": "/herramientas/tribunal-cuentas/fuentes.json"
        },
        {
          "label": "Brechas",
          "href": "/herramientas/tribunal-cuentas/brechas/"
        },
        {
          "label": "JSON brechas",
          "href": "/herramientas/tribunal-cuentas/brechas.json"
        },
        {
          "label": "Pedidos",
          "href": "/herramientas/tribunal-cuentas/pedidos/"
        },
        {
          "label": "JSON pedidos",
          "href": "/herramientas/tribunal-cuentas/pedidos.json"
        },
        {
          "label": "Normalización",
          "href": "/herramientas/tribunal-cuentas/normalizacion/"
        },
        {
          "label": "JSON normalización",
          "href": "/herramientas/tribunal-cuentas/normalizacion.json"
        },
        {
          "label": "Catálogos",
          "href": "/herramientas/tribunal-cuentas/catalogos/"
        },
        {
          "label": "JSON catálogos",
          "href": "/herramientas/tribunal-cuentas/catalogos.json"
        },
        {
          "label": "Promoción",
          "href": "/herramientas/tribunal-cuentas/promocion/"
        },
        {
          "label": "JSON promoción",
          "href": "/herramientas/tribunal-cuentas/promocion.json"
        },
        {
          "label": "CSV promoción",
          "href": "/herramientas/tribunal-cuentas/datos/promocion.csv"
        },
        {
          "label": "Relevamiento",
          "href": "/herramientas/tribunal-cuentas/relevamiento/"
        },
        {
          "label": "JSON relevamiento",
          "href": "/herramientas/tribunal-cuentas/relevamiento.json"
        },
        {
          "label": "CSV relevamiento",
          "href": "/herramientas/tribunal-cuentas/datos/relevamiento.csv"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        },
        {
          "label": "Método",
          "href": "/herramientas/metodo/"
        }
      ]
    },
    {
      "id": "votaciones-parlamentarias",
      "title": "Votaciones parlamentarias",
      "href": "/herramientas/votaciones-parlamentarias/",
      "status": "Mapa de evidencia",
      "health": "draft",
      "source": "Diarios de Sesiones del Parlamento, Reglamento del Senado y Plan de Gobierno Abierto 2025-2029.",
      "cadence": "Se actualiza cuando se releven nuevas sesiones, cambien fuentes parlamentarias o se publique un dataset nominal.",
      "coverage": "Clasificación de evidencia para votaciones parlamentarias: exacto, agregado, inferido y faltante.",
      "lastUpdated": "2026-06-04T00:00:00-03:00",
      "range": "Diarios de Sesiones del Parlamento; Senado listado hasta 25/02/2026 en la década actual.",
      "artifacts": 2,
      "rows": 15,
      "metrics": [
        {
          "label": "niveles",
          "value": "4"
        },
        {
          "label": "fuentes",
          "value": "4"
        },
        {
          "label": "oficiales",
          "value": "3"
        },
        {
          "label": "colecciones",
          "value": "4"
        },
        {
          "label": "Senado hasta",
          "value": "25/02/2026"
        },
        {
          "label": "dataset limpio",
          "value": "0"
        }
      ],
      "limits": [
        "No acusa ni evalúa la conducta de legisladores; clasifica evidencia pública disponible.",
        "No afirma voto individual si el Diario solo publica totales agregados.",
        "No convierte bancada, unanimidad o declaraciones en voto exacto sin marca explícita de inferencia.",
        "No reemplaza el Diario de Sesiones ni el reglamento; enlaza fuente y criterio para revisar."
      ],
      "nextSteps": [
        "Armar extractor de Diarios de Sesiones por cámara, fecha y asunto.",
        "Detectar automáticamente fórmulas de votación y fundamentos de voto.",
        "Publicar CSV/JSON con proyecto, cámara, fecha, resultado, nivel de evidencia y fuente.",
        "Preparar pedidos de acceso para tramos donde falta nómina individual reutilizable."
      ],
      "links": [
        {
          "label": "Abrir módulo",
          "href": "/herramientas/votaciones-parlamentarias/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/votaciones-parlamentarias.json"
        },
        {
          "label": "Hemeroteca",
          "href": "https://biblioteca.parlamento.gub.uy/PublicacionesPeriodicas/busquedalibreTimeLine/?op=ds"
        },
        {
          "label": "Reglamento Senado",
          "href": "https://pmb.parlamento.gub.uy/pmb/opac_css/index.php?id=116257&lvl=notice_display"
        },
        {
          "label": "Gobierno Abierto",
          "href": "https://www.gub.uy/agencia-gobierno-electronico-sociedad-informacion-conocimiento/book/9361/download"
        },
        {
          "label": "Infobae/EFE",
          "href": "https://www.infobae.com/america/agencias/2023/10/18/el-parlamento-uruguayo-estrena-su-sistema-de-voto-electronico/"
        },
        {
          "label": "Preparar pedido",
          "href": "/herramientas/expedientes/nuevo/"
        }
      ]
    },
    {
      "id": "feed-global",
      "title": "Feed global",
      "href": "/herramientas/feed/",
      "status": "Activo",
      "health": "active",
      "source": "Eventos normalizados de Compras, Expedientes, Pauta, Gasto territorial, Transparencia, Tribunal, Viajes y Cargos.",
      "cadence": "Se regenera con el build del sitio.",
      "coverage": "Novedades de módulos, controles futuros, respuestas, alertas y cambios de dataset.",
      "lastUpdated": "2026-06-05T00:12:41.539Z",
      "range": "2026-06-26",
      "artifacts": 3,
      "rows": 120,
      "metrics": [
        {
          "label": "eventos",
          "value": "120"
        },
        {
          "label": "módulos",
          "value": "8"
        },
        {
          "label": "expedientes",
          "value": "52"
        }
      ],
      "limits": [
        "No todos los eventos tienen la misma semántica de fecha.",
        "El feed mezcla actualizaciones, controles y señales; la ficha del módulo conserva el contexto."
      ],
      "nextSteps": [
        "Permitir feeds filtrados por organismo, proveedor o etiqueta.",
        "Conectar eventos del feed con seguimiento liviano por tema."
      ],
      "links": [
        {
          "label": "Abrir feed",
          "href": "/herramientas/feed/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/feed.json"
        },
        {
          "label": "RSS",
          "href": "/herramientas/feed.xml"
        }
      ]
    },
    {
      "id": "buscador",
      "title": "Buscador transversal",
      "href": "/herramientas/buscar/",
      "status": "Activo",
      "health": "active",
      "source": "Índice local armado desde datos publicados de Pistas públicas.",
      "cadence": "Se regenera con el build del sitio.",
      "coverage": "Compras, proveedores, patrones, precios, expedientes, pauta, viajes, cargos, territorio, documentos y eventos.",
      "lastUpdated": "2026-06-05T00:12:43.764Z",
      "range": "índice operativo",
      "artifacts": 1,
      "rows": 1200,
      "metrics": [
        {
          "label": "registros",
          "value": "1.200"
        },
        {
          "label": "módulos",
          "value": "10"
        },
        {
          "label": "tipos",
          "value": "13"
        }
      ],
      "limits": [
        "Es búsqueda textual local; no es motor semántico ni ranking jurídico.",
        "Cada resultado debe leerse en la ficha del módulo correspondiente."
      ],
      "nextSteps": [
        "Agregar resultados filtrados por organismo o proveedor persistente.",
        "Usar el endpoint JSON como base para integraciones livianas y canales derivados."
      ],
      "links": [
        {
          "label": "Abrir buscador",
          "href": "/herramientas/buscar/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/buscar.json"
        }
      ]
    },
    {
      "id": "seguimiento",
      "title": "Seguimiento ciudadano",
      "href": "/herramientas/seguimiento/",
      "status": "Piloto",
      "health": "active",
      "source": "Canales filtrados desde el feed global y el índice transversal.",
      "cadence": "Se regenera con el build del sitio.",
      "coverage": "Organismos, proveedores, etiquetas, expedientes y módulos seguibles sin cuentas de usuario.",
      "lastUpdated": "2026-06-05T00:12:43.764Z",
      "range": "2026-06-26T12:00:00.000Z",
      "artifacts": 28,
      "rows": 667,
      "metrics": [
        {
          "label": "canales",
          "value": "13"
        },
        {
          "label": "eventos",
          "value": "277"
        },
        {
          "label": "registros",
          "value": "390"
        }
      ],
      "limits": [
        "No crea cuentas ni preferencias privadas; todo seguimiento es público y compartible.",
        "La coincidencia textual puede traer contexto amplio y debe revisarse en la ficha original.",
        "El canal ordena señales, no publica conclusiones."
      ],
      "nextSteps": [
        "Convertir búsquedas guardables de alto uso en canales RSS/JSON permanentes.",
        "Evaluar alertas por correo o Telegram sobre los mismos RSS/JSON.",
        "Integrar aportes documentales recibidos con fichas y expedientes."
      ],
      "links": [
        {
          "label": "Abrir seguimiento",
          "href": "/herramientas/seguimiento/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/seguimiento.json"
        },
        {
          "label": "RSS por canal",
          "href": "/herramientas/seguimiento/modulo-compras.xml"
        }
      ]
    },
    {
      "id": "aportes-correcciones",
      "title": "Aportes y correcciones",
      "href": "/herramientas/aportes/",
      "status": "Activo",
      "health": "active",
      "source": "Política pública de recepción de aportes documentales, correcciones y respuestas.",
      "cadence": "Se actualiza con cambios de política editorial o canales.",
      "coverage": "Correcciones de datos, aportes documentales, derecho de respuesta y colaboración periodística.",
      "lastUpdated": "2026-06-05T00:12:43.764Z",
      "range": "canal permanente",
      "artifacts": 2,
      "rows": 4,
      "metrics": [
        {
          "label": "canales",
          "value": "4"
        },
        {
          "label": "principios",
          "value": "5"
        },
        {
          "label": "pasos",
          "value": "5"
        }
      ],
      "limits": [
        "El formulario no sube archivos ni crea una cuenta; prepara un correo estructurado.",
        "No se publican acusaciones sin soporte documental verificable.",
        "La incorporación de un aporte depende de pertinencia, fuente y revisión editorial."
      ],
      "nextSteps": [
        "Evaluar formulario backend con adjuntos si el volumen lo justifica.",
        "Registrar públicamente correcciones relevantes por ficha.",
        "Conectar aportes aceptados con expedientes y feed global."
      ],
      "links": [
        {
          "label": "Abrir canal",
          "href": "/herramientas/aportes/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/aportes.json"
        }
      ]
    },
    {
      "id": "metodo-suite",
      "title": "Método común",
      "href": "/herramientas/metodo/",
      "status": "Activo",
      "health": "active",
      "source": "Política editorial y operativa común para todos los módulos de Pistas públicas.",
      "cadence": "Se actualiza cuando cambia el método de lectura o publicación.",
      "coverage": "Datos oficiales, criterios, alertas, fichas, preguntas, expedientes, respuestas y correcciones.",
      "lastUpdated": "2026-06-05T00:12:43.764Z",
      "range": "versión 2026-05-29",
      "artifacts": 2,
      "rows": 16,
      "metrics": [
        {
          "label": "pasos",
          "value": "6"
        },
        {
          "label": "principios",
          "value": "5"
        },
        {
          "label": "límites",
          "value": "5"
        }
      ],
      "limits": [
        "Es un método de lectura y publicación; no reemplaza investigación ni expediente.",
        "Cada módulo puede tener reglas específicas adicionales.",
        "El ensayo editorial sigue separado del método operativo."
      ],
      "nextSteps": [
        "Vincular cada ficha crítica con su criterio metodológico exacto.",
        "Publicar historial de cambios del método cuando evolucione."
      ],
      "links": [
        {
          "label": "Abrir método",
          "href": "/herramientas/metodo/"
        },
        {
          "label": "JSON",
          "href": "/herramientas/metodo.json"
        }
      ]
    }
  ]
}