laravel:effective-context
Effective Context
Give the AI assistant the right context to generate accurate, relevant code. Missing context leads to generic solutions that don't fit your project.
What to Include
Files and Structure
- Reference specific files:
app/Models/User.php,routes/api.php - Mention relevant directories: "working in
app/Services/Payment" - Share project structure when it matters: "using repository pattern with interfaces in
app/Contracts"
Current State
- Show existing code you're modifying or extending
- Describe what works and what doesn't
- Include relevant configuration:
.envsettings,config/values
Laravel Context
- Version: "Laravel 11.x" or "Laravel 12.x"
- Dependencies: Mention packages like Sanctum, Horizon, Telescope
- Patterns in use: "using Form Requests", "jobs with Horizon", "API resources"
- Runner: Specify if using Sail or host commands
Monorepo Projects
- Specify which app: "working in
apps/api" vs "working inapps/admin" - Mention shared packages if relevant: "using shared
packages/common"
Describing Problems
Errors
BAD: "Getting an error with users"
GOOD: "Getting error when creating user:
Illuminate\Database\QueryException: SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry
In UserController@store, line 45:
$user = User::create($request->validated());
Using Laravel 11.x with MySQL 8.0"
Stack Traces
Include the full stack trace, especially:
- The exception class and message
- File paths and line numbers
- The method chain that led to the error
Reproduction Steps
1. POST to /api/users with email that exists
2. Validation passes (should catch this)
3. Database throws constraint violation
Vague vs Specific
Vague
"Add validation to the user form"
Specific
"Add validation to UserStoreRequest:
- Email must be unique in users table
- Password min 12 chars, requires uppercase + number
- Name required, max 255 chars
- Optional phone field, must match E.164 format"
Vague
"Need to handle payments"
Specific
"Implement Stripe payment processing:
- Create PaymentService with charge() method
- Store payment records in payments table (user_id, amount, stripe_id, status)
- Dispatch ProcessPaymentJob to queue
- Handle webhook for payment.succeeded
- Using Laravel 11.x with Cashier"
Quick Checklist
Before sending a prompt, verify:
- Mentioned Laravel version and relevant packages
- Included file paths or directory context
- Shared error messages and stack traces (if debugging)
- Specified validation rules, relationships, or business logic
- Noted if using Sail or host commands
- Identified which app (if monorepo)
More context = better results. When in doubt, include it.
More from jpcaparas/superpowers-laravel
laravel:routes-best-practices
Keep routes clean and focused on mapping requests to controllers; avoid business logic, validation, or database operations in route files
88laravel:blade-components-and-layouts
Compose UIs with Blade components, slots, and layouts; keep templates pure and testable
88laravel:quality-checks
Unified quality gates for Laravel projects; Pint, static analysis (PHPStan/Psalm), Insights (optional), and JS linters; Sail and non-Sail pairs provided
79laravel:performance-caching
Use framework caches and value/query caching to reduce work; add tags, locks, and explicit invalidation strategies for correctness
76laravel:eloquent-relationships
Define clear relationships and load data efficiently; prevent N+1, use constraints, counts/sums, and pivot syncing safely
75laravel:queues-and-horizon
Operate and verify queues with or without Horizon; safe worker flags, failure handling, and test strategies
74