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.