adapt-architecture
À propos
Cette compétence exécute des transformations architecturales graduelles en utilisant des modèles tels que la migration en "strangler fig" et le fonctionnement parallèle. Elle fournit des directives structurées pour la planification, le basculement progressif, la conception de la restauration et la stabilisation lors de l'évolution du système. Utilisez-la lors de migrations de monolithes, du remplacement de sous-systèmes critiques, ou lorsque les changements doivent être incrémentiels plutôt que réalisés en "big-bang".
Installation rapide
Claude Code
Recommandénpx 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-architectureCopiez et collez cette commande dans Claude Code pour installer cette compétence
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
Dépôt GitHub
Compétences associées
executing-plans
DesignUtilisez la compétence executing-plans lorsque vous disposez d'un plan de mise en œuvre complet à exécuter par lots contrôlés avec des points de contrôle de revue. Elle charge et examine le plan de manière critique, puis exécute les tâches par petits lots (3 tâches par défaut) tout en rapportant la progression entre chaque lot pour une revue par l'architecte. Cela garantit une mise en œuvre systématique avec des points de contrôle de qualité intégrés.
requesting-code-review
DesignCette compétence délègue un sous-agent réviseur de code pour analyser les modifications apportées au code par rapport aux exigences avant de poursuivre. Elle doit être utilisée après avoir terminé des tâches, implémenté des fonctionnalités majeures, ou avant une fusion vers la branche principale. La revue aide à détecter précocement les problèmes en comparant l'implémentation actuelle avec le plan initial.
connect-mcp-server
DesignCette compétence fournit un guide complet permettant aux développeurs de connecter des serveurs MCP à Claude Code via les transports HTTP, stdio ou SSE. Elle couvre l'installation, la configuration, l'authentification et la sécurité pour intégrer des services externes tels que GitHub, Notion et des API personnalisées. Utilisez-la lors de la configuration d'intégrations MCP, de la configuration d'outils externes ou du travail avec le Protocole de Contexte de Modèle de Claude.
web-cli-teleport
DesignCette compétence aide les développeurs à choisir entre les interfaces Web et CLI de Claude Code en fonction de l'analyse des tâches, puis permet une téléportation transparente des sessions entre ces environnements. Elle optimise le flux de travail en gérant l'état et le contexte de la session lors du passage entre le web, la CLI ou le mobile. Utilisez-la pour des projets complexes nécessitant différents outils à diverses étapes.
