{
  "schemaVersion": 1,
  "generatedAt": "2026-08-21T23:38:34.355Z",
  "language": "es-AR",
  "title": "Inventario de visibilidad de datos",
  "description": "Mapa publico para saber que datasets existen, de donde salen, si estan visibles en la web y que notas operativas conviene considerar.",
  "visibilityStates": {
    "visible": "Tiene pantalla publica navegable.",
    "partial": "Tiene pantalla publica y alguna parte se actualiza por fallback o sincronizacion.",
    "api-only": "Disponible por endpoint/JSON para agentes o integraciones; sin pantalla humana completa.",
    "internal": "Pieza interna o administrativa; no es una pantalla publica faltante."
  },
  "summary": {
    "totalItems": 7,
    "visibleItems": 6,
    "partialItems": 0,
    "apiOnlyItems": 1,
    "internalItems": 0
  },
  "items": [
    {
      "id": "boletines",
      "title": "Boletines oficiales y bloques de texto",
      "area": "Boletines",
      "coverage": "2010-2026",
      "source": "Supabase REST como lectura primaria; JSON publicos como fallback operativo.",
      "sourceModels": [
        "official_bulletin_search_index"
      ],
      "endpoint": "/api/index.php?action=bulletin_search",
      "webRoute": "/boletines",
      "visibility": "visible",
      "sqlReadState": "primary",
      "improvementNotes": [
        "Mejorar el filtro por fecha del acto en SQL cuando haya que hacer consultas masivas por rango."
      ],
      "priority": "alta"
    },
    {
      "id": "proveedores",
      "title": "Proveedores y contrataciones detectadas",
      "area": "Contrataciones",
      "coverage": "2010-2026",
      "source": "Supabase REST como lectura primaria; JSON/CSV publicos como respaldo descargable.",
      "sourceModels": [
        "procurement_supplier_records",
        "procurement_supplier_summary",
        "procurement_supplier_line_reviews"
      ],
      "endpoint": "/api/index.php?action=procurement_suppliers",
      "webRoute": "/boletines/proveedores",
      "visibility": "visible",
      "sqlReadState": "primary",
      "improvementNotes": [
        "Mantener visible el total de lineas sin monto y el listado de casos por recorte.",
        "Seguir auditando montos solo cuando la fuente oficial publique importes atribuibles."
      ],
      "priority": "alta"
    },
    {
      "id": "transparencia",
      "title": "Rendicion, metricas presupuestarias y tasas",
      "area": "Transparencia",
      "coverage": "2025 publicado; preparado para mas ejercicios cuando existan fuentes normalizadas.",
      "source": "Supabase REST como lectura primaria; JSON publicos como fallback.",
      "sourceModels": [
        "accountability_reports",
        "accountability_metrics",
        "municipal_tax_rows"
      ],
      "endpoint": "/api/index.php?action=public_finance",
      "webRoute": "/transparencia",
      "relatedRoutes": [
        "/tasas"
      ],
      "visibility": "visible",
      "sqlReadState": "primary",
      "improvementNotes": [
        "Sumar ejercicios anteriores cuando existan rendiciones historicas normalizadas."
      ],
      "priority": "media"
    },
    {
      "id": "personas-sibom",
      "title": "Personas y movimientos en anexos SIBOM",
      "area": "Personal y programas",
      "coverage": "4589 registros de 11 actos en las ediciones 117 y 118.",
      "source": "Anexos PDF oficiales SIBOM con extracción estructurada, página fuente y campos originales preservados.",
      "sourceModels": [
        "SibomAnnexRecordDataset"
      ],
      "endpoint": "/data/boletines/sibom-annex-records.json",
      "webRoute": "/boletines/personas",
      "relatedRoutes": [
        "/boletines",
        "/transparencia/personal-municipal-2018",
        "/organigrama"
      ],
      "visibility": "visible",
      "sqlReadState": "static-json",
      "improvementNotes": [
        "Mantener separados los regímenes beca laboral, tallerista y personal municipal con tipo de planta no especificado.",
        "Revisar manualmente los registros marcados needs-review antes de usar su documento como clave de identidad."
      ],
      "priority": "alta"
    },
    {
      "id": "personal-municipal-2018",
      "title": "Personal municipal 2018",
      "area": "Transparencia",
      "coverage": "1652 personas; 491 asignaciones con detalle.",
      "source": "PDF municipal procesado con pdftotext; JSON/CSV públicos con DNI/documento, CUIL y fecha de nacimiento cuando constan en la fuente.",
      "sourceModels": [
        "MunicipalStaff2018Dataset"
      ],
      "endpoint": "/data/transparencia/personal-municipal-2018.json",
      "webRoute": "/transparencia/personal-municipal-2018",
      "relatedRoutes": [
        "/transparencia",
        "/boletines"
      ],
      "visibility": "visible",
      "sqlReadState": "static-json",
      "improvementNotes": [
        "Mantener staff:crosscheck-sibom dentro del refresco publico para recalcular designaciones, bajas, renuncias, licencias y jubilaciones cuando cambien boletines.",
        "Usar personal-municipal-2018-sibom-revision.json como cola operativa para validar coincidencias medias, bonificaciones y continuidad probable."
      ],
      "priority": "alta"
    },
    {
      "id": "busqueda-ia",
      "title": "Búsqueda pública de Datos Chivilcoy para agentes IA",
      "area": "IA y descubrimiento",
      "coverage": "Boletines, documentos, tasas y rendición. Excluye el contenido demostrativo de Renovación HCD.",
      "source": "Supabase full-text por proxy PHP con cache server-side.",
      "sourceModels": [
        "search_data_portal_corpus",
        "ai_public_search_documents"
      ],
      "endpoint": "/api/index.php?action=public_search&q=consulta",
      "webRoute": "/datos",
      "visibility": "api-only",
      "sqlReadState": "primary",
      "improvementNotes": [
        "Crear una busqueda global humana solo si se decide exponer este corpus fuera de agentes IA."
      ],
      "priority": "media"
    },
    {
      "id": "documentos-publicos",
      "title": "Inventario de documentos publicos",
      "area": "Documentos",
      "coverage": "PDFs y documentos publicados por el sitio.",
      "source": "Indice SQL y archivos publicos; los binarios quedan fuera de Postgres.",
      "sourceModels": [
        "public_document_index"
      ],
      "endpoint": "/api/index.php?action=public_search&entityType=documento_publico",
      "webRoute": "/documentos",
      "visibility": "visible",
      "sqlReadState": "primary",
      "improvementNotes": [
        "Mantener el listado navegable sincronizado con public_document_index y revisar metadatos de año/origen cuando falten."
      ],
      "priority": "media"
    }
  ]
}
