AgentSkillsCN

legacy-modernization

精通遗留系统的现代化改造——包括“绞杀者模式”、渐进式重构与迁移方案。在以下场景中使用此技能:(1) 对老旧应用进行现代化升级;(2) 实施渐进式迁移,逐步替换旧系统;(3) 进行大规模代码重构,清理技术债务;(4) 面临关键性技术债务时,采取部分重写策略;(5) 实现新旧系统共存,平稳过渡。

SKILL.md
--- frontmatter
name: legacy-modernization
description: |-
  Expert modernisation de systèmes legacy - Strangler Fig, refactoring progressif, migration. Utilise ce skill quand: (1) moderniser une application legacy, (2) migration progressive, (3) refactoring à grande échelle, (4) dette technique critique, (5) réécriture partielle, (6) cohabitation ancien/nouveau système.
metadata:
  version: 1.0.0
  status: active

Legacy Modernization Expert Skill

Quick Start

bash
# 1. Navigation rapide vers un agent
legacy-modernization/agents/assessment/audit        # Audit du legacy
legacy-modernization/agents/strategies/strangler    # Pattern Strangler Fig
legacy-modernization/agents/migration/data          # Migration de données
legacy-modernization/agents/refactoring/incremental # Refactoring progressif

# 2. Questions fréquentes
"Comment évaluer mon legacy ?"             → assessment/audit
"Quelle stratégie de migration ?"          → strategies/orchestrator
"Strangler Fig pattern ?"                  → strategies/strangler
"Migrer les données progressivement ?"     → migration/data
"Refactorer sans tout casser ?"            → refactoring/incremental

Position dans l'Architecture

Ce skill est au NIVEAU 3 : IMPLÉMENTATION. Il implémente les stratégies de modernisation.

code
┌─────────────────────────────────────────────────────────────────────┐
│  NIVEAU 1 : STRATÉGIE (direction-technique)                         │
│  → POURQUOI : Décision de moderniser, budget, timeline              │
├─────────────────────────────────────────────────────────────────────┤
│  NIVEAU 2 : OPÉRATIONS                                              │
│  ┌────────────────────────────┐  ┌────────────────────────────┐    │
│  │     web-dev-process        │  │       lead-dev             │    │
│  │  QUOI : Phases du projet   │  │  QUI : Coordination        │    │
│  └────────────────────────────┘  └────────────────────────────┘    │
├─────────────────────────────────────────────────────────────────────┤
│  NIVEAU 3 : IMPLÉMENTATION                                          │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │          legacy-modernization ← CE SKILL                    │    │
│  │  COMMENT : Strangler, migration, refactoring, testing       │    │
│  └────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────┘

Philosophie

Moderniser progressivement, sans interrompre le business.

Ce skill :

  • ✅ Évalue et audite les systèmes legacy
  • ✅ Définit les stratégies de modernisation
  • ✅ Implémente les patterns de migration
  • ✅ Guide le refactoring progressif
  • ✅ Assure la cohabitation ancien/nouveau

Il ne fait PAS :

  • ❌ Les décisions stratégiques → direction-technique
  • ❌ La gestion de projet → project-management
  • ❌ L'implémentation techno spécifique → skills techniques

Domaines et Agents (30 agents)

1. assessment/ - Évaluation du Legacy (6 agents)

Audit et analyse des systèmes existants.

AgentResponsabilitéLivrables
orchestratorCoordination évaluation-
auditAudit technique completRapport d'audit
debt-analysisAnalyse dette techniqueMatrice de dette
risk-assessmentÉvaluation des risquesRisk register
cost-estimationEstimation des coûtsBusiness case
dependenciesCartographie dépendancesDependency graph

2. strategies/ - Stratégies de Modernisation (6 agents)

Patterns et approches de modernisation.

AgentResponsabilitéPattern
orchestratorCoordination stratégies-
stranglerStrangler Fig PatternRemplacement progressif
bubble-contextBubble ContextDDD bounded context
branch-by-abstractionBranch by AbstractionAbstraction layer
parallel-runParallel RunDouble exécution
feature-flagsFeature FlagsBascule progressive

3. migration/ - Migration de Données et APIs (6 agents)

Migration des données et interfaces.

AgentResponsabilitéFocus
orchestratorCoordination migration-
dataMigration de donnéesETL, sync, validation
apiMigration d'APIsVersioning, compatibility
databaseMigration de schémasSchema evolution
syncSynchronisation bidirectionnelleCDC, events
rollbackStratégies de rollbackRéversibilité

4. refactoring/ - Refactoring Progressif (6 agents)

Techniques de refactoring à grande échelle.

AgentResponsabilitéTechniques
orchestratorCoordination refactoring-
incrementalRefactoring incrémentalSmall steps
extract-serviceExtraction de servicesMicroservices
seamsIdentification des seamsPoints d'injection
contractsContrats d'interfaceAPI contracts
cleanupNettoyage du codeDead code, duplications

5. testing/ - Tests pour Legacy (6 agents)

Stratégies de test spécifiques au legacy.

AgentResponsabilitéTechniques
orchestratorCoordination testing-
characterizationTests de caractérisationGolden master
approvalApproval testingSnapshot
coverageCouverture legacySeams coverage
regressionTests de régressionBefore/after
integrationTests d'intégrationContract testing

Total : 30 agents spécialisés

Règles de Routage

Par Type de Question

QuestionDomaine
Évaluer, auditer le legacyassessment/
Quelle stratégie adopterstrategies/
Migrer données, APIsmigration/
Refactorer progressivementrefactoring/
Tester le legacytesting/

Par Mots-Clés

Mots-clésAgent
audit, évaluation, état des lieuxassessment/audit
dette technique, technical debtassessment/debt-analysis
strangler, fig, remplacementstrategies/strangler
bubble, bounded context, DDDstrategies/bubble-context
abstraction, interface, layerstrategies/branch-by-abstraction
feature flag, toggle, basculestrategies/feature-flags
migration données, ETL, syncmigration/data
API versioning, breaking changesmigration/api
schema, database migrationmigration/database
refactoring, extract, seamsrefactoring/incremental
microservice, extract servicerefactoring/extract-service
characterization test, golden mastertesting/characterization

Arbre de Décision

code
Requête Legacy Modernization
│
├─ Phase d'évaluation ?
│  ├─ Audit technique → assessment/audit
│  ├─ Dette technique → assessment/debt-analysis
│  ├─ Risques → assessment/risk-assessment
│  ├─ Business case → assessment/cost-estimation
│  └─ Dépendances → assessment/dependencies
│
├─ Choix de stratégie ?
│  ├─ Remplacement progressif → strategies/strangler
│  ├─ Nouveau contexte isolé → strategies/bubble-context
│  ├─ Couche d'abstraction → strategies/branch-by-abstraction
│  ├─ Double exécution → strategies/parallel-run
│  └─ Bascule progressive → strategies/feature-flags
│
├─ Migration ?
│  ├─ Données → migration/data
│  ├─ APIs → migration/api
│  ├─ Schéma DB → migration/database
│  ├─ Synchronisation → migration/sync
│  └─ Plan de rollback → migration/rollback
│
├─ Refactoring ?
│  ├─ Approche incrémentale → refactoring/incremental
│  ├─ Extraire un service → refactoring/extract-service
│  ├─ Identifier les seams → refactoring/seams
│  ├─ Définir les contrats → refactoring/contracts
│  └─ Nettoyer → refactoring/cleanup
│
└─ Testing ?
   ├─ Caractériser le comportement → testing/characterization
   ├─ Approval testing → testing/approval
   ├─ Couverture → testing/coverage
   ├─ Régression → testing/regression
   └─ Intégration → testing/integration

Patterns Clés

1. Strangler Fig Pattern

code
┌─────────────────────────────────────────────────────────────────┐
│                         FACADE/PROXY                            │
├─────────────────────────────────────────────────────────────────┤
│   ┌─────────────┐                     ┌─────────────┐          │
│   │   LEGACY    │ ──── routing ────▶  │    NEW      │          │
│   │   SYSTEM    │     progressif      │   SYSTEM    │          │
│   └─────────────┘                     └─────────────┘          │
│        │                                    │                   │
│        ▼                                    ▼                   │
│   Fonctionnalités                    Fonctionnalités           │
│   à migrer                           migrées                   │
└─────────────────────────────────────────────────────────────────┘

Phase 1: 100% legacy, 0% nouveau
Phase 2: 70% legacy, 30% nouveau
Phase 3: 30% legacy, 70% nouveau
Phase 4: 0% legacy, 100% nouveau

2. Branch by Abstraction

code
Étape 1: Créer l'abstraction
┌──────────┐     ┌──────────┐
│  Client  │────▶│  Legacy  │
└──────────┘     └──────────┘

Étape 2: Insérer l'interface
┌──────────┐     ┌──────────┐     ┌──────────┐
│  Client  │────▶│Interface │────▶│  Legacy  │
└──────────┘     └──────────┘     └──────────┘

Étape 3: Implémenter nouveau
┌──────────┐     ┌──────────┐     ┌──────────┐
│  Client  │────▶│Interface │──┬─▶│  Legacy  │
└──────────┘     └──────────┘  │  └──────────┘
                               │  ┌──────────┐
                               └─▶│   New    │
                                  └──────────┘

Étape 4: Basculer
┌──────────┐     ┌──────────┐     ┌──────────┐
│  Client  │────▶│Interface │────▶│   New    │
└──────────┘     └──────────┘     └──────────┘

3. Parallel Run

typescript
async function processOrder(order: Order) {
  // Exécuter les deux systèmes en parallèle
  const [legacyResult, newResult] = await Promise.all([
    legacySystem.process(order),
    newSystem.process(order),
  ]);

  // Comparer les résultats
  const diff = compareResults(legacyResult, newResult);
  if (diff.hasDifferences) {
    logger.warn('Parallel run discrepancy', { diff, order });
    metrics.increment('parallel_run.discrepancy');
  }

  // Retourner le résultat du système de confiance
  return featureFlags.isEnabled('use_new_system')
    ? newResult
    : legacyResult;
}

Interaction avec les Autres Skills

Flux Entrants

code
direction-technique ──► legacy-modernization (décision → implémentation)
ddd ──► legacy-modernization (bounded contexts → extraction)

Flux Sortants

code
legacy-modernization ──► backend-developer (implémentation nouveau système)
legacy-modernization ──► devops (infra, déploiement)
legacy-modernization ──► testing-process (stratégie de tests)

Points d'Escalade

Vers direction-technique

SituationRaison
Choix stratégie (strangler vs rewrite)Impact budget/timeline
Périmètre de migrationDécision business
Risques identifiés critiquesValidation

Vers l'humain

SituationRaison
Logique métier non documentéeConnaissance tacite
Validation des données migréesResponsabilité
Go/no-go bascule productionDécision business

Anti-Patterns à Éviter

Anti-PatternProblèmeAlternative
Big Bang RewriteRisque élevé, longStrangler Fig
Pas de tests avant refactoringRégressionCharacterization tests
Migration données en une foisDowntimeSync bidirectionnelle
Ignorer le legacyDette croissanteBubble context
Copier-coller le legacyBugs copiésRepenser le design

Skills Associés

SkillNiveauRelation
direction-techniqueSTRATÉGIEReçoit les directives
dddTRANSVERSALBounded contexts
backend-developerIMPLÉMENTATIONNouveau système
devopsIMPLÉMENTATIONInfra, déploiement
testing-processPROCESSUSStratégie de tests

Changelog

v1.0.0

  • Création initiale avec 5 domaines et 30 agents
  • Couverture : assessment, strategies, migration, refactoring, testing
  • Position : NIVEAU 3 IMPLÉMENTATION
  • Patterns : Strangler Fig, Branch by Abstraction, Parallel Run