Arquitectura auditable · Unidad 4 de 8
Legacy visible y el plan de migración
Una dependencia puede cerrar a través de un manifiesto con forma legacy. Está permitido, pero jamás es silencioso: el reporte lo nombra (MILPA_LEGACY_CONTRACT_ACTIVE) y el status degrada a legacy_compatible. La compatibilidad legacy se nombra para que siga visible en lugar de decaer en arqueología invisible.
Al terminar podrás
- Distinguir el legacy tolerado del legacy no permitido
- Leer el MigrationPlan como propuesta de solo lectura
Entender
Una dependencia puede cerrar a través de un manifiesto con forma legacy. Está permitido, pero jamás es silencioso: el reporte lo nombra (MILPA_LEGACY_CONTRACT_ACTIVE) y el status degrada a legacy_compatible. La compatibilidad legacy se nombra para que siga visible en lugar de decaer en arqueología invisible.
allowedLegacyContracts en el perfil del host es una puerta, no una nota: un camino legacy que la allowlist no permite bloquea con MILPA_LEGACY_NOT_ALLOWED en lugar de degradar. Y lo deprecado avisa antes de romper: MILPA_DEPRECATED_CONTRACT_USED funciona hoy, pero la metadata anuncia que esa forma está programada para irse, y migrar antes de la remoción es más barato que después.
La salida tiene plan: coa:migrate:plan no cambia nada — solo produce plan. Por paquete lista Detected, Recommended, Steps (con la re-inspección siempre al final), Compatibility y Academy. La línea de compatibilidad es honesta y va verbatim: el plan nunca inventa una fecha límite que el código no declara.
Ver
Abrir la frontera
La misma disciplina: cuando dos representaciones divergen, la divergencia se nombra y se repara desde la fuente de verdad, nunca se deja decaer en silencio.
Hacer
Ejecuta la práctica en tu checkout y conserva la salida como evidencia.
Verificar
Demuestra que puedes aplicar la unidad. El progreso solo avanza al aprobar la evaluación.
Criterios evaluados
- Distingue el status legacy_compatible del bloqueo por allowedLegacyContracts.
- Explica por qué el plan de migración es de solo lectura y su compatibilidad no inventa fechas.
Fuentes primarias
Contenido verificado: 2026-07-12