Skip to content

ci(kernel): gobernanza de publicación — mirror manual, verify-mirror, release.sh, pin mc-sso y docs - #19

Merged
donchelo merged 1 commit into
mainfrom
ci/ola0-gobernanza
Oct 30, 2026
Merged

donchelo merged 1 commit into
mainfrom
ci/ola0-gobernanza

Conversation

@donchelo

Copy link
Copy Markdown
Contributor

Qué y por qué

Ola 0 del plan de fix del kernel (auditoría del 30-oct-2026: ~/Documentos/auditoria-kernel-2026-10-30.md).

Causa raíz del espejo roto (verificada): el tag platform-v0.7.0 apunta a c95a84a, cuyo mensaje lleva el marcador de salto de CI. GitHub no dispara workflows de push —tags incluidos— para ese commit, así que mirror.yml nunca corrió (0 corridas para ese SHA) y ai4u-com-co/platform sigue en v0.6.2; los 36 consumidores no pueden recibir 0.7.0.

Cambios

Archivo Cambio
.github/workflows/mirror.yml workflow_dispatch con input tag: re-publica un tag existente sin borrarlo ni moverlo (gh workflow run mirror.yml -f tag=platform-v0.7.0). concurrency por tag y timeout-minutes. Sigue sin sobrescribir un tag del espejo que apunte a otro commit.
.github/workflows/verify-mirror.yml + scripts/verify-mirror.sh Chequeo semanal (lunes, ~1 min/semana): si el último tag de un paquete no está en su espejo, abre/actualiza un Issue. Probado en local: reporta MISSING platform platform-v0.7.0 y OK en config/contracts/mc-sso.
scripts/release.sh Camino único para publicar: valida rama main limpia y al día, versión == package.json, entrada en CHANGELOG, dist/ fresco, tag inexistente y que HEAD no tenga marcador de salto de CI; empuja el tag y espera a que el espejo tenga vX.Y.Z. Nunca borra ni mueve tags.
packages/{platform,config,contracts,mc-sso}/.github/ Trae al kernel las plantillas Issue/PR y el ci.yml con concurrency que hoy solo existían en los espejos (PRs #11–#13 de cada espejo); el rsync --delete del próximo publish las habría borrado. Fuente de verdad: kernel.
packages/platform/package*.json, package-lock.json Pin @ai4u/mc-sso #v1.2.0 → #v1.3.0 (SHA 19f9e2b, verificado contra el tag del espejo).
packages/design-system/package.json Alias type-check → el CI raíz (--workspaces --if-present) ya no lo salta.
Docs CLAUDE.md, README.md, ADOPTION.md (ya no manda a donchelo/), CLAUDE.md de platform y design-system al día. Se retiran GO-LIVE.md (v0.1), OBSERVABILITY-SCORECARD.md (v0.2; exponía nombres de repos de clientes y una ruta local en un repo público) y su script. La historia git pública conserva esos archivos: si se considera sensible, reescribir historia es decisión aparte.

Alcance multitenant

No toca lógica de negocio ni tenants. Afecta a la publicación de los 5 paquetes (todos los tenants/consumidores indirectamente).

Verificación

  • npm run type-check, npm test (53 + 57 + 51 + 161 = 322 en verde), npm run build en local; git diff -- packages/*/dist vacío.
  • bash -n de los scripts; verify-mirror.sh ejecutado contra los espejos reales.
  • Pendiente tras el merge (no verificable antes): primera corrida real de mirror.yml por workflow_dispatch.

Después del merge (PASOS HUMANOS / siguientes pasos)

  1. gh workflow run mirror.yml -f tag=platform-v0.7.0 (publica v0.7.0 en el espejo). No conviene que bump-bot reparta 0.7.0 solo: publicar 0.8.0 dentro de las 12 h siguientes (el debounce colapsa ambas en un solo bump).
  2. Ajustes del repo: secret scanning + push protection y protección de main.

Nota: el título y esta descripción evitan a propósito el marcador de salto de CI para que el commit squash no lo herede.

🤖 Generated with Claude Code

https://claude.ai/code/session_015nTgTv7S3gQwaoNFw5fZeG

… release.sh, pin mc-sso y docs

Ola 0 del plan de fix del kernel (auditoría del 30-oct-2026).

Causa raíz del espejo roto: el tag platform-v0.7.0 apunta a un commit cuyo mensaje lleva
"skip ci"; GitHub no dispara workflows de push (tags incluidos) para ese commit, así que
mirror.yml nunca corrió y el espejo ai4u-com-co/platform sigue en v0.6.2.

- mirror.yml: agrega workflow_dispatch (input tag) para re-publicar un tag existente sin
  borrarlo ni moverlo (gh workflow run mirror.yml -f tag=platform-v0.7.0), concurrency por tag
  y timeout.
- verify-mirror.yml + scripts/verify-mirror.sh: chequeo semanal que abre un Issue si el último
  tag de un paquete no llegó a su espejo (hoy reporta platform-v0.7.0 faltante).
- scripts/release.sh: único camino documentado para publicar; valida versión, CHANGELOG, dist,
  rama/estado y que HEAD no lleve marcador de salto de CI.
- packages/*/.github: trae al kernel las plantillas Issue/PR y el ci.yml con concurrency que
  hoy solo existían en los espejos (el rsync --delete las habría borrado).
- platform: pin mc-sso v1.2.0 -> v1.3.0 (package.json y lockfiles).
- design-system: alias type-check para que el CI raíz sí lo corra.
- docs: CLAUDE.md, README, ADOPTION, CLAUDE.md de platform y design-system al día; se retiran
  GO-LIVE.md y OBSERVABILITY-SCORECARD.md (de v0.1/v0.2; el segundo exponía nombres de repos de
  clientes y una ruta local en un repo público) y su script.

Sin cambios de comportamiento en el código de los paquetes: type-check, 322 tests y build en
verde; dist sin cambios.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015nTgTv7S3gQwaoNFw5fZeG
@donchelo
donchelo marked this pull request as ready for review October 30, 2026 17:01
@donchelo
donchelo merged commit cc70838 into main Oct 30, 2026
1 check passed
@donchelo
donchelo deleted the ci/ola0-gobernanza branch October 30, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant