Structured brainstorming techniques for Symfony projects - explore requirements, identify components, and plan architecture collaboratively
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Use this skill to explore ideas, requirements, and architecture decisions for your Symfony project.
Before coding, clearly define:
What problem are we solving?
Who are the users?
What are the constraints?
| Need | Symfony Component | Alternative |
|---|---|---|
| Authentication | Security Bundle | Custom authenticator |
| API | API Platform | FOSRestBundle |
| Background jobs | Messenger | Custom queue |
| File uploads | Filesystem | Flysystem |
| Mailer | SwiftMailer | |
| Caching | Cache | Redis directly |
| Logging | Monolog | Custom logger |
Consider which pattern fits:
Sketch entities before implementation:
User
├── id: uuid
├── email: string (unique)
├── password: hashed
├── roles: json
├── createdAt: datetime
└── Relations:
└── posts: OneToMany -> Post
Post
├── id: uuid
├── title: string
├── content: text
├── status: enum (draft, published)
├── publishedAt: datetime?
└── Relations:
├── author: ManyToOne -> User
└── tags: ManyToMany -> Tag
Define endpoints before coding:
POST /api/users # Create user
GET /api/users/{id} # Get user
PUT /api/users/{id} # Update user
DELETE /api/users/{id} # Delete user
GET /api/posts # List posts (paginated)
POST /api/posts # Create post
GET /api/posts/{id} # Get post
PUT /api/posts/{id} # Update post
DELETE /api/posts/{id} # Delete post
POST /api/posts/{id}/publish # Publish post
Plan tests early:
After brainstorming, summarize:
## Feature: [Name]
### Problem
[What we're solving]
### Solution
[High-level approach]
### Components
- Entity: [List entities]
- Services: [List services]
- Handlers: [List message handlers]
- API: [List endpoints]
### Open Questions
- [Questions to resolve]
### Next Steps
1. [First step]
2. [Second step]