{
  "meta": {
    "schema_version": "transparency_dashboard_v1",
    "generated_at": "2026-08-19T22:50:48+00:00",
    "source_status_generated_at": "2026-08-12T11:09:08+00:00",
    "latest_release_date": "2026-08-19T22:36:55+00:00",
    "freshness_contract": "docs/method/truth-contract.md#estados-de-frescura"
  },
  "policy": {
    "data_origin": "official_real_records_and_verified_project_releases_only",
    "synthetic_or_mock_records": "forbidden",
    "placeholder_releases": "forbidden",
    "public_domain_personal_information": "retained",
    "metric_trace_required": true
  },
  "headline": {
    "last_refresh_at": "2026-08-12T11:09:08+00:00",
    "latest_snapshot_date": "2026-08-19",
    "latest_snapshot_release_id": "5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd",
    "latest_release_id": "indicators-mvp-2026-08-20",
    "latest_release_date": "2026-08-19T22:36:55+00:00"
  },
  "metrics": [
    {
      "id": "sources_ok",
      "label": "Fuentes OK",
      "value": 28,
      "unit": "fuentes",
      "source_path": "ui/gh-pages-next/public/explorer-sources/data/status.json",
      "source_url": "/explorer-sources/data/status.json"
    },
    {
      "id": "sources_degraded",
      "label": "Fuentes degradadas",
      "value": 1,
      "unit": "fuentes",
      "source_path": "ui/gh-pages-next/public/explorer-sources/data/status.json",
      "source_url": "/explorer-sources/data/status.json"
    },
    {
      "id": "sources_not_run",
      "label": "Fuentes no ejecutadas",
      "value": 19,
      "unit": "fuentes",
      "source_path": "ui/gh-pages-next/public/explorer-sources/data/status.json",
      "source_url": "/explorer-sources/data/status.json"
    },
    {
      "id": "open_obstructions",
      "label": "Incidencias abiertas",
      "value": 27,
      "unit": "incidencias",
      "source_path": "ui/gh-pages-next/public/obstruction-tracker/data/obstructions.json",
      "source_url": "/obstruction-tracker/data/obstructions.json"
    },
    {
      "id": "obstruction_evidence",
      "label": "Evidencias públicas",
      "value": 119,
      "unit": "ficheros",
      "source_path": "ui/gh-pages-next/public/obstruction-tracker/evidence/manifest.json",
      "source_url": "/obstruction-tracker/evidence/manifest.json"
    },
    {
      "id": "validated_real_corpora",
      "label": "Corpus reales validados",
      "value": 7,
      "unit": "corpora",
      "source_path": "etl/data/published/scale-readiness-latest.json",
      "source_url": "https://github.com/gsusI/vota-con-la-chola/blob/main/etl/data/published/scale-readiness-latest.json"
    },
    {
      "id": "real_million_scale_lanes",
      "label": "Lanes de millón",
      "value": 3,
      "unit": "lanes",
      "source_path": "etl/data/published/scale-readiness-latest.json",
      "source_url": "https://github.com/gsusI/vota-con-la-chola/blob/main/etl/data/published/scale-readiness-latest.json"
    },
    {
      "id": "promoted_lanes",
      "label": "Lanes promovidas",
      "value": 0,
      "unit": "lanes",
      "source_path": "etl/data/published/scale-readiness-latest.json",
      "source_url": "https://github.com/gsusI/vota-con-la-chola/blob/main/etl/data/published/scale-readiness-latest.json"
    },
    {
      "id": "published_snapshot_rows",
      "label": "Filas en origen público",
      "value": 5414326,
      "unit": "filas",
      "source_path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
      "source_url": "https://huggingface.co/datasets/JesusIC/vota-con-la-chola-data/resolve/main/scale/snapshots/2026-08-19/5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd/manifest.json"
    },
    {
      "id": "published_snapshot_files",
      "label": "Ficheros de datos públicos",
      "value": 8597,
      "unit": "ficheros",
      "source_path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
      "source_url": "https://huggingface.co/datasets/JesusIC/vota-con-la-chola-data/resolve/main/scale/snapshots/2026-08-19/5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd/manifest.json"
    }
  ],
  "source_health": {
    "summary": {
      "desired": 48,
      "present": 48,
      "missing": 0,
      "ok": 28,
      "degraded": 1,
      "not_run": 19,
      "partial": 0,
      "error": 0,
      "running": 0,
      "unknown": 0
    },
    "freshness": {
      "tier": "fresh",
      "label": "reciente",
      "data_age_days": 7,
      "should_warn": false,
      "detail": "Corte reciente: 7 días de antigüedad."
    },
    "source_path": "ui/gh-pages-next/public/explorer-sources/data/status.json",
    "source_url": "/explorer-sources/data/status.json",
    "source_sha256": "fc04e436561c63edcf21696743d74bae8fb7517edcfd310dccc7567f6cb57640"
  },
  "obstruction": {
    "open_incidents_total": 27,
    "blocked_sources_total": 14,
    "evidence_files_total": 119,
    "source_path": "ui/gh-pages-next/public/obstruction-tracker/data/obstructions.json",
    "source_url": "/obstruction-tracker/data/obstructions.json",
    "source_sha256": "b4a3d90e330250d7e9528a9f9871cc4117aca98bc8285945e2fde3481266c5e0",
    "evidence_manifest_url": "/obstruction-tracker/evidence/manifest.json",
    "evidence_manifest_sha256": "5264e48e8eac157e55b69fbf8432133a0f9f1e3eebaea3154801184b223046fe"
  },
  "scale_readiness": {
    "status": "real_foundation_ready_scale_incomplete",
    "summary": {
      "registered_real_corpora": 7,
      "validated_real_corpora": 7,
      "real_million_scale_lanes": 3,
      "promoted_lanes": 0,
      "open_gaps": 4
    },
    "source_path": "etl/data/published/scale-readiness-latest.json",
    "source_url": "https://github.com/gsusI/vota-con-la-chola/blob/main/etl/data/published/scale-readiness-latest.json",
    "source_sha256": "8f3c613fb6fbca59a7c61d59581f0fc2c1aafeaeefc46082a2f211e06237ad1f"
  },
  "published_snapshot": {
    "verification_status": "verified_current_scale_origin",
    "verification_passed": true,
    "metadata_freshness": true,
    "warnings": [],
    "dataset_repo": "JesusIC/vota-con-la-chola-data",
    "snapshot_date": "2026-08-19",
    "release_id": "5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd",
    "schema_version": "real-scale-origin-bundle-v2",
    "snapshot_path": "scale/snapshots/2026-08-19/5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd",
    "corpora_total": 7,
    "rows_total": 5414326,
    "data_files_total": 8597,
    "data_bytes_total": 500714815,
    "corpora": [
      {
        "bytes": 1271649,
        "files": 13,
        "id": "accountability_ledger",
        "rows": 126760
      },
      {
        "bytes": 9236064,
        "files": 108,
        "id": "actor_mandates",
        "rows": 88031
      },
      {
        "bytes": 42955289,
        "files": 14,
        "id": "bdns_public_money",
        "rows": 1360382
      },
      {
        "bytes": 2083541,
        "files": 2,
        "id": "candidate_occurrences",
        "rows": 10820
      },
      {
        "bytes": 253373860,
        "files": 37,
        "id": "eurostat_indicators",
        "rows": 1755809
      },
      {
        "bytes": 170990631,
        "files": 8373,
        "id": "member_votes",
        "rows": 1809222
      },
      {
        "bytes": 20803781,
        "files": 50,
        "id": "placsp_public_money",
        "rows": 263302
      }
    ],
    "freshness": {
      "tier": "fresh",
      "label": "reciente",
      "data_age_days": 0,
      "should_warn": false,
      "detail": "Corte reciente: 0 días de antigüedad."
    },
    "pointer_url": "https://huggingface.co/datasets/JesusIC/vota-con-la-chola-data/resolve/main/scale/latest.json",
    "manifest_url": "https://huggingface.co/datasets/JesusIC/vota-con-la-chola-data/resolve/main/scale/snapshots/2026-08-19/5d9ce557ed864de56f677a9f82c999a4ec0dfc494c086b1bfca0bb2e461272dd/manifest.json",
    "verification_evidence_path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
    "verification_evidence_url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
    "verification_evidence_sha256": "dc6ed2b6d5e2fbe30a09bc98a52d90f022bfbb73da51a6422319bb43b0af2fa1"
  },
  "recent_changes": [
    {
      "id": "indicators-mvp-2026-08-20",
      "date": "2026-08-19T22:36:55+00:00",
      "status": "published_live_verified",
      "title": "Indicators MVP",
      "summary": "Materializa 2.091 observaciones reales de PIB por habitante Eurostat como definición -> release -> territorio -> periodo -> celda, preservando 113 marcas provisionales y sin inferir causalidad, mérito ni culpa.",
      "public_routes": [
        "/indicators/",
        "/indicators/data/eurostat-gdp-es.json"
      ],
      "note": {
        "path": "docs/release-notes/indicators-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/indicators-mvp.md",
        "bytes": 5625,
        "sha256": "035130ccc5a5f055f723caa3c17fac57b00d6d3281caa1073a0cb4364a67b778"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/INDICATORS-20260820/evidence/eurostat-gdp-materialization.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/INDICATORS-20260820/evidence/eurostat-gdp-materialization.json",
          "sha256": "ad125bc1a4b4a7198855b2189f97ab0bb363ae58223ef2bb1e9e400f25b9e8c3"
        },
        {
          "path": "docs/etl/sprints/INDICATORS-20260820/evidence/eurostat-gdp-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/INDICATORS-20260820/evidence/eurostat-gdp-validation.json",
          "sha256": "97e7adb2d918154f0c0b712a000fe37eb9f3f3ab3c934d75f062db3c4926e182"
        },
        {
          "path": "docs/etl/sprints/INDICATORS-20260820/evidence/live-eurostat-gdp-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/INDICATORS-20260820/evidence/live-eurostat-gdp-verification.json",
          "sha256": "cbb5f3d2afdcf83fa4ac6743c7865e2c466045c641670bc3140ce1a693d31c2c"
        },
        {
          "path": "docs/etl/sprints/INDICATORS-20260820/evidence/live-route-audit.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/INDICATORS-20260820/evidence/live-route-audit.json",
          "sha256": "9df5fcc34140e56a5fd7acbff57b512702c93aa546151a6e1a9fffb0f3c92bc5"
        },
        {
          "path": "tests/test_eurostat_gdp_indicator_real_pipeline.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_eurostat_gdp_indicator_real_pipeline.py",
          "sha256": "599e21f486478dce6e88b22aa48eb22bb881fb27b7c106a9c02320aae8144bba"
        },
        {
          "path": "tests/test_eurostat_gdp_indicator_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_eurostat_gdp_indicator_ui_contract.js",
          "sha256": "4eb933e55209b788d4f3408d7bfba3b463f858ca6c2c2ccf15b0e2e8da664025"
        }
      ]
    },
    {
      "id": "geopolitics-mvp-2026-08-20",
      "date": "2026-08-19T22:05:00+00:00",
      "status": "published_live_verified",
      "title": "Geopolitics connector MVP",
      "summary": "Materializa dos acciones exteriores reales de La Moncloa como fuente -> etapa jurídica -> actores -> evidencia, sin inferir vigencia, implementación, alineamiento, influencia ni impacto.",
      "public_routes": [
        "/geopolitics/",
        "/geopolitics/data/moncloa-sample.json"
      ],
      "note": {
        "path": "docs/release-notes/geopolitics-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/geopolitics-mvp.md",
        "bytes": 4938,
        "sha256": "5477691dec6746295d2ebbf27da02a0c4ff9bbce7c6e9c81b7b3e6a1dc7e7865"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/GEOPOLITICS-20260819/evidence/moncloa-geopolitics-materialization.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/GEOPOLITICS-20260819/evidence/moncloa-geopolitics-materialization.json",
          "sha256": "12245f841cb33f3d35758776ddb7a6eb198711edb110e1a5011a72bddbafdfdc"
        },
        {
          "path": "docs/etl/sprints/GEOPOLITICS-20260819/evidence/moncloa-geopolitics-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/GEOPOLITICS-20260819/evidence/moncloa-geopolitics-validation.json",
          "sha256": "70920625ad8e29082a6483721e11a265d7b822897cad56b02fd762c021f52c09"
        },
        {
          "path": "docs/etl/sprints/GEOPOLITICS-20260819/evidence/live-moncloa-geopolitics-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/GEOPOLITICS-20260819/evidence/live-moncloa-geopolitics-verification.json",
          "sha256": "6905c50cdf4f3cc38b13d434c863fdb72464122cb77a634a173b4113d3a6f6b8"
        },
        {
          "path": "tests/test_moncloa_geopolitics_real_pipeline.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_moncloa_geopolitics_real_pipeline.py",
          "sha256": "36d1ce2b3755be125948cf63ddabbe270ce0d969712db1bbd0a8d8e5517168e4"
        },
        {
          "path": "tests/test_moncloa_geopolitics_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_moncloa_geopolitics_ui_contract.js",
          "sha256": "0a262c6d288899d921784943e02240486a3a8163964790bd64792729244b8405"
        }
      ]
    },
    {
      "id": "agreements-connector-mvp-2026-08-19",
      "date": "2026-08-19T21:30:00+00:00",
      "status": "published_live_verified",
      "title": "Agreements and meetings connector MVP",
      "summary": "Materializa 11 acuerdos reales del Consejo de Ministros como sesión -> acuerdo -> actores -> evidencia, con temas derivados visibles y cero asistentes o influencia inventados.",
      "public_routes": [
        "/agreements/",
        "/agreements/data/moncloa-sample.json"
      ],
      "note": {
        "path": "docs/release-notes/agreements-connector-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/agreements-connector-mvp.md",
        "bytes": 4869,
        "sha256": "70b772108e3f960844752583f631a5cedf1bb0dc5e93dc5e2d0d378108a712e2"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/AGREEMENTS-20260819/evidence/moncloa-agreements-materialization.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/AGREEMENTS-20260819/evidence/moncloa-agreements-materialization.json",
          "sha256": "f2e4b040f23409f0281cf2082e14a1f478f459ab396fb54bfcf15c2686bff791"
        },
        {
          "path": "docs/etl/sprints/AGREEMENTS-20260819/evidence/moncloa-agreements-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/AGREEMENTS-20260819/evidence/moncloa-agreements-validation.json",
          "sha256": "1bbf2d3406c3f447b4ec179e1672e80881ac568ad780f1ab32769f6a10965ae1"
        },
        {
          "path": "docs/etl/sprints/AGREEMENTS-20260819/evidence/live-moncloa-agreements-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/AGREEMENTS-20260819/evidence/live-moncloa-agreements-verification.json",
          "sha256": "cae7be7dc7d0b1ef83ed493044bf793c157c870a2fbb3658d3a66a24a8f4ae7d"
        },
        {
          "path": "tests/test_moncloa_agreements_real_pipeline.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_moncloa_agreements_real_pipeline.py",
          "sha256": "4f36b156e792e4991f9bf8b8ec60444a972c3e8d2afe46c525af5c4ed4c96905"
        },
        {
          "path": "tests/test_moncloa_agreements_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_moncloa_agreements_ui_contract.js",
          "sha256": "57696c64d230b335a8eaafbb9ad94124170dcae1df7e718f247754b803bdbd63"
        }
      ]
    },
    {
      "id": "promises-pipeline-mvp-2026-08-19",
      "date": "2026-08-19T20:00:00+00:00",
      "status": "published_live_verified",
      "title": "Promises pipeline MVP",
      "summary": "Modela 91 promesas reales del programa oficial BNG 2023 y publica 20 con actor, cita, página, topic y hashes, sin atribuir cumplimiento.",
      "public_routes": [
        "/promises/",
        "/promises/data/bng-2023.json"
      ],
      "note": {
        "path": "docs/release-notes/promises-pipeline-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/promises-pipeline-mvp.md",
        "bytes": 3037,
        "sha256": "3548678ba1388f323c252142c3d4a702fd07253b810f387f8a71ba6448dc82cf"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/PROMISES-20260819/evidence/promises-bng-2023-ingest.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/PROMISES-20260819/evidence/promises-bng-2023-ingest.json",
          "sha256": "444548f715d4c733305a4be245f33db326f406840004a3914b8f644f52fc91c5"
        },
        {
          "path": "docs/etl/sprints/PROMISES-20260819/evidence/promises-bng-2023-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/PROMISES-20260819/evidence/promises-bng-2023-validation.json",
          "sha256": "02d54c2db7ad3686696b680492eaf8f24573aefc3c1c5738a012f220be1ade50"
        },
        {
          "path": "docs/etl/sprints/PROMISES-20260819/evidence/live-promises-bng-2023-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/PROMISES-20260819/evidence/live-promises-bng-2023-verification.json",
          "sha256": "4af9e3e0cc043a2f0935e9beb54c6c542e016e02f648008816625e9cd24bc2c0"
        },
        {
          "path": "tests/test_manifesto_promises_real_pipeline.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_manifesto_promises_real_pipeline.py",
          "sha256": "bbbab21d648b55c94f1c7d626a3da3f88d4e90978b5dca647595a51b9f6f713b"
        },
        {
          "path": "tests/test_manifesto_promises_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_manifesto_promises_ui_contract.js",
          "sha256": "5525afc60071b9ecceceb27c30b51da634e7aea2b0f02d3ffc8d11360da62e2f"
        }
      ]
    },
    {
      "id": "evidence-api-v1-2026-08-19",
      "date": "2026-08-19T19:36:18+00:00",
      "status": "published_live_verified",
      "title": "Evidence API v1",
      "summary": "Publica entidades, cadenas de evidencia, salud de fuentes y resultados reales como páginas content-addressed con cursor, provenance e identidad pública intacta.",
      "public_routes": [
        "/api/v1/index.json",
        "/api/v1/schema.json"
      ],
      "note": {
        "path": "docs/release-notes/evidence-api-v1.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/evidence-api-v1.md",
        "bytes": 1551,
        "sha256": "2aa1b012d522823f46455f56f771784fabe815c4f2622528a415d24f724265fa"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/EVIDENCE-API-20260819/evidence/evidence-api-v1-export.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/EVIDENCE-API-20260819/evidence/evidence-api-v1-export.json",
          "sha256": "a9d30caeebeabb5794d524594532c85712bbe162e8ca12f4103936976a46add9"
        },
        {
          "path": "docs/etl/sprints/EVIDENCE-API-20260819/evidence/evidence-api-v1-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/EVIDENCE-API-20260819/evidence/evidence-api-v1-validation.json",
          "sha256": "e2fe52581a8b9809a7d1aefd6210ad013164368e3dd4a63ef7e9b33fe8308ba5"
        },
        {
          "path": "docs/etl/sprints/EVIDENCE-API-20260819/evidence/live-evidence-api-v1-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/EVIDENCE-API-20260819/evidence/live-evidence-api-v1-verification.json",
          "sha256": "9967aa50c450a7bc7417114737c0ff1023e79be1ba83cca5e0fcaa38a05ddf85"
        },
        {
          "path": "docs/api/evidence-api-v1.schema.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/api/evidence-api-v1.schema.json",
          "sha256": "a246c0ccdd98f887385e3f534aaaf3eb59affb7ef8c75ec028ede189806e6400"
        },
        {
          "path": "tests/test_evidence_api_v1_contract.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_evidence_api_v1_contract.py",
          "sha256": "4535233b9169aaa61cbd6133a4350a946b426f64a162fb7d6ff118e023f08378"
        }
      ]
    },
    {
      "id": "signed-reproducible-scale-snapshot-2026-08-19",
      "date": "2026-08-19T19:00:00+00:00",
      "status": "published_live_verified",
      "title": "Signed reproducible scale snapshot",
      "summary": "Publica 5.414.326 filas oficiales reales bajo un manifest inmutable firmado, verificable y comparable por diff exacto.",
      "public_routes": [
        "/transparency/",
        "/transparency/data/transparency.json"
      ],
      "note": {
        "path": "docs/release-notes/signed-reproducible-scale-snapshot.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/signed-reproducible-scale-snapshot.md",
        "bytes": 2395,
        "sha256": "18092210f577e1dc5acd63536f1c4ed0ade1f25af9da770d8e5e91e5a4891a2e"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/signed-scale-publish-report.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/signed-scale-publish-report.json",
          "sha256": "733c078cae98f0b92291085519a3959941e0d3ed2b021836eacb691d8e686892"
        },
        {
          "path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-signed-snapshot-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-signed-snapshot-verification.json",
          "sha256": "2dd1934b96c7cd8a5003e7a3ff1bd5919069a354a24f1bcb12a842e33a771b6a"
        },
        {
          "path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/live-scale-origin-parity.json",
          "sha256": "dc6ed2b6d5e2fbe30a09bc98a52d90f022bfbb73da51a6422319bb43b0af2fa1"
        },
        {
          "path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/published-scale-manifest-diff.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/published-scale-manifest-diff.json",
          "sha256": "d4d1255cceac47d8b06ea5bfb91b5d4a2b3f32c917c558f0214db2e115960035"
        },
        {
          "path": "docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/snapshot-reproducibility-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/REPRODUCIBILITY-20260819/evidence/snapshot-reproducibility-validation.json",
          "sha256": "2248d3b53302d8af9efd4f878f52b0afb93ca08d29d9466ab5e1aae700004e88"
        }
      ]
    },
    {
      "id": "transparency-dashboard-mvp-2026-08-19",
      "date": "2026-08-19",
      "status": "published_mvp",
      "title": "Transparency dashboard MVP",
      "summary": "Publica frescura, salud de fuentes, obstrucciones, readiness, versión durable y cambios con evidencia por cada cifra.",
      "public_routes": [
        "/transparency/",
        "/transparency/data/transparency.json"
      ],
      "note": {
        "path": "docs/release-notes/transparency-dashboard-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/transparency-dashboard-mvp.md",
        "bytes": 3170,
        "sha256": "54c3ec03f9d4f594cf98127efec0ab6829559380f445b05bacbba5926e5bcf70"
      },
      "evidence": [
        {
          "path": "scripts/export_transparency_dashboard_snapshot.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/scripts/export_transparency_dashboard_snapshot.py",
          "sha256": "ff0e696a096355d327e6458082bf897a85e1c80c869b6c4841729a11b0b67fd6"
        },
        {
          "path": "scripts/validate_transparency_dashboard_snapshot.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/scripts/validate_transparency_dashboard_snapshot.py",
          "sha256": "9541bbcea42871b4a6b1a5622b2033603f8e7236e3d091047275777deb54fc8f"
        },
        {
          "path": "tests/test_transparency_dashboard_snapshot.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_transparency_dashboard_snapshot.py",
          "sha256": "696e9b55d0e1f96ad17a90e63e8796a2b19a0bf6255221d314fa2119348587fa"
        },
        {
          "path": "tests/test_transparency_dashboard_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_transparency_dashboard_ui_contract.js",
          "sha256": "15b13eeeaa6f34429db1fd36b0abfe09ccfe99a88bc5547499dbc4a54ac8b35b"
        }
      ]
    },
    {
      "id": "spending-connector-mvp-2026-08-19",
      "date": "2026-08-19",
      "status": "published_live_verified",
      "title": "Spending connector MVP",
      "summary": "Materializa 20 adjudicaciones PLACSP reales como actor -> spending item -> evidencia, con importes exactos e identidad pública intacta, sin representarlas como pagos.",
      "public_routes": [
        "/spending/",
        "/spending/data/placsp-sample.json"
      ],
      "note": {
        "path": "docs/release-notes/spending-connector-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/spending-connector-mvp.md",
        "bytes": 4498,
        "sha256": "748c4f95b0b4cd284a4175003150d2d190eabc960064fd469ed1bb245087c1c0"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/SPENDING-20260819/evidence/placsp-spending-materialization.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/SPENDING-20260819/evidence/placsp-spending-materialization.json",
          "sha256": "261357f2e92b1c32af60309de6e4377226ce729c79ecbaf9ac3a1bc5dbb9a311"
        },
        {
          "path": "docs/etl/sprints/SPENDING-20260819/evidence/placsp-spending-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/SPENDING-20260819/evidence/placsp-spending-validation.json",
          "sha256": "c2d735fac4784f2a457e63221551152979cf9c387e1076bcd862ec0cc5e234f1"
        },
        {
          "path": "docs/etl/sprints/SPENDING-20260819/evidence/live-placsp-spending-verification.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/SPENDING-20260819/evidence/live-placsp-spending-verification.json",
          "sha256": "9e0a14db67ac30925756dc9a63473fbc6bc495b68a93bfccef2b86e75c96b0a3"
        },
        {
          "path": "tests/test_placsp_spending_real_pipeline.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_placsp_spending_real_pipeline.py",
          "sha256": "98bdb5f20b0a188357ad59a18839592c44c7bff2cfc362b704fb5ea252c099f5"
        },
        {
          "path": "tests/test_placsp_spending_ui_contract.js",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_placsp_spending_ui_contract.js",
          "sha256": "d5563f5365a3cad5aa1b300239be9a743085cf447f85f1aad6fea2c892a8b0a6"
        }
      ]
    },
    {
      "id": "obstruction-tracker-mvp-2026-08-19",
      "date": "2026-08-19",
      "status": "published_live_verified",
      "title": "Obstruction tracker MVP",
      "summary": "Publica salud de fuentes, bloqueos, cobertura afectada, escala real y evidencia técnica verificable en una ruta estática.",
      "public_routes": [
        "/obstruction-tracker/",
        "/obstruction-tracker/data/obstructions.json"
      ],
      "note": {
        "path": "docs/release-notes/obstruction-tracker-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/obstruction-tracker-mvp.md",
        "bytes": 4736,
        "sha256": "396e89aa64e7d2bd9b6e465f2d42f7af32e4482465a7a92bfad492e1c22cb85f"
      },
      "evidence": [
        {
          "path": "docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/obstruction-tracker-validation.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/obstruction-tracker-validation.json",
          "sha256": "18e5de7568a4e04428b21351842ab97010da48faca2e04969833250307798c02"
        },
        {
          "path": "docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/live-route-audit.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/live-route-audit.json",
          "sha256": "2404bd8bd5f3942f815379ac1445ce4c86b251f0c390978ff83db4ad2e0c3363"
        }
      ]
    },
    {
      "id": "vote-explainer-mvp-2026-04-04",
      "date": "2026-04-04",
      "status": "published_mvp",
      "title": "Vote explainer MVP",
      "summary": "Publica páginas canónicas por votación con resultado, desglose visible, fuentes oficiales y caveats metodológicos.",
      "public_routes": [
        "/vote-explainer/"
      ],
      "note": {
        "path": "docs/release-notes/vote-explainer-mvp.md",
        "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/vote-explainer-mvp.md",
        "bytes": 2013,
        "sha256": "86ae97b53420621dd410a34f51a296e419dc47e2060a3abada7a7bcc6e501ee7"
      },
      "evidence": [
        {
          "path": "scripts/export_vote_explainer_snapshot.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/scripts/export_vote_explainer_snapshot.py",
          "sha256": "e10491389882fab5b7cbdffc14c56f546b871a612b210774dcc62a2d5127e8c7"
        },
        {
          "path": "tests/test_export_vote_explainer_snapshot.py",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/tests/test_export_vote_explainer_snapshot.py",
          "sha256": "7f3a82893ef58a9c704e11256650c6496502798f3f4047d2f9fd1bdb1b9a26a1"
        },
        {
          "path": "docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/live-route-audit.json",
          "url": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/sprints/OBSTRUCTION-TRACKER-20260819/evidence/live-route-audit.json",
          "sha256": "2404bd8bd5f3942f815379ac1445ce4c86b251f0c390978ff83db4ad2e0c3363"
        }
      ]
    }
  ],
  "audit_links": {
    "self": "/transparency/data/transparency.json",
    "source_status": "/explorer-sources/data/status.json",
    "obstruction_tracker": "/obstruction-tracker/",
    "obstruction_feed": "/obstruction-tracker/data/obstructions.json",
    "release_registry": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/release-notes/releases.json",
    "roadmap": "https://github.com/gsusI/vota-con-la-chola/blob/main/ROADMAP.md",
    "technical_roadmap": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/roadmap-tecnico.md",
    "operational_tracker": "https://github.com/gsusI/vota-con-la-chola/blob/main/docs/etl/e2e-scrape-load-tracker.md"
  }
}
