adapt-architecture
About
This skill executes gradual architectural transformations using patterns like strangler fig migration and parallel running. It provides structured guidance for planning, progressive cutover, rollback design, and stabilization during system evolution. Use it when migrating from monoliths, replacing core subsystems, or when changes must be incremental rather than big-bang.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/adapt-architectureCopy and paste this command in Claude Code to install this skill
Documentation
Adaptar Arquitectura
Ejecutar una metamorfosis estructural — transformando la arquitectura de un sistema desde su forma actual a una forma objetivo mientras se mantiene la continuidad operativa. Utiliza migración strangler fig, fases de crisálida y preservación de interfaces para asegurar que el sistema nunca deje de funcionar durante la transformación.
Cuándo Usar
- La evaluación de forma (ver
assess-form) clasificó el sistema como LISTO - Un sistema debe evolucionar su arquitectura para cumplir nuevos requisitos sin tiempo de inactividad
- Migración de monolito a microservicios (o viceversa)
- Reemplazo de un subsistema central mientras los sistemas dependientes continúan operando
- Evolución de un modelo de datos manteniendo compatibilidad retroactiva
- Cualquier cambio arquitectónico que deba ser gradual en lugar de big-bang
Entradas
- Requerido: Evaluación de la forma actual (de
assess-formo análisis equivalente) - Requerido: Arquitectura objetivo (en qué debe convertirse el sistema)
- Requerido: Requisitos de continuidad operativa (qué no debe romperse durante la transformación)
- Opcional: Presupuesto de transformación disponible (tiempo, personas, cómputo)
- Opcional: Requisitos de rollback (¿hasta dónde debemos poder retroceder?)
- Opcional: Duración de ejecución paralela (¿cuánto tiempo ejecutar el antiguo y el nuevo simultáneamente?)
Procedimiento
Paso 1: Diseñar el Plan de Transformación
Planificar la ruta de metamorfosis desde la forma actual a la forma objetivo.
- Mapear la transformación como una secuencia de formas intermedias:
- Forma actual → Forma intermedia 1 → ... → Forma objetivo
- Cada forma intermedia debe ser operativamente viable (puede servir tráfico, pasar pruebas)
- Ninguna forma intermedia debe ser más difícil de mantener que la forma actual
- Identificar las costuras de transformación:
- ¿Dónde se puede "cortar" la forma actual para insertar la nueva arquitectura?
- Costuras naturales: interfaces existentes, límites de módulos, particiones de datos
- Costuras artificiales: interfaces creadas específicamente para habilitar el corte (capas anticorrupción)
- Elegir el patrón de metamorfosis:
- Strangler fig: el nuevo sistema crece alrededor del antiguo, reemplazándolo gradualmente
- Crisálida: el sistema antiguo se envuelve en una nueva capa; los internos se reemplazan mientras la capa preserva la interfaz externa
- Gemación: el nuevo sistema crece junto al antiguo; el tráfico se desplaza gradualmente (ver
scale-colonypara gemación de colonias) - Migración metamórfica: reemplazo por fases de componentes en orden de dependencia (hojas primero, raíces al final)
- Diseñar la capa de preservación de interfaces:
- Los consumidores externos no deben experimentar interrupción
- Versionado de API, contratos retrocompatibles, patrones adaptador
- La capa de preservación es andamiaje temporal — planificar su eliminación
Metamorphosis Patterns:
┌───────────────┬───────────────────────────────────────────────────┐
│ Strangler Fig │ New code intercepts routes one by one; │
│ │ old code handles everything else until replaced │
│ │ ┌──────────┐ │
│ │ │ Old ████ │ → │ Old ██ New ██ │ → │ New ████ │ │
│ │ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Chrysalis │ Wrap old system in new interface; replace │
│ │ internals while external shell stays stable │
│ │ ┌──────────┐ ┌──[new]───┐ ┌──[new]───┐ │
│ │ │ old core │ → │ old core │ → │ new core │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Budding │ New system runs in parallel; traffic shifts │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ │ Old │ │ New │ → │ Old │ │ New │ │
│ │ │ 100% │ │ 0% │ │ 0% │ │ 100% │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │
└───────────────┴───────────────────────────────────────────────────┘
Esperado: Un plan de transformación que muestre formas intermedias, costuras, el patrón de metamorfosis elegido y la estrategia de preservación de interfaces. Cada paso es concreto y verificable.
En caso de fallo: Si no se encuentra una costura limpia, el sistema puede necesitar una disolución preliminar (ver dissolve-form) para crear costuras antes de la transformación. Si las formas intermedias no son operativamente viables, los pasos de transformación son demasiado grandes — descomponer en incrementos más pequeños.
Paso 2: Construir el Andamiaje
Construir la infraestructura temporal que soporta la metamorfosis.
- Crear la capa anticorrupción:
- Una capa delgada de traducción entre los sistemas antiguo y nuevo
- Enruta solicitudes al sistema apropiado (antiguo o nuevo) según el estado de migración
- Traduce formatos de datos entre representaciones antiguas y nuevas
- Esta capa es el "capullo" que protege la transformación
- Configurar la infraestructura de ejecución paralela:
- Ambos sistemas, antiguo y nuevo, deben ser desplegables simultáneamente
- Los feature flags controlan qué sistema maneja qué tráfico
- Los mecanismos de comparación validan que antiguo y nuevo producen resultados equivalentes
- Establecer puntos de control de rollback:
- En cada forma intermedia, verificar que el rollback a la forma anterior es posible
- El rollback debe ser más rápido que el paso de transformación hacia adelante
- La migración de datos debe ser reversible (o los datos deben escribirse dualmente durante la transición)
- Construir el arnés de validación:
- Pruebas automatizadas que verifican la continuidad operativa en cada forma intermedia
- Benchmarks de rendimiento que detectan regresión
- Verificaciones de integridad de datos que capturan errores de migración
Esperado: La infraestructura de andamiaje (capa anticorrupción, ejecución paralela, rollback, validación) está en su lugar antes de que comience cualquier transformación. El andamiaje mismo está probado y verificado.
En caso de fallo: Si el andamiaje es demasiado costoso, simplificar: el andamiaje mínimo viable es un feature flag y un procedimiento de rollback. Las capas anticorrupción y la ejecución paralela añaden seguridad pero no siempre son necesarias para transformaciones más pequeñas.
Paso 3: Ejecutar el Traspaso Progresivo
Migrar funcionalidad de la forma antigua a la nueva forma de manera incremental.
- Ordenar componentes para migración:
- Comenzar con el componente menos acoplado y de menor riesgo (generar confianza)
- Progresar hacia componentes más críticos y más acoplados
- Guardar el componente más acoplado/crítico para el final (para cuando el equipo tenga experiencia)
- Para cada componente: a. Implementar la nueva versión detrás de la capa anticorrupción b. Ejecutar en paralelo: tanto el antiguo como el nuevo procesan las mismas entradas c. Comparar salidas — deben ser equivalentes (o las diferencias deben ser esperadas y documentadas) d. Cuando haya confianza, cambiar el tráfico a la nueva versión (cambio de feature flag) e. Monitorear anomalías (aumentar la sensibilidad del monitoreo post-traspaso) f. Después de un período de estabilidad, desmantelar la versión antigua de este componente
- Mantener la entrega continua durante todo el proceso:
- Cada paso de traspaso es un despliegue normal, no un evento especial
- El sistema siempre está en un estado conocido, probado y operativo
- Si un traspaso causa problemas, revertir al estado anterior (que sigue siendo operativo)
Esperado: La funcionalidad migra componente por componente con validación en cada paso. El sistema siempre está operativo. Cada traspaso genera confianza para el siguiente.
En caso de fallo: Si la ejecución paralela revela discrepancias, la nueva implementación tiene un error — corregirlo antes de hacer el traspaso. Si un traspaso causa degradación del rendimiento, el nuevo componente puede necesitar optimización o la capa anticorrupción está añadiendo demasiada sobrecarga. Si el equipo pierde confianza a mitad de la migración, pausar y estabilizar — un sistema medio migrado en un estado conocido es mucho mejor que una migración completa apresurada.
Paso 4: Gestionar la Fase de Crisálida
Navegar el período más vulnerable — cuando el sistema está entre formas.
- Reconocer la realidad de la crisálida:
- Durante la migración, el sistema es parcialmente antiguo y parcialmente nuevo
- Este estado híbrido es inherentemente más complejo que cualquiera de los estados puros
- La complejidad alcanza su pico en el punto medio de la migración, luego disminuye
- Disciplina de crisálida:
- Sin nuevas funcionalidades durante la fase de crisálida (solo transformación)
- Cambios externos mínimos (congelar despliegues no esenciales)
- Mayor monitoreo y cobertura de guardia
- Revisiones diarias del progreso de migración y salud del sistema
- Evaluación a mitad de crisálida:
- En el punto medio, evaluar: ¿sigue siendo la forma objetivo la meta correcta?
- ¿Ha cambiado algo (mercado, requisitos, equipo) que afecte el objetivo?
- ¿Debe la transformación continuar, pausarse o redirigirse?
- Proteger la crisálida:
- Mantener la ruta de rollback despejada en todo momento
- Documentar el estado híbrido actual exhaustivamente (los futuros depuradores lo necesitarán)
- Resistir la tentación de "limpiar" el andamiaje temporal antes de que la migración esté completa
Esperado: La fase de crisálida se gestiona como un período deliberado y acotado en el tiempo con mayor disciplina y monitoreo. El equipo entiende que la complejidad temporal es el costo de una transformación segura.
En caso de fallo: Si la fase de crisálida se prolonga demasiado, el estado híbrido se convierte en la nueva normalidad — lo cual es peor que el antiguo o el nuevo. Establecer un límite de tiempo. Si se alcanza el límite, ya sea acelerar la migración restante o aceptar el estado híbrido como la "nueva forma" y estabilizarlo.
Paso 5: Completar la Metamorfosis y Estabilizar
Finalizar la transformación y eliminar el andamiaje.
- Traspaso final:
- Migrar los últimos componentes a la nueva forma
- Ejecutar la suite completa de validación contra el nuevo sistema completo
- Prueba de rendimiento bajo carga equivalente a producción
- Eliminar andamiaje:
- Desmantelar la capa anticorrupción (ya no es necesaria)
- Eliminar los feature flags relacionados con la migración
- Limpiar la infraestructura de ejecución paralela
- Archivar (no eliminar) el código del sistema antiguo como referencia
- Estabilización post-metamorfosis:
- Ejecutar en la nueva forma durante 2-4 semanas con monitoreo mejorado
- Abordar cualquier problema que surja en condiciones reales
- Actualizar la documentación para reflejar la nueva arquitectura
- Retrospectiva:
- ¿Qué salió bien en la transformación?
- ¿Qué fue más difícil de lo esperado?
- ¿Qué haríamos diferente la próxima vez?
- Actualizar el manual de transformación del equipo
Esperado: La transformación está completa. El sistema opera en su nueva forma. El andamiaje está eliminado. La documentación está actualizada. El equipo ha capturado aprendizajes para futuras transformaciones.
En caso de fallo: Si la nueva forma es inestable después del traspaso, mantener la ruta de rollback y continuar la estabilización. Si la estabilización toma más del período planificado, puede haber un problema de diseño en la nueva arquitectura — considerar si correcciones dirigidas o un rollback parcial del componente más problemático es apropiado.
Validación
- El plan de transformación muestra formas intermedias viables
- El andamiaje (capa anticorrupción, rollback, arnés de validación) está en su lugar antes de que comience la migración
- Los componentes migran en orden de menor a mayor riesgo
- La ejecución paralela valida equivalencia en cada paso
- La fase de crisálida está acotada en el tiempo con disciplina de congelación de funcionalidades
- Todo el andamiaje se elimina después de completar la transformación
- El período de estabilización post-metamorfosis pasa sin problemas críticos
- La retrospectiva captura aprendizajes
Errores Comunes
- Migración big-bang: Intentar transformar todo de una vez. Esto abandona la seguridad del traspaso incremental y maximiza el radio de explosión. Siempre migrar incrementalmente
- Andamiaje permanente: Las capas anticorrupción y feature flags que nunca se eliminan se convierten en deuda técnica. Planificar la eliminación del andamiaje como parte de la transformación, no como algo posterior
- Negación de la crisálida: Pretender que el estado híbrido es normal lleva al desarrollo de funcionalidades sobre cimientos inestables. Reconocer la fase de crisálida y hacer cumplir su disciplina
- Fijación en el objetivo: Comprometerse tanto con la arquitectura objetivo que se ignoran señales de una mejor alternativa. La evaluación a mitad de crisálida existe por esta razón
- Fatiga de transformación: Las migraciones largas agotan a los equipos. Mantener cada paso de transformación lo suficientemente pequeño para completarse en días, no semanas. Celebrar hitos para mantener el impulso
Habilidades Relacionadas
assess-form— evaluación prerrequisito que determina si el sistema está listo para la transformacióndissolve-form— para sistemas demasiado rígidos para transformar directamente; la disolución crea las costuras necesarias aquírepair-damage— habilidad de recuperación para cuando la transformación introduce dañoshift-camouflage— adaptación superficial que puede ser suficiente sin un cambio arquitectónico profundocoordinate-swarm— la coordinación de enjambre informa la secuenciación de la transformación en sistemas distribuidosscale-colony— la presión de crecimiento es un desencadenante común para la adaptación arquitectónicaimplement-gitops-workflow— GitOps proporciona la infraestructura de despliegue para el traspaso progresivoreview-software-architecture— habilidad de revisión complementaria para evaluar la arquitectura objetivo
GitHub Repository
Related Skills
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
requesting-code-review
DesignThis skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.
connect-mcp-server
DesignThis skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.
web-cli-teleport
DesignThis skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.
