| name | filament-conventions |
| description | The house rules for building Filament v5 panels — schema layout, navigation grouping, relation managers, save-redirects, delete placement, the user-menu profile/settings page, native authentication + optional authenticator-app (TOTP) 2FA, and no public registration. Opinionated, prescriptive, and grounded in real Filament 5.6 source so every namespace and method is correct. Trigger: load whenever editing Laravel/Filament code — creating or changing a Filament Resource, form/table schema, page (Create/Edit/List), RelationManager, or PanelProvider; wiring panel auth/2FA; or scaffolding admin UI with `make:filament-*`.
|
Filament v5 Conventions — index
Verified against Filament v5.6.7 — every class, namespace, and method was read from
vendor source; never substitute from memory or v3 habits. Load ONE card or recipe at a time.
Form fields → Filament\Forms\Components\* · actions → Filament\Actions\* · layout/schema
→ Filament\Schemas\Components\* (namespace table). In
v5 a resource form is a Schema — form(Schema $schema): Schema — not the old v3 Form.
php artisan make:filament-resource Contact --generate
php artisan make:filament-relation-manager ContactResource tags name
php artisan make:filament-page Settings
php artisan make:filament-user
| # | Rule (non-negotiable) | Card | Probe |
|---|
| 1 | Form schema opens with Section/Fieldset, never a flat bag of inputs | rule-1 | F1 |
| 2 | Group pages/resources into navigation groups ($navigationGroup) | rule-2 | F2 |
| 3 | A RelationManager for every real relation | rule-3 | F3 |
| 4 | Delete on the LIST table, not the Edit page | rule-4 | F4 |
| 5 | Create AND Edit redirect to the list on save | rule-5 | F5 |
| 6 | User-menu Settings/profile page (->profile()) | rule-6 | F6 |
| 7 | Native auth + OPTIONAL authenticator-app (TOTP) 2FA | rule-7 | F7 |
| 8 | No public registration — never call ->registration() | rule-8 | F8 |
| 9 | The dashboard is a custom page, never the stock one | rule-9 | F9 |
Recipes (vendor file:symbol citations): references/filament-5-recipes.md · done = probes F1–F9 green, output attached: ../../references/conformance-probes.md.
In a symlinked package? Edit the package repo, never vendor/ — card.