La intención
Queríamos ayudar a las personas a moverse por Quito con una aplicación de transporte.
QUITO, ECUADOR · CÓDIGO DISPONIBLE
ML DataMind GTFS reconstruye la capa de datos que el transporte público necesita. Datos abiertos, inteligencia geoespacial y decisiones humanas.
Infraestructura de código disponible para reconstruir rutas.
Ver auditoría histórica · 2026-04-17

01 / EL ORIGEN
Queríamos crear una aplicación de transporte público para Quito. La aplicación no era la parte más difícil. Los datos sí.
Queríamos ayudar a las personas a moverse por Quito con una aplicación de transporte.
La interfaz se podía construir. La información necesaria para hacerla útil estaba incompleta o era inconsistente.
No existe un feed público completo de transporte para Quito. Algunas rutas tenían nombre, pero les faltaban paradas.
El equipo programó un pipeline de machine learning y geografía para reconstruir y estructurar esos datos.
OpenStreetMap no documentaba suficientes paradas. Resolver los vacíos exigía investigar calles, referencias y recorridos manualmente.
Conectamos Claude a DataMind mediante MCP, skills y herramientas controladas para orquestar el pipeline.
La IA ayudó a inspeccionar rutas, encontrar información faltante, detectar duplicados y coordinar las fases con evidencia.
La investigación se aceleró. La aprobación humana siguió siendo fundamental: nada se publica sin nuestra aprobación.
El código de DataMind se hizo público. Antari es la aplicación de transporte que consume estos datos.
02 / EL SISTEMA
Cinco fases, conectadas por PostgreSQL y PostGIS. La consola Streamlit acompaña el proceso de revisión.
Extracción de OpenStreetMap, agrupación y clasificación de paradas y puntos de interés.
Nombres canónicos, alias y búsqueda semántica para dar contexto a los lugares.
Secuencia de paradas y geometría sobre la red vial con Valhalla y controles de calidad.
Investigación de operadores, extremos y referencias para proponer nombres de rutas.
Compilación de tablas GTFS, validación del resultado y publicación supervisada.
03 / MCP CON CLAUDE CODE
El 25 de febrero de 2026 sumamos a Claude Code como orquestador del pipeline. Un servidor MCP de solo lectura le dio una ventana segura a la base: 18 herramientas para ver el estado real de cada ruta y cada fase. Nuestros playbooks (skills, uno por fase) le decían cómo ejecutar nuestros motores.
Inspeccionar el estado de una ruta. Contrastar calles y lugares. Encontrar vacíos, duplicados e inconsistencias. Coordinar el trabajo entre fases. La evidencia reunida también ayudó a mejorar el propio flujo de DataMind.
Claude no puede cambiar una fila por su cuenta: el MCP es de solo lectura y publicar sigue siendo una decisión humana.
| Antes de Claude · ene–feb 2026 | Con Claude Code como orquestador | |
|---|---|---|
| Corridas de extracción de OpenStreetMap | 42 en dos meses | 1.392 en la semana del 2 de marzo |
| Registros de ruta limpios | 7 | 241 en cuatro semanas (30 mar – 26 abr) |
| Investigación de huecos | a mano | 2.075 huecos · 3.592 referencias propuestas, cada una comprobada por nuestro código |
| Guayaquil | — | 301 sentidos de ruta en tres días (9 – 11 abr) |
04 / CONTROL HUMANO
HADES supervisa los pasos repetitivos, aplica controles y se detiene cuando una decisión requiere intervención del operador.
Ver geometrías, cobertura de paradas y evidencia antes de tomar una decisión.
La consola permite revisar, corregir o rechazar resultados en los puntos críticos.
La publicación de los datos exige aprobación humana. La evidencia sigue formando parte de la decisión.
05 / LA CONSOLA
DataMind se opera desde una consola Streamlit bilingüe: auditar rutas en el mapa, revisar colas, validar el GTFS y darle a la IA un alcance acotado.

Capturas de la consola real con los datos del proyecto en Ecuador, con todas las conexiones en solo lectura (10 oct 2026). El repositorio público trae solo una muestra sintética.
06 / QUITO
Quito fue la primera ciudad. Cada ruta se reconstruyó con su secuencia de paradas y un trazado que sigue las calles, y pasó por controles de calidad antes de contarse como limpia.

Conteos canónicos de la base de trabajo al 10 de octubre de 2026 (docs/METRICS.md). Un sentido de ruta es una dirección de una línea.
1.883 paradas coinciden con coordenadas de fuentes Overpass. 25 shapes coinciden con geometrías persistidas de Valhalla. Son mínimos comprobados, no una clasificación de todo el feed.
© OpenStreetMap contributors.DataMind investiga rutas, operadores y horarios y genera secuencias y tiempos. Los feeds publicados pasaron la validación técnica GTFS y se ofrecen bajo ODbL 1.0 con advertencias y periodos de servicio visibles.
Leer la auditoría de procedenciaGTFS histórico verificado
Calendario de servicio: 2025-01-01 → 2025-12-31
✓ 0 errores · MobilityData 7.1.0 · 1.704 advertencias
f486071266fa83bcd6e4d8199bbbde91e9812d044dc13e6304ffd96c855ed562Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
07 / GUAYAQUIL
Con el pipeline y Claude Code ya en marcha, el mismo sistema construyó 301 sentidos de ruta para Guayaquil y su provincia entre el 9 y el 11 de abril de 2026. Las limpiezas se ven antes y después, sobre el mapa.

Los feeds regionales pueden solaparse: no sumes sus totales como si fueran la ciudad. La revisión de limpieza de Guayas sigue pendiente.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 197 advertencias
4521675fe3f272d883e35153455924379f010ff051f3f4b8c96482f850c4777bDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 206 advertencias
ba9810b932a06000dc42c556bb13555f2712343a51c3d0769bee42309d1ed8acDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-04-01 → 2027-04-01
✓ 0 errores · MobilityData 7.1.0 · 270 advertencias
1a08d8327be8d9116bf0793a311471efc7f4a7af8d76d22f0521d2e91be14ab2Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-04-12 → 2026-10-31
✓ 0 errores · MobilityData 7.1.0 · 1 advertencias
b26eb48be641fe9d6dc25e635fc575ceef7bc22866a5f0f7ed7e11ea4edd3b59Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 27 advertencias
65261b48fbdbcf501510e8757788ea118fe0afce8873c45d9bbe335357ff25a2Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 109 advertencias
bedf724f42fb3433424b02eeecb79f481cf9c0e8225091ddd2c54f2d84434a0bDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 535 advertencias
eec58be537aa255e4913b46413683a44e2a459949ad1c8ceab7dc3b806bcfde5Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 5 advertencias
acdeb6ac9838e49288529d1e1611f8d190dafb9bbffa1c5ecba3ce5a684fb877Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-04-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 1 advertencias
6aa38b35f8f59be9ed71aa5db237fea9e2fa6d6a744feb69891cefddeb4e3554Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 0 advertencias
ae133b5662af0ac74066f92dbfcfc8c674134cbc54011dea12401a232a93f5c9Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
Último GTFS verificado
Calendario de servicio: 2026-01-01 → 2026-12-31
✓ 0 errores · MobilityData 7.1.0 · 2 advertencias
ff5c454fb94ad43cd06d9914954152c8e24af145ac211006e96385745aabf9ddDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
08 / ARCHIVO
Todos los feeds publicados pasaron el validador de MobilityData 7.1.0 con 0 errores. Abajo, los snapshots históricos que cubren Pichincha y Guayas juntos; su calendario ya venció.
GTFS histórico verificado
Calendario de servicio: 2026-04-17 → 2026-08-15
✓ 0 errores · MobilityData 7.1.0 · 26.633 advertencias
f24b44eb7238b28781db6c52b30e259e83ce2837023b948d34f8d3dc59ae9e53Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
GTFS histórico verificado
Calendario de servicio: 2026-04-16 → 2026-08-14
✓ 0 errores · MobilityData 7.1.0 · 26.928 advertencias
37d6eaa9f134e12d87e347841cae14bffc11bdfcbd3b13b46b144b1f93448e62Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
GTFS histórico verificado
Calendario de servicio: 2026-04-11 → 2026-08-09
✓ 0 errores · MobilityData 7.1.0 · 28.550 advertencias
0d5bf7c811c706a0c86ecf52e62f1dcde80db6cc6b28f3680c2bac23478caefeDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
GTFS histórico verificado
Calendario de servicio: 2026-04-11 → 2026-08-09
✓ 0 errores · MobilityData 7.1.0 · 20.081 advertencias
7efad3ca2b4ad49be3b78a1020ca76f58120d7baba8e19c8a8c986bddf72542fDatos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
GTFS histórico verificado
Calendario de servicio: 2026-04-11 → 2026-08-09
✓ 0 errores · MobilityData 7.1.0 · 71.172 advertencias
0146cfb090310dfc5b5bc764c1de72bdbec90fc35924042303fe9e6ca9999e42Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
GTFS histórico verificado
Calendario de servicio: 2026-04-11 → 2026-08-09
✓ 0 errores · MobilityData 7.1.0 · 18.664 advertencias
5795af2f491f6d82a62446d43e5daee9986c289ab19a6c19b87edf0abfddf4c1Datos de transporte construidos, reconstruidos y revisados por DataMind. Dataset bajo ODbL 1.0. © OpenStreetMap contributors.
09 / LA APP
Antari es la app de transporte que consume datos como estos. Es un producto aparte: en Antari apareció el problema, y DataMind es la infraestructura que lo resuelve.
Antari y DataMind son productos distintos. Las descargas de Antari no son usuarios de DataMind.
10 / USAR DATAMIND
La versión pública incluye las cinco fases, la consola y el esquema de base de datos. La muestra inicial pertenece a una ciudad inventada.
Python 3.10+, PostgreSQL 15+ y las extensiones postgis, vector (pgvector), pgcrypto, pg_trgm, citext, unaccent y dblink. La extracción y reconstrucción reales requieren datos regionales y servicios como Overpass y Valhalla.
git clone https://github.com/josuecuguy1307/datamind-gtfs.git
cd datamind-gtfs
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txtDesde la raíz del repositorio, en una terminal compatible con los comandos de activación mostrados.
cp .env.example .env
# .env
DB_DSN=postgresql://USER:PASSWORD@127.0.0.1:5432/datamind_ml
LOCAL_DB_DSN=postgresql://USER:PASSWORD@127.0.0.1:5432/datamind_ml
DATA_MODE=local
DATAMIND_LOCAL_ONLY_MODE=trueEdita .env con tus propias conexiones. Las variables siguientes son plantillas; sustituye USER y PASSWORD. Mantén .env fuera de Git.
createdb datamind_ml
python scripts/init_db.py
python scripts/load_sample_data.pyPostgreSQL debe estar funcionando y el usuario necesita permisos para crear la base y las extensiones. init_db.py rechaza sobrescribir una base ya inicializada.
streamlit run datamind_console/app.py --server.address 127.0.0.1La consola local abre en 127.0.0.1:8501. Explora Sample Region Audit para ver la muestra.
Configura las regiones, catálogos, operadores y servicios para tu área. El repositorio público no incluye datos reales de Quito, modelos entrenados, extractos OSM ni tiles de Valhalla. Las fases 3 y 5 necesitan servicios reales para completar el recorrido.
READMEEl compilador de fase 5 trabaja con las rutas y paradas de la base configurada. Revisa sus opciones antes de ejecutarlo sobre tus datos; generar un ZIP no equivale a aprobar su publicación. La estimación necesita rutas regionales, secuencias de paradas y horarios configurados; el compilador reúne todas las rutas elegibles de la base, no solo el sector indicado. Para generar el ZIP, ejecuta el mismo módulo sin --dry-run tras revisar esos datos. Los resultados se escriben en phase5_gtfs/out/gtfs_<export_run_id>.zip o en GTFS_OUT_DIR.
python -m phase5_gtfs.scripts.build_canton_gtfs --help
python -m phase5_gtfs.scripts.build_canton_gtfs --canton <sector> --dry-runtools/mcp_server.py implementa herramientas de lectura y fuerza transacciones SQL de solo lectura. La plantilla pública no trae una configuración MCP lista para conectar: la dependencia mcp y la configuración del cliente deben prepararse por separado.
tools/mcp_server.py11 / DOCUMENTACIÓN TÉCNICA
Código y documentación verificables en la rama main del repositorio público.
12 / LICENCIA · CÓDIGO DISPONIBLE
Hecho en Ecuador. Código disponible. Pensado para datos de transporte abiertos.
Si quieres convertir ML DataMind mismo en un producto o servicio comercial alojado, hablemos. Dentro de tu organización, en investigación y en educación puedes usarlo y modificarlo con libertad.
Las apps están permitidas: consumir GTFS u otros Outputs ya generados con DataMind está permitido, y una app interna puede invocar DataMind en vivo para su propia organización. Si clientes o usuarios externos pueden invocar la funcionalidad de DataMind bajo demanda a través de tu app o servicio, se necesita una licencia comercial.
13 / CONTACTO
¿Quieres conversar sobre DataMind, GTFS o datos abiertos? Escríbeme o encuéntrame en mis redes.