Superpowers Symfony : 49 Skills pour Coder avec Claude Code comme un Senior
Quand j’ai commencé à utiliser Claude Code au quotidien sur des projets Symfony, j’ai vite réalisé un problème : l’IA est généraliste, pas spécialiste. Elle connaît Symfony, mais pas les patterns avancés, pas les conventions d’équipe, pas les pièges spécifiques à Doctrine ou API Platform.
J’ai donc créé Superpowers Symfony — un plugin Claude Code qui fournit 49 skills spécialisés pour le développement Symfony. Le projet a dépassé les 57 stars sur GitHub et est utilisé quotidiennement par des développeurs Symfony.
Voici le retour d’expérience.
Le problème : l’IA sans contexte framework
Claude Code est puissant. Mais quand vous lui demandez de configurer Symfony Messenger pour du CQRS, il va souvent :
- Proposer une config Symfony 5 alors que vous êtes en Symfony 7
- Ignorer les conventions de votre projet (namespaces, structure de dossiers)
- Oublier le middleware
doctrine_transactionsur le command bus - Générer des handlers sans les attributs
#[AsMessageHandler]
Le résultat : du code qui compile mais qui ne suit pas les bonnes pratiques. Vous passez du temps à corriger ce que l’IA aurait dû faire correctement.
Les skills résolvent ce problème en injectant du contexte expert dans chaque interaction. Quand vous chargez le skill symfony:cqrs-and-handlers, Claude Code sait exactement comment configurer Messenger en CQRS pour Symfony 7, avec les bons attributs, les bons transports, et les bonnes conventions.
Pour comprendre le pattern CQRS lui-même, voir mon article sur CQRS avec Symfony Messenger.
Architecture du plugin
Le plugin est structuré en 8 catégories couvrant l’ensemble du développement Symfony :
superpowers-symfony/
├── skills/ # 49 fichiers markdown avec frontmatter YAML
├── commands/ # 12 slash commands
├── hooks/ # Auto-détection Docker/FrankenPHP
├── docs/symfony/ # Documentation de référence
└── scripts/ # Validation et setup
Chaque skill est un fichier markdown avec :
- Frontmatter YAML : métadonnées, catégorie, tags
- Contexte : quand et pourquoi utiliser ce pattern
- Code d’exemple : implémentation concrète Symfony 7
- Tests : comment tester le pattern
- Pièges courants : erreurs à éviter
Les 8 catégories
| Catégorie | Skills | Exemples |
|---|---|---|
| Onboarding | 3 | Bootstrap check, runner selection, quality checks |
| Testing | 4 | TDD PHPUnit, TDD Pest, test doubles, tests fonctionnels |
| Doctrine ORM | 5 | Relations, migrations, transactions, batch, fetch modes |
| API Platform | 7 | Resources, DTOs, filters, state providers, serialization, security, tests |
| Messenger & Async | 3 | Messenger, retry/failures, scheduler |
| Security | 2 | Voters, rate limiting |
| Architecture | 6 | CQRS, ports & adapters, strategy, interfaces, value objects, controller cleanup |
| Config & Quality | 3 | Config/env, cache, quality checks |
Comment ça fonctionne en pratique
L’utilisation est naturelle dans une conversation Claude Code :
"Charge le skill symfony:doctrine-relations pour designer les entités de mon e-commerce"
Claude Code lit le skill, absorbe le contexte, et ses réponses deviennent spécifiques à Symfony 7 avec les bons patterns Doctrine : cascade persist, orphan removal, fetch modes optimisés.
Le skill symfony:tdd-with-pest guide tout le cycle RED-GREEN-REFACTOR :
- RED : écrire le test qui échoue, avec les bonnes assertions Pest
- GREEN : implémenter le minimum pour faire passer le test
- REFACTOR : nettoyer en gardant les tests verts
Le développeur reste aux commandes. L’IA exécute avec le bon contexte.
Auto-détection de l’environnement
Un des aspects les plus utiles : le plugin détecte automatiquement votre setup Docker :
- Symfony Docker + FrankenPHP : les commandes passent par
docker compose exec php - Docker Compose standard : adaptation des commandes
- PHP local : utilisation directe du binaire PHP
Pas de configuration manuelle. Le hook d’auto-détection analyse votre docker-compose.yml au démarrage et ajuste toutes les commandes en conséquence.
Ce que j’ai appris en créant le plugin
Les skills doivent être opinionnés
Un skill qui dit “vous pouvez faire A ou B” n’est pas utile. Un skill qui dit “faites A, voici pourquoi, et voici comment” l’est. L’IA a besoin de directives claires, pas d’options.
Le contexte framework vieillit vite
Symfony évolue. Les skills doivent être maintenus à chaque release majeure. La migration Symfony 6 → 7 a nécessité de revoir 15 skills. C’est du travail, mais c’est ce qui fait la différence entre un plugin utile et un plugin obsolète.
La communauté valide les choix
Les 57+ stars ne sont pas venues des features — elles sont venues des bonnes pratiques encodées. Les développeurs adoptent le plugin parce qu’il formalise ce que les seniors savent mais n’ont jamais écrit noir sur blanc.
L’écosystème Superpowers
Après Symfony, j’ai étendu le concept aux autres frameworks que j’utilise :
- Superpowers Next.js : App Router, Server Components, Server Actions
- Superpowers Laravel : Actions, Eloquent, Pest
- Superpowers TanStack : TanStack Start, Router, Query
Le même principe : du contexte expert injecté dans Claude Code pour chaque framework.
Cette approche s’inscrit dans ma vision de l’IA dans le workflow développeur — l’IA est un outil de productivité, pas un remplacement. Les skills encodent l’expertise humaine pour que l’IA l’applique correctement.
Pour les patterns d’architecture que les skills implémentent, consultez mon article sur l’architecture logicielle pour applications web modernes.
En résumé
Superpowers Symfony transforme Claude Code d’un assistant généraliste en un partenaire de développement Symfony expert. 49 skills couvrant TDD, Doctrine, API Platform, CQRS, Messenger et plus — avec auto-détection de l’environnement et des bonnes pratiques opinionnées.
Le projet est open source sous licence MIT : github.com/MakFly/superpowers-symfony.
Kevin De Vaubree
Développeur Full-Stack Senior