module-per-menulisted
Install: claude install-skill soden46/syarif-laravel-ai-skills
# Module Per Menu
Use this skill whenever creating, copying, refactoring, or expanding a Laravel web application with multiple menus, pages, dashboards, reports, or admin screens.
Default to a module-per-menu structure unless the existing project already has a stronger convention.
## Standard Pattern
Use this shape for Laravel apps with menus or pages:
```text
Route -> Small Page/Resource Controller -> Action/Service/Query Service when needed -> Eloquent -> View/API Response
```
Organize UI work so one menu or page maps to one clear module:
```text
app/Http/Controllers/<Domain>/
AuthController.php
DashboardController.php
GateInController.php
GateOutController.php
CustomerController.php
ReportController.php
app/Services/<Domain>/
DashboardReportService.php
BillingService.php
DailyReportService.php
resources/views/<domain>/
layouts/app.blade.php
pages/dashboard.blade.php
pages/gate-in/index.blade.php
pages/gate-in/create.blade.php
pages/gate-out/index.blade.php
pages/gate-out/process.blade.php
components/filters.blade.php
components/table.blade.php
```
## Controller Rules
- Keep controllers small and readable.
- Create one controller per menu, page group, or resource boundary.
- Let controllers orchestrate HTTP only: receive request, call validation/authorization, call service/action/query, return view/redirect/JSON.
- Move repeated query/report calculations to a Service or query object.
- Move multi-step writes to Actions or Service