Superpowers Symfony: 49 Skills to Code with Claude Code Like a Senior


When I started using Claude Code daily on Symfony projects, I quickly realized a problem: AI is a generalist, not a specialist. It knows Symfony, but not advanced patterns, not team conventions, not specific Doctrine or API Platform pitfalls.

So I created Superpowers Symfony — a Claude Code plugin providing 49 specialized skills for Symfony development. The project exceeded 57 stars on GitHub and is used daily by Symfony developers.

Here’s the feedback.

The problem: AI without framework context

Claude Code is powerful. But when you ask it to configure Symfony Messenger for CQRS, it often:

  • Proposes Symfony 5 config when you’re on Symfony 7
  • Ignores your project conventions (namespaces, folder structure)
  • Forgets the doctrine_transaction middleware on the command bus
  • Generates handlers without #[AsMessageHandler] attributes

The result: code that compiles but doesn’t follow best practices. You spend time correcting what AI should have done right.

Skills solve this problem by injecting expert context into every interaction. When you load the symfony:cqrs-and-handlers skill, Claude Code knows exactly how to configure Messenger in CQRS for Symfony 7, with the right attributes, transports, and conventions.

To understand the CQRS pattern itself, see my article on CQRS with Symfony Messenger.

Plugin architecture

The plugin is structured in 8 categories covering all Symfony development:

superpowers-symfony/
├── skills/           # 49 markdown files with YAML frontmatter
├── commands/         # 12 slash commands
├── hooks/            # Docker/FrankenPHP auto-detection
├── docs/symfony/     # Reference documentation
└── scripts/          # Validation and setup

Each skill is a markdown file with:

  • YAML frontmatter: metadata, category, tags
  • Context: when and why to use this pattern
  • Example code: concrete Symfony 7 implementation
  • Tests: how to test the pattern
  • Common pitfalls: errors to avoid

The 8 categories

CategorySkillsExamples
Onboarding3Bootstrap check, runner selection, quality checks
Testing4TDD PHPUnit, TDD Pest, test doubles, functional tests
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

How it works in practice

Usage is natural in a Claude Code conversation:

"Load the symfony:doctrine-relations skill to design my e-commerce entities"

Claude Code reads the skill, absorbs the context, and its responses become specific to Symfony 7 with the right Doctrine patterns: cascade persist, orphan removal, optimized fetch modes.

The symfony:tdd-with-pest skill guides the entire RED-GREEN-REFACTOR cycle:

  1. RED: write the failing test, with proper Pest assertions
  2. GREEN: implement the minimum to pass the test
  3. REFACTOR: clean up while keeping tests green

The developer stays in control. AI executes with the right context.

Environment auto-detection

One of the most useful aspects: the plugin automatically detects your Docker setup:

  • Symfony Docker + FrankenPHP: commands go through docker compose exec php
  • Standard Docker Compose: command adaptation
  • Local PHP: direct use of PHP binary

No manual configuration. The auto-detection hook analyzes your docker-compose.yml at startup and adjusts all commands accordingly.

What I learned creating the plugin

Skills must be opinionated

A skill that says “you can do A or B” isn’t useful. A skill that says “do A, here’s why, and here’s how” is. AI needs clear directives, not options.

Framework context ages fast

Symfony evolves. Skills must be maintained at each major release. The Symfony 6 → 7 migration required revising 15 skills. It’s work, but it’s what makes the difference between a useful plugin and an obsolete one.

Community validates choices

The 57+ stars didn’t come from features — they came from encoded best practices. Developers adopt the plugin because it formalizes what seniors know but have never written down.

The Superpowers ecosystem

After Symfony, I extended the concept to other frameworks I use:

Same principle: expert context injected into Claude Code for each framework.

This approach fits into my vision of AI in developer workflow — AI is a productivity tool, not a replacement. Skills encode human expertise for AI to apply correctly.

For the architectural patterns that skills implement, see my article on software architecture for modern web applications.

In summary

Superpowers Symfony transforms Claude Code from a generalist assistant into an expert Symfony development partner. 49 skills covering TDD, Doctrine, API Platform, CQRS, Messenger and more — with environment auto-detection and opinionated best practices.

The project is open source under MIT license: github.com/MakFly/superpowers-symfony.

KD

Kevin De Vaubree

Senior Full-Stack Developer