sagas/odisea-del-blog-maestro/006-formateando-el-futuro.md

2026-03-24 published

Episodio 006 — Formateando el futuro

Episodio 006 — Formateando el futuro

Serie: bitácora de ingeniería — caprini.dev
Slug: 006-formateando-el-futuro
Resumen: la API de GitLab nos entrega hechos en bruto: SHA, timestamps, message, metadatos de autor. Eso es oro para la máquina y poco amable para el ojo humano en un feed. En SPEC-001 (fase 2) el progress tracker aprende a vestir ese dato con la piel Caprini: cabecera con emoji de taller, línea de hito, fecha legible y enlace canónico al commit, más hashtags que anclan el relato (#SpecDrivenDevelopment, #Vibecoding, #Astro).


Datos crudos vs narrativa

  • Crudo: un objeto JSON fiel al contrato REST; útil para depurar (console.log de la respuesta sigue ahí).
  • Forma: una función pura formatForTwitter(commit) que no llama a redes: solo texto listo para copiar. Publicar en X sigue siendo decisión humana; evitamos SDKs de Twitter y credenciales extra hasta que lo specifiquemos.

Qué quedó hecho

  • projects/001-progress-tracker/tracker.mjs: doble salida en consola — respuesta API (JSON indentado) y tweet listo para copiar.
  • Variable opcional GITLAB_PROJECT_PATH en .env.example cuando PROJECT_ID es numérico y hace falta el path web para armar la URL /-/commit/:sha.

Próximo paso lógico

Tests unitarios del formateador con mocks de commit (sin red), y pulir límites de longitud o truncado del cuerpo del mensaje si X empieza a recortar en la práctica.