sagas/odisea-del-blog-maestro/034-el-escudo-del-arquitecto-validando-contratos-de-datos.md

2026-03-24 draft

034 - El Escudo del Arquitecto: Validando Contratos de Datos

034 - El Escudo del Arquitecto: Validando Contratos de Datos

Hoy formalizamos un principio operativo: si no hay contrato, no hay build.

El tablero de /proyectos depende de src/content/system-stats.json. Cuando ese archivo llega con campos nulos, ausentes o con tipo incorrecto, el frontend no siempre falla de forma estridente, pero deja rastros de estado roto (úndefined`, placeholders inconsistentes o lectura ambigua).

La respuesta fue construir un escudo minimo y bloqueante:

  • projects/011-spec-auditor/validate-stats.mjs valida commit_count, last_pipeline_status y project_numeric_id.
  • Si hay ruptura, corta ejecucion con FATAL: TELEMETRY_CONTRACT_BROKEN.
  • Si el contrato es valido, confirma CONTRACT_VALIDATED: TELEMETRY_READY.

El build ahora sigue una secuencia explicita:

  1. Generar snapshot (system:stats).
  2. Validar contrato (system:validate).
  3. Construir sitio (ástro build`).

No es solo una mejora tecnica. Es una postura de arquitectura: priorizar previsibilidad sobre “que pase como sea”. Cuando la telemetria es parte del producto visible, su contrato deja de ser opcional.