| name | laravel-11-12-app-guidelines |
| description | Guidelines and workflow for working on Laravel 11 or Laravel 12 applications across common stacks (API-only or full-stack), including optional Docker Compose/Sail, Inertia + React, Livewire, Vue, Blade, Tailwind v4, Fortify, Wayfinder, PHPUnit, Pint, and Laravel Boost MCP tools. Use when implementing features, fixing bugs, or making UI/backend changes while following project-specific instructions (AGENTS.md, docs/). |
| author | Community |
Laravel 11/12 App Guidelines
Overview
Apply a consistent workflow for Laravel 11/12 apps with optional frontend stacks, Dockerized commands, and Laravel Boost tooling.
Quick Start
- Read repository instructions first:
AGENTS.md. Ifdocs/exists, readdocs/README.mdand relevant module docs before decisions. - Detect the stack and command locations; do not guess.
- Use Laravel Boost
search-docsfor Laravel ecosystem guidance; use Context7 only if Boost docs are unavailable. - Follow repo conventions for naming, UI language, docs-first policies, and existing component patterns.
Stack Detection
- Check
composer.json,package.json,docker-compose.*, andconfig/*to confirm:- Docker Compose/Sail vs host commands
- API-only vs full-stack
- Frontend framework (Inertia/React, Livewire, Vue, Blade)
- Auth (Fortify, Sanctum, Passport, custom)
Laravel 11/12 Core Conventions
- Use the Laravel 11/12 structure: configure middleware, exceptions, and routes in
bootstrap/app.php; service providers inbootstrap/providers.php; console configuration inroutes/console.php. - Use Eloquent models and relationships first; avoid raw queries and
DB::unless truly necessary. - Create Form Request classes for validation instead of inline validation.
- Prefer named routes and
route()for URL generation. - When altering columns, include all existing attributes in the migration to avoid dropping them.
- Ask before destructive database operations (e.g., reset/rollback/fresh).
API-Only Mode
- Use
routes/api.php; avoid Inertia and frontend assumptions. - Prefer API Resources and versioning if the repo already uses them.
- Follow the repo's auth stack (Sanctum/Passport/custom) and response format conventions.
- Do not require Vite/Tailwind/NPM unless the repo already includes them.
Inertia + React + Wayfinder (if present)
- Use
Inertia::render()for server-side routing; place pages underresources/js/Pagesunless the repo says otherwise. - Use
<Form>oruseFormfor Inertia forms; add skeleton/empty states for deferred props. - Use
<Link>orrouter.visit()for navigation. - Use Wayfinder named imports for tree-shaking; avoid default imports; regenerate routes after changes if required.
Livewire / Vue / Blade (if present)
- Follow existing component patterns and conventions; do not mix frameworks unless the repo already does.
- Keep UI strings in the repo's expected language.
Tailwind CSS v4 (if present)
- Use
@import "tailwindcss";and@themefor tokens. - Avoid deprecated utilities; use replacements (e.g.,
shrink-*,grow-*,text-ellipsis). - Use
gap-*for spacing between items; follow existing dark mode conventions if present.
Testing and Formatting
- Use PHPUnit; generate tests with
php artisan make:test --phpunitand prefer feature tests. - Run the minimal relevant tests (
php artisan test <file>or--filter=). - Run
vendor/bin/pint --dirtybefore finalizing code changes. - After minimal tests pass, offer to run the full test suite.
Laravel Boost MCP Tools (when available)
search-docsbefore changing behavior or using framework features.list-artisan-commandsto confirm Artisan options.list-routesto inspect routing changes.tinkerfor PHP debugging anddatabase-queryfor read-only DB checks.browser-logsto inspect frontend errors.get-absolute-urlfor sharing project URLs.- See
references/boost-tools.mdfor query patterns and tool usage tips.
Output Expectations
- Preserve existing architecture, structure, and dependencies unless the user explicitly requests changes.
- Reuse existing components and follow local patterns.
- Ask concise clarifying questions when repo guidance is missing or ambiguous.