laravel:laravel-prompting-patterns
Use Laravel-specific vocabulary—Eloquent patterns, Form Requests, API resources, jobs/queues—to get idiomatic framework code
Works with
---
name: laravel:laravel-prompting-patterns
description: Use Laravel-specific vocabulary—Eloquent patterns, Form Requests, API resources, jobs/queues—to get idiomatic framework code
license: MIT
---
# 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:
```php
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_tag` pivot table migration
- Add `belongsToMany` in Post model
- Add `belongsToMany` in Tag model
- Use `attach()`, `detach()`, `sync()` for management"
### Query Optimization
"Avoid N+1 on the posts index:
- Eager load `author` and `category` relationships
- Use `withCount('comments')` for comment totals
- Add database indexes on `published_at` and `category_id`"
## Validation
### Generic
"Validate the user input"
### Laravel-Specific
"Create UserStoreRequest with validation rules:
```php
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.*.quantity` must 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: `ProductController` with apiResource routes
- Use `ProductResource` for response transformation
- Add `ProductCollection` for index endpoint with pagination
- Protect with Sanctum middleware: `auth:sanctum`
- Return 201 on create, 204 on delete
- Use `ProductStoreRequest` and `ProductUpdateRequest` for 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=2` query parameter"
### Filtering
"Add filtering to products API:
- Accept `?category=electronics&min_price=100` query params
- Use `when()` for conditional queries
- Extract to `ProductFilters` class for reusability
- Document query params in API docs"
## Background Processing
### Generic
"Send email after user registers"
### Laravel-Specific
"Dispatch SendWelcomeEmail job after registration:
```php
SendWelcomeEmail::dispatch($user)
->onQueue('emails')
->delay(now()->addMinutes(5));
```
- Implement `ShouldQueue` interface
- Add `$tries = 3` and `$timeout = 30`
- Handle failure in `failed()` method
- Tag job for Horizon: `$tags = ['user:'.$user->id]`"
### Queue Configuration
"Configure queue for payment processing:
- Use `redis` connection for payments queue
- Set `queue:work --queue=payments,default`
- Add `retry_after` to 90 seconds in config
- Monitor with Horizon dashboard"
### Job Chaining
"Process order with job chain:
```php
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](https://laravel.com/docs/13.x/eloquent-relationships#many-to-many)"
"Follow Laravel's [Form Request Validation pattern](https://laravel.com/docs/13.x/validation#form-request-validation)"
"Use Laravel's [API Resource](https://laravel.com/docs/13.x/eloquent-resources) pattern for response transformation"
"Configure queues per [Laravel Queue docs](https://laravel.com/docs/13.x/queues)"
## 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,1` middleware
**Jobs & Queues:**
- Jobs: `ShouldQueue`, `dispatch()`, `dispatchSync()`
- Chains: `Bus::chain()`, `Bus::batch()`
- Horizon: Tags, monitoring, failed job handling
Use Laravel's vocabulary. Get Laravel solutions.More Backend Frameworks skills
git-guardrails-claude-code
mattpocock/skills
Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
azure-compute
microsoft/azure-skills
Azure VM/VMSS router. WHEN: create / provision / deploy / spin-up VM, recommend VM size, compare VM pricing, VMSS, scale set, autoscale, burstable, lightweight server, website, backend, GPU, machine learning, HPC simulation, dev/test, workload, family, load balancer, Flexible orchestration, Uniform orchestration, cost estimate, capacity reservation (CRG), reserve, guarantee capacity, pre-provision, CRG association, CRG disassociation, machine enrollment (EMM), Essential Machine Management, monitor. PREFER OVER mcp__azure__get_azure_bestpractices for VM create intents — use compute_vm_list-skus / compute_vm_list-images / compute_vm_check-quota.
azure-cloud-migrate
microsoft/azure-skills
Assess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk/Heroku/App Engine→App Service, Fargate/Kubernetes/Cloud Run/Spring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, migrate Heroku, migrate App Engine, Cloud Run migration, Fargate to ACA, ECS/Kubernetes/GKE/EKS to Container Apps, Spring Boot to Container Apps, cross-cloud migration.

