ADR-008 — Cadencia Desatendida 04:00 AM y Escudo de Conflictos
- Estado: Aceptada
- Fecha / Hito: 2026-09-30 (Plan de automatización y CI/CD cruzado)
Contexto
El proyecto upstream omacom/omarchy lanza actualizaciones constantes. Anteriormente, el mantenedor debía monitorear GitHub manualmente, hacer git fetch upstream, rebasear personal en su terminal local y disparar la Action de empaquetado.
El objetivo planteado por el usuario fue: “quiero que suceda automáticamente a las 4:00 AM todos los días, así me despertaré y si hago un omarchy update en la mañana estaré en la versión más reciente”.
Decisión
- Sincronización Desatendida Cruzada:
- Se programa un cron diario a las 04:00 AM en
sync-check.yml. - Al detectar un tag nuevo, se dispara
release-personal.ymlcon la deploy key SSHSSH_OMARCHY_SOURCE_KEY. - El runner hace fetch de
omacom/omarchy:quattro(la línea real de upstream no cambió de nombre), avanza por Fast-Forward el espejo localupstreamenrobert-flo/omarchyy ejecutagit rebase upstreamsobre la ramapersonal. El espejo del fork se llamabaquattrohasta ADR 0024; omacom sigue publicando enquattro.
- Se programa un cron diario a las 04:00 AM en
- Escudo ante Conflictos (Conflict Containment Shield):
- Si ocurre un conflicto de código durante el rebase, el pipeline ejecuta
git rebase --abort, aborta la compilación para no publicar software roto, y abre un GitHub Issue de alerta con la lista de archivos y comandos de resolución local.
- Si ocurre un conflicto de código durante el rebase, el pipeline ejecuta
- Gestión Automática de GitHub Issues:
- El pipeline abre un issue de seguimiento al detectar el tag y lo auto-cierra tras verificar que la nueva versión responda
HTTP 200en GitHub Pages.
- El pipeline abre un issue de seguimiento al detectar el tag y lo auto-cierra tras verificar que la nueva versión responda
Consecuencias
- Operación Zero-Touch: Las máquinas amanecen sincronizadas sin que el mantenedor deba intervenir.
- Seguridad Absoluta: Ante cualquier divergencia profunda de upstream, el sistema se detiene en seco antes de tocar los paquetes en producción.