Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add noartem/skills --skill "laravel-laravel-prompting-patterns"
Install specific skill from multi-skill repository
# Description
Use Laravel-specific vocabulary—Eloquent patterns, Form Requests, API resources, jobs/queues—to get idiomatic framework code
# SKILL.md
name: laravel-laravel-prompting-patterns
description: Use Laravel-specific vocabulary—Eloquent patterns, Form Requests, API resources, jobs/queues—to get idiomatic framework code
Laravel Prompting Patterns
Use Laravel's vocabulary to get idiomatic code. Generic requests produce generic solutions that don't leverage the framework.
Database Operations
Generic
"Get all active users with their posts"
Laravel-Specific
"Query active users with eager-loaded posts using Eloquent:
User::where('active', true)
->with('posts')
->get();
Add a scope to User model: scopeActive($query)"
Relationships
"Set up a many-to-many relationship between Posts and Tags:
- Create
post_tagpivot table migration - Add
belongsToManyin Post model - Add
belongsToManyin Tag model - Use
attach(),detach(),sync()for management"
Query Optimization
"Avoid N+1 on the posts index:
- Eager load
authorandcategoryrelationships - Use
withCount('comments')for comment totals - Add database indexes on
published_atandcategory_id"
Validation
Generic
"Validate the user input"
Laravel-Specific
"Create UserStoreRequest with validation rules:
public function rules(): array
{
return [
'email' => ['required', 'email', 'unique:users,email'],
'password' => ['required', 'min:12', Password::defaults()],
'name' => ['required', 'string', 'max:255'],
];
}
Add custom error messages in messages() method"
Complex Validation
"Validate order creation:
- Use
Rule::exists('products', 'id')for product IDs - Validate nested items array:
items.*.quantitymust be integer, min 1 - Use
Rule::requiredIf()for conditional shipping address - Add custom rule for inventory check:
new HasSufficientStock"
API Endpoints
Generic
"Create an API for products"
Laravel-Specific
"Create RESTful product API:
- Resource controller:
ProductControllerwith apiResource routes - Use
ProductResourcefor response transformation - Add
ProductCollectionfor index endpoint with pagination - Protect with Sanctum middleware:
auth:sanctum - Return 201 on create, 204 on delete
- Use
ProductStoreRequestandProductUpdateRequestfor validation"
Pagination
"Paginate products API:
- Use
Product::paginate(20)in controller - Return with
ProductResource::collection($products) - Include meta:
total,per_page,current_page,last_page - Support
?page=2query parameter"
Filtering
"Add filtering to products API:
- Accept
?category=electronics&min_price=100query params - Use
when()for conditional queries - Extract to
ProductFiltersclass for reusability - Document query params in API docs"
Background Processing
Generic
"Send email after user registers"
Laravel-Specific
"Dispatch SendWelcomeEmail job after registration:
SendWelcomeEmail::dispatch($user)
->onQueue('emails')
->delay(now()->addMinutes(5));
- Implement
ShouldQueueinterface - Add
$tries = 3and$timeout = 30 - Handle failure in
failed()method - Tag job for Horizon:
$tags = ['user:'.$user->id]"
Queue Configuration
"Configure queue for payment processing:
- Use
redisconnection for payments queue - Set
queue:work --queue=payments,default - Add
retry_afterto 90 seconds in config - Monitor with Horizon dashboard"
Job Chaining
"Process order with job chain:
Bus::chain([
new ValidateInventory($order),
new ChargePayment($order),
new SendConfirmation($order),
])->dispatch();
If any job fails, chain stops. Handle in catch() callback."
Referencing Documentation
Effective References
"Implement according to Laravel's Eloquent Relationships docs"
"Follow Laravel's Form Request Validation pattern"
"Use Laravel's API Resource pattern for response transformation"
"Configure queues per Laravel Queue docs"
Pattern Catalog
Models & Eloquent:
- Relationships:
hasMany,belongsTo,belongsToMany,morphMany - Scopes:
scopeActive,scopePublished - Accessors/Mutators:
get{Attribute}Attribute,set{Attribute}Attribute - Casts:
protected $casts = ['published_at' => 'datetime']
Validation:
- Form Requests:
UserStoreRequest,ProductUpdateRequest - Rules:
required,unique:table,column,exists:table,column - Custom Rules:
new Uppercase,Rule::in(['admin', 'user'])
API:
- Resources:
UserResource,ProductCollection - Pagination:
paginate(),simplePaginate(),cursorPaginate() - Rate Limiting:
throttle:60,1middleware
Jobs & Queues:
- Jobs:
ShouldQueue,dispatch(),dispatchSync() - Chains:
Bus::chain(),Bus::batch() - Horizon: Tags, monitoring, failed job handling
Use Laravel's vocabulary. Get Laravel solutions.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.