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.mjsvalidacommit_count,last_pipeline_statusyproject_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:
- Generar snapshot (
system:stats). - Validar contrato (
system:validate). - 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.