skills/standards-laravel/SKILL.md
Use when building or modifying Laravel applications, including routes, controllers, models, migrations, jobs, actions, and API resources.
npx skillsauth add paulund/ai standards-laravelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
./vendor/bin/sail composer run test (Pint + PHPStan level 8 + Pest)| Topic | Reference | Load When |
|-------|-----------|-----------|
| Models | references/models.md | Eloquent models, relationships, scopes, casts |
| Routes | references/routes.md | Route definitions, naming, grouping, middleware |
| Controllers | references/controllers.md | Invokable controllers, route model binding, return types |
| Actions | references/actions.md | Business logic, record creation/update/delete |
| Form Requests | references/form-requests.md | Validation, authorization |
| API Resources | references/api-resources.md | Model transformation, nested resources, Inertia props |
| Services | references/services.md | External I/O, third-party API clients, DTOs |
| Jobs & Events | references/jobs-events.md | Queued jobs, event dispatching, listeners |
| Policies | references/policies.md | Authorization policies, gates |
| Migrations | references/migrations.md | Schema changes, indexes, foreign keys |
| Configuration | references/configuration.md | #[Config] attribute injection, view data passing |
| Current User | references/current-user.md | #[CurrentUser] attribute, authenticated user injection |
$request->validate() in controllersrules()) for actions with no request body (show, edit, destroy)resource_id (UUID) as public id — never expose internal database IDs#[Config] attribute for configuration injection#[CurrentUser] attribute for authenticated user injection in controller constructors./vendor/bin/sail composer run test (Pint + PHPStan level 8 + Pest)#[Config] injectionGate::authorize() in controllers — use Form Request authorize() methodAuth::user() inside controller methods — use #[CurrentUser] constructor injection insteaddevelopment
Use when implementing any logic, fixing any bug, or changing any behaviour. Use when you need to prove code works, when a bug report arrives, or when modifying existing functionality. Do NOT use for config changes, data migrations, or dependency updates.
development
Use when starting a new feature, when requirements are unclear, when asked to write code without a clear spec, or before any non-trivial implementation. Do NOT use for trivial bug fixes or one-line changes.
development
Use when you want authoritative, source-cited code free from outdated patterns. Use when building with any framework or library where correctness matters. Detects the stack from dependency files, fetches official documentation, implements following documented patterns, and cites sources for every framework-specific decision.
development
Use when preparing to ship a feature, release, or deployment. Use before merging to main, creating a release, or deploying to production. Do NOT use for CI-only changes or internal refactors that don't reach production.