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_transaction sur 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égorieSkillsExemples
Onboarding3Bootstrap check, runner selection, quality checks
Testing4TDD PHPUnit, TDD Pest, test doubles, tests fonctionnels
Doctrine ORM5Relations, migrations, transactions, batch, fetch modes
API Platform7Resources, DTOs, filters, state providers, serialization, security, tests
Messenger & Async3Messenger, retry/failures, scheduler
Security2Voters, rate limiting
Architecture6CQRS, ports & adapters, strategy, interfaces, value objects, controller cleanup
Config & Quality3Config/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 :

  1. RED : écrire le test qui échoue, avec les bonnes assertions Pest
  2. GREEN : implémenter le minimum pour faire passer le test
  3. 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 :

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.

KD

Kevin De Vaubree

Développeur Full-Stack Senior