← RetourCréé le 5 mai 2026

drupal-migration

Skill

Pipeline multi-agents qui automatise l'intégralité des migrations Drupal — patches sécurité, mises à jour mineures, montées de version majeures — avec backup, analyse, auto-fix et rollback garanti.

10
agents
7
commandes
4
chemins migration
D9→D12
versions supportées
100%
rollback garanti
Architecture

Pipeline des 10 agents

1
🔍env-detector

Détecte l'environnement, les versions PHP/DB, tous les modules et thèmes custom, l'état Git, les outils CI.

2
🛡️pre-flight

Dump DB, export config, branche migration, protection des scaffold files, désactivation CSS/JS aggregation, tag Git.

3
🩹patch-manager

Pré-valide chaque patch composer contre la version cible. Classifie VALID / OBSOLETE / WILL_FAIL avant de toucher au code.

4
🔬compatibility-analyzer

Scan complet : APIs deprecated, Symfony 7 breaking changes, modules sans release D11, bugs contrib connus, Twig deprecated.

5
🔧code-fixer

Auto-fix des APIs deprecated (drupal_set_message→messenger, db_query→database, annotations→attributes, Twig, return types). Un commit par module.

6
📸test-runner (baseline)

Crée du contenu de test pour chaque type, capture des snapshots HTML, compte les rows de Views, teste create/edit via API Drupal.

7
⬆️updater

composer update, drush updatedb, config:import, re-enable CSS/JS, maintenance mode, vérification bootstrap, génère le DEPLOYMENT-CHECKLIST.

8
🩺config-doctorsous-agent

Sous-agent de l'updater : entity definition updates, Views broken handlers, config_split health, orphaned schema entries.

9
test-runner (validate)sous-agent

Re-rend les mêmes nodes, re-crawle les mêmes URLs, diff HTML, compare les row counts Views, détecte les régressions PHP.

10
↩️rollback-manager

Invoqué sur échec critique. Présente 3 options : ROLLBACK (restore DB + git checkout), FORCE (skip step), MANUAL (pause + instructions).

Référence

Commandes slash

CommandeDescription
/drupal-migrateMigration majeure (D10→D11, D11→D12...) — demande la version cible
/drupal-updatePatches sécurité et mises à jour mineures — auto-détecte ce qui est disponible
/drupal-statusAnalyse en lecture seule — aucune modification, rapport complet
/drupal-dry-runSimulation : composer update --dry-run + rapport de compatibilité, zéro changement
/drupal-rollbackRestauration depuis le dernier snapshot (DB + composer.json + composer.lock)
/drupal-resumeReprendre une migration interrompue depuis la dernière étape complétée
/drupal-cleanup-testsSupprimer tout le contenu de test AgentIA créé pendant le test-runner
Reprise automatique — si une migration est interrompue (crash, coupure réseau), /drupal-resume lit la dernière étape complétée dans .drupal-migration/environment.json et reprend depuis là.
Support

Chemins de migration

DeVersStatutNote
D9D10Supporté
D10D11Battle-tested (migration réelle avril 2026)
D11D12🔄Prêt (base de données deprecations en place)
D9D11Multi-hop automatique (2 passes)
DDEVLandoDocker ComposePHP local
Différenciation

Ce que les migrations manuelles ratent

🩹
Validation des patches avant update

Détecte les patches obsolètes ou qui vont échouer silencieusement avant de lancer composer update.

🔇
Échecs silencieux

Un patch qui "Skips" sans erreur est détecté et signalé. Plus de "ça a compilé" mais site cassé.

Symfony 7 breaking changes

GetResponseEvent, ContainerAwareCommand, namespace EventDispatcher — détectés dans le code custom AVANT la mise à jour.

📸
Snapshots HTML avant/après

Chaque page capturée avant migration, diffée après. Régression visuelle détectée automatiquement.

📊
Row counts des Views

Un View avec 42 résultats qui en retourne 0 après migration : VIEWS_EMPTY — flagué immédiatement.

🧪
Tests create/edit API

Création et édition de contenu testées via API Drupal avant et après. Comparaison pass/fail automatique.

📋
Checklist de déploiement

DEPLOYMENT-CHECKLIST.md généré automatiquement en fonction de ce qui a réellement changé.

Sécurité

Garanties

🚫
Refus automatique en production

Détecte $settings['environment'] = 'production', alias @prod, APP_ENV=production. Refuse de démarrer.

💾
Snapshot avant tout

DB dump + config export + git tag créés avant la première modification. Toujours.

🔍
Validation des patches avant update

Sait qu'un patch va échouer AVANT de lancer composer update. Zéro surprise de type "Could not apply patch! Skipping."

↩️
Rollback automatique sur échec critique

Aucun état silencieusement cassé. Le rollback-manager présente toujours les options.

🧪
Tests de régression contenu

HTML snapshot avant/après, row counts des Views, create/edit API. Un View à 42 rows qui passe à 0 est détecté.

🧹
Contenu de test isolé

Tous les nœuds de test appartiennent à l'user AgentIA. Nettoyage en une commande.

Installation

Prérequis & mise en place

Claude Code (claude --version)PHP 8.1+Composer 2.xGitDDEV / Lando / Docker / PHP local500MB+ espace libre
RECOMMANDÉVia skills CLI
bash
npx skills add ThomasRoger76/drupal-migration
Manuel
bash
git clone https://github.com/ThomasRoger76/drupal-migration.git
cp -r drupal-migration ~/.claude/skills/drupal-migration
Démarrer — dans un projet Drupal Composer, lance /drupal-status pour un audit sans modification, ou /drupal-dry-run pour simuler une migration complète.
Prêt à migrer sans risque ?

MIT — libre d'utilisation, modification et distribution.