Laravel framework skill for writing, reviewing, and testing PHP applications built with Laravel. Use whenever working on Laravel-specific patterns: controllers, FormRequests, Eloquent models, service/action classes, Blade templates, jobs, events, policies, observers, or Artisan commands. Also applies to Inertia frontends (React or Vue) embedded inside a Laravel project — covering useForm, usePage, Link navigation, partial reloads, page component naming (PostsIndexPage), and shadcn wrapper conventions. Trigger any time someone mentions Laravel, Eloquent, Artisan, Blade, FormRequest, Inertia within Laravel, N+1 queries in a Laravel app, inline controller validation, where business logic should live in a Laravel controller, or asks to follow best practices in a Laravel codebase. Does not apply to plain PHP scripts without Laravel, Rails, Django, standalone Next.js, or non-Laravel frameworks.
86
85%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
This skill guides an AI coding agent to:
Use references/rulebook.json as the source of truth for:
When you flag an issue, always include:
authorize() calls in the HTTP layer, never inside services.env() outside config files: access environment values via config() throughout the app; env() only in config/*.php.When reviewing or generating Inertia React code, apply rules INRT-001–INRT-010 from the rulebook.
See references/inertia-react-summary.md for a quick-reference cheat sheet, or references/inertia-react.md for the full annotated directory structure and examples.
common (shared primitives), modules (feature code), pages (Inertia-rendered), shadcn (generated components).Page, use a default export (e.g. PostsIndexPage.tsx)..tsx file, PascalCase filenames, function declarations.usePage<SharedProps>() for globally shared data.useForm from @inertiajs/react; avoid raw fetch/axios for Inertia-driven forms.usePage() rather than prop-drilling auth/flash data through every component layer.<Link> from @inertiajs/react; reserve plain <a> tags for external URLs.router.reload({ only: [...] }) to refresh a subset of props instead of a full page visit.When reviewing or generating Inertia Vue code, apply rules INRT-VUE-001–INRT-VUE-005 from the rulebook.
See references/inertia-vue.md for the annotated directory structure and conventions.
common (shared UI primitives), modules (feature code), pages (Inertia-rendered), lib (third-party/generated).Page, use <script setup> or export default (e.g. PostsIndexPage.vue)..vue file, PascalCase filenames, prefer <script setup> + Composition API.resources/js/lib; wrap in common for a project-friendly API — don't modify sources directly.When asked to review code:
Return a JSON object:
When asked to implement a feature:
Prefer Pest if repository uses Pest (presence of pestphp/pest in composer.json); otherwise PHPUnit.
22c7c54
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.