Carriles de extracción
Cómo se actualiza cada dataset y con qué cadencia. Resuelve el hueco de documentación del split diario-vs-mensual (TECHDEBT-06): la fuente de verdad operativa son los workflows, esta página es la vista de referencia.
Los cuatro carriles
| Carril | Workflow / comando | Cadencia | Datasets |
|---|---|---|---|
| Diario | make extract · job build-and-test de pipeline-check.yml |
diaria (10:00 UTC) | regiones, provincias, comunas, comunas_enriquecidas, indicadores, censo_comunal, censo_hogares_viviendas, establecimientos_salud, distritos_electorales, establecimientos_educacionales, resultados_educacionales, indicadores_urbanos_siedu, empresas, pobreza_comunal, consumo_electrico_comunal, partidos_politicos, autoridades_electas, estadisticas_vitales, permisos_edificacion, calidad_aire |
| Mensual | monthly-scrape.yml |
mensual (manual + workflow_dispatch) | finanzas_municipales (sinim_finanzas_live_extractor.py) — delincuencia_comunal degradado a rejected 2026-09-15 y removido de este workflow |
| Ad hoc / candidate | manual (workflow_dispatch, sin schedule) | a demanda | geometria_comunal (geometria-comunal.yml), autoridades_locales (BCN SIIT + Wikipedia, sin cadencia automática) |
| Stub (no operativo) | — | nunca desde jobs programados | sinim_finanzas_extractor.py es un fallback de desarrollo; el job diario no debe invocarlo (guardrail: tests/test_ci_config.py::SinimDailyJobGuardrailTests) |
Reglas
- Un extractor por carril. Los extractores diarios corren en
make extract; los mensuales, enmonthly-scrape.yml; los candidate, en su workflow propio. Nunca mezclar un extractor en dos carriles. - El override INE es parte del carril diario de
indicadores. Cuando mindicador.cl no entrega el IPC del año en curso,ine_ipc.pyscrapea la variación mensual de la página pública del INE (fuente autoritativa) ANTES de recurrir al backfill — el publish diario depende de ese parseo HTML, y su edad está gateada (ADR-016). La cadena multi-fuente completa (agregador → override → backfill) y su escape hatch están decididos en ADR-017. - El stub SINIM nunca corre en un job programado.
sinim_finanzas_extractor.pysiempre escribe 3 filas de muestra; el snapshot real mensual vive versionado en git y lo restaurapipeline-check.ymltras un restore de caché obsoleto. - Degradación de
autoridades_electassin scrapling. En CI este extractor se invoca conuv run --no-project --with "scrapling[fetchers]"(entorno efímero, conflicto declickcon el extradev— verpyproject.toml). Sin scrapling degrada a 155 registros (0 senadores) y rompe el gate "Check build-synced files". perfil_territorial_comunalno tiene extractor: es derivado enbuild_dev_db.pya partir de otros datasets.geometria_comunales candidate (ADR-012): su artefacto se publica desdegeometria-comunal.yml, fuera del bundle estable y del guard de 500 KB.
Cómo verificar el carril de un dataset
La fuente de verdad del mapeo dataset↔extractor es data/dataset_catalog_config.json
(campo extractor); el carril de publicación (candidate/stable_publishable),
maturity_status y confidence_tier viven en data/source_registry.json.