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: .env settings, 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 in apps/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
- POST to /api/users with email that exists
- Validation passes (should catch this)
- 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.