Create FilamentPHP v4 actions with modals, confirmation, forms, and bulk operations
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-actions/SKILL.md -a claude-code --skill filament-actionsInstallation paths:
.claude/skills/filament-actions/# FilamentPHP Actions Generation Skill
## Overview
This skill generates FilamentPHP v4 actions for resources, pages, and tables including modal actions, form actions, bulk operations, and custom workflows.
## Documentation Reference
**CRITICAL:** Before generating actions, read:
- `/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/actions/`
## Action Types
### Standard CRUD Actions
```php
use Filament\Actions;
// Create action
Actions\CreateAction::make()
->label('New Post')
->icon('heroicon-o-plus');
// Edit action
Actions\EditAction::make()
->label('Edit')
->icon('heroicon-o-pencil');
// View action
Actions\ViewAction::make()
->label('View Details')
->icon('heroicon-o-eye');
// Delete action
Actions\DeleteAction::make()
->requiresConfirmation()
->modalHeading('Delete post')
->modalDescription('Are you sure you want to delete this post? This action cannot be undone.')
->modalSubmitActionLabel('Yes, delete');
// Force delete (soft deletes)
Actions\ForceDeleteAction::make()
->requiresConfirmation();
// Restore (soft deletes)
Actions\RestoreAction::make();
```
### Custom Actions with Modals
```php
// Simple confirmation action
Actions\Action::make('publish')
->label('Publish')
->icon('heroicon-o-check-circle')
->color('success')
->requiresConfirmation()
->modalHeading('Publish Post')
->modalDescription('Are you sure you want to publish this post?')
->modalSubmitActionLabel('Yes, publish')
->action(function (Model $record): void {
$record->update(['status' => 'published', 'published_at' => now()]);
Notification::make()
->title('Post published')
->success()
->send();
});
// Action with form modal
Actions\Action::make('send_email')
->label('Send Email')
->icon('heroicon-o-envelope')
->color('info')
->form([
Forms\Components\TextInput::make('subjec