
Symfony:writing Plans Skill
- 398 installs
- 190 repo stars
- Updated August 6, 2026
- makfly/superpowers-symfony
symfony:writing-plans is a Claude agent skill that produces structured Symfony implementation plans decomposing features, database migrations, and tests into sequenced milestones before large PHP codebase changes.
About
symfony:writing-plans is an agent skill from makfly/superpowers-symfony adapted from structured planning workflows for Symfony PHP projects. The skill guides agents to break large features into sequenced milestones covering entity changes, Doctrine migrations, service wiring, controller endpoints, and test coverage before any code is written. Developers invoke it when facing multi-file Symfony refactors or new module work where jumping straight into coding risks missed migration ordering or untested edge cases. Output is a written implementation plan with ordered tasks, file touch points, and test checkpoints aligned to Symfony conventions. The skill complements superpowers-style plan-first development rather than replacing Symfony CLI or runtime debugging tools.
- Symfony feature decomposition
- Dependency and risk mapping
- Bundle boundary definition
- Milestone-oriented task lists
- Test and rollout sequencing
Symfony:Writing Plans by the numbers
- 398 all-time installs (skills.sh)
- Ranked #814 of 3,347 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 11, 2026 (Skillselion catalog sync)
npx skills add https://github.com/makfly/superpowers-symfony --skill symfonywriting-plansAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 398 |
|---|---|
| repo stars | ★ 190 |
| Last updated | August 6, 2026 |
| Repository | makfly/superpowers-symfony ↗ |
How do you plan Symfony feature work before coding?
Produce structured Symfony implementation plans that decompose features, migrations, and tests into sequenced milestones before starting large PHP codebase changes.
Who is it for?
PHP developers starting large Symfony features or refactors who want milestone plans covering migrations and tests before editing the codebase.
Skip if: Developers who need runtime Symfony debugging, one-line bug fixes, or planning for non-PHP frameworks like Laravel or Node.js backends.
When should I use this skill?
The user asks to plan a Symfony feature, decompose a PHP refactor into milestones, or write an implementation plan covering migrations and tests before coding.
What you get
Structured Symfony implementation plans with sequenced milestones, migration steps, file touch points, and test checkpoints.
- Sequenced Symfony implementation plan
- Migration and test milestone checklist
Files
Writing Plans (Symfony)
Use when
- Refining architecture/workflows/context handling in Symfony projects.
- Planning and executing medium/complex changes safely.
Default workflow
1. Establish current boundaries, constraints, and coupling points. 2. Propose smallest coherent architectural adjustment. 3. Execute in checkpoints with validation at each stage. 4. Summarize tradeoffs and follow-up backlog.
Guardrails
- Use existing project patterns by default.
- Avoid broad refactors without explicit need.
- Keep decision log clear and auditable.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- Architecture/workflow changes.
- Checkpoint validation outcomes.
- Residual risks and next steps.
References
reference.mddocs/complexity-tiers.md
Reference
Writing Implementation Plans
Transform brainstorming results into actionable implementation plans.
Plan Structure
1. Overview
# Implementation Plan: [Feature Name]
## Summary
[1-2 sentence description of what we're building]
## Scope
- IN: [What's included]
- OUT: [What's explicitly excluded]
## Dependencies
- [Required packages]
- [Existing services/entities to modify]
- [External services]2. Technical Design
## Entities
### New Entity: Order#[ORM\Entity] class Order { #[ORM\Id] #[ORM\Column(type: 'uuid')] private Uuid $id;
#[ORM\ManyToOne(targetEntity: User::class)] private User $customer;
#[ORM\Column(type: 'string', enumType: OrderStatus::class)] private OrderStatus $status;
#[ORM\OneToMany(targetEntity: OrderItem::class, mappedBy: 'order')] private Collection $items; }
### Modified Entity: User
- Add `orders` OneToMany relation3. Services & Handlers
## Services
### OrderService
- `createOrder(User $user, array $items): Order`
- `calculateTotal(Order $order): Money`
- `validateStock(Order $order): bool`
### Message Handlers
### ProcessOrderHandler
- Triggered by: `ProcessOrder` message
- Actions:
1. Validate stock
2. Reserve items
3. Dispatch `OrderProcessed` event4. API Endpoints
## API Endpoints
### POST /api/orders
- Request: `{items: [{productId, quantity}]}`
- Response: `201 Created` with Order resource
- Security: `ROLE_USER`
### GET /api/orders/{id}
- Response: Order resource
- Security: Owner or `ROLE_ADMIN`5. Implementation Steps
## Implementation Steps
### Phase 1: Foundation
1. [ ] Create `OrderStatus` enum
2. [ ] Create `Order` entity with migrations
3. [ ] Create `OrderItem` entity with migrations
4. [ ] Add relation to `User` entity
5. [ ] Run migrations
### Phase 2: Business Logic
6. [ ] Create `OrderService`
7. [ ] Create `ProcessOrder` message
8. [ ] Create `ProcessOrderHandler`
9. [ ] Write unit tests for service
### Phase 3: API
10. [ ] Configure API Platform resource
11. [ ] Add security voters
12. [ ] Write functional tests
### Phase 4: Integration
13. [ ] Connect to payment service
14. [ ] Add email notifications
15. [ ] End-to-end testing6. Acceptance Criteria
## Acceptance Criteria
- [ ] User can create order with multiple items
- [ ] Order total is calculated correctly
- [ ] Stock is validated before processing
- [ ] Only owner can view their orders
- [ ] Admin can view all orders
- [ ] Order status transitions are validated
- [ ] Email sent on order confirmation7. Risks & Mitigations
## Risks
| Risk | Probability | Impact | Mitigation |
|------|-------------|--------|------------|
| Stock race condition | Medium | High | Use database locking |
| Payment failure | Low | High | Implement retry with Messenger |
| Performance on large orders | Low | Medium | Batch processing |Plan Templates
CRUD Feature
# Plan: [Entity] CRUD
## Entities
- [Entity] with fields: [list]
## Steps
1. [ ] Create entity + migration
2. [ ] Create Foundry factory
3. [ ] Configure API Platform resource
4. [ ] Add validation constraints
5. [ ] Add security voter
6. [ ] Write testsBackground Job Feature
# Plan: [Job Name]
## Messages
- [MessageName]: [trigger description]
## Handlers
- [HandlerName]: [processing steps]
## Steps
1. [ ] Create message class
2. [ ] Create handler
3. [ ] Configure routing in messenger.yaml
4. [ ] Add retry strategy
5. [ ] Write tests with in-memory transportIntegration Feature
# Plan: [Service] Integration
## External Service
- API: [URL/docs]
- Auth: [method]
- Rate limits: [limits]
## Steps
1. [ ] Create HTTP client service
2. [ ] Create DTOs for requests/responses
3. [ ] Implement retry logic
4. [ ] Add circuit breaker
5. [ ] Write tests with mocked responsesBest Practices
1. Atomic steps: Each step should be completable independently 2. Test-first: Include test steps before implementation 3. Dependencies clear: Note which steps depend on others 4. Reviewable: Plan should be reviewable by team 5. Time-boxed: Add rough complexity indicators (S/M/L)
Skill Operating Checklist
Design checklist
- Confirm operation boundaries and invariants first.
- Minimize scope while preserving contract correctness.
- Test both happy path and negative path behavior.
Validation commands
- rg --files
- composer validate
- ./vendor/bin/phpstan analyse
Failure modes to test
- Invalid payload or forbidden actor.
- Boundary values / not-found cases.
- Retry or partial-failure behavior for async flows.
Related skills
FAQ
What does symfony:writing-plans produce?
symfony:writing-plans produces structured Symfony implementation plans that decompose features, Doctrine migrations, and tests into sequenced milestones. Developers use the plan to order file changes before starting large PHP codebase edits.
When should developers use symfony:writing-plans?
Developers should use symfony:writing-plans before large Symfony feature work or multi-file refactors where migration ordering and test coverage must be planned upfront rather than discovered during ad-hoc coding.