Generate FilamentPHP v4 resources with form, table, relation managers, and actions
View on GitHubmwguerra/claude-code-plugins
filament-specialist
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/mwguerra/claude-code-plugins/blob/main/filament-specialist/skills/filament-resource/SKILL.md -a claude-code --skill filament-resourceInstallation paths:
.claude/skills/filament-resource/# FilamentPHP Resource Generation Skill
## Overview
This skill generates complete FilamentPHP v4 resources including form schemas, table configurations, relation managers, and custom pages. All generated code follows official documentation patterns.
## Documentation Reference
**CRITICAL:** Before generating any resource, read:
- `/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/general/03-resources/`
- `/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/forms/`
- `/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/tables/`
## Workflow
### Step 1: Gather Requirements
Identify:
- Model name and namespace
- Fields to include in form
- Columns to display in table
- Relationships to manage
- Custom actions needed
- Authorization requirements
### Step 2: Generate Base Resource
Use Laravel artisan to create the resource:
```bash
# Basic resource
php artisan make:filament-resource ModelName
# With generate flag (creates form/table from model)
php artisan make:filament-resource ModelName --generate
# Soft deletes support
php artisan make:filament-resource ModelName --soft-deletes
# View page only
php artisan make:filament-resource ModelName --view
# Simple resource (modal forms instead of pages)
php artisan make:filament-resource ModelName --simple
```
### Step 3: Customize Form Schema
Read form field documentation and implement:
```php
use Filament\Forms;
use Filament\Forms\Form;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Section::make('Basic Information')
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\Textarea::make('description')
->rows(3)