TenantAtlas/.agent/skills/workflows/filament-livewire-v5-change-loop/SKILL.md
ahmido 332f6325cb feat: add tenantpilot agent skill layer v1 (#483)
Automated PR provided by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #483
2026-06-25 23:03:47 +00:00

105 lines
4.3 KiB
Markdown

---
name: tenantpilot-filament-livewire-v5-change-loop
description: Checklist gate for Laravel 12, Filament v5, Livewire v4, and TenantPilot Filament safety changes.
---
## Purpose
Use this skill to keep Filament and Livewire changes aligned with TenantPilot's Laravel 12, Filament v5, Livewire v4, RBAC, Product Surface, and testing contracts.
## Activate When
- Touching Filament resources, pages, widgets, relation managers, actions, tables, forms, infolists, navigation, panels, providers, render hooks, assets, global search, or Livewire components.
- Adding or changing destructive/high-impact Filament actions.
- Writing or reviewing Filament/Livewire tests.
## Do Not Activate When
- No Filament, Livewire, panel, route, navigation, action, table, form, UI, or asset behavior changes.
- The active spec explicitly forbids runtime UI changes and only creates docs/tooling artifacts.
## Maturity
L3 checklist.
## Gate Type
checklist.
## Source Evidence
- `AGENTS.md`
- `docs/filament-guidelines.md`
- `docs/research/filament-v5-notes.md`
- `docs/ui/tenantpilot-enterprise-ui-standards.md`
- `docs/product/standards/product-surface-contract.md`
- `docs/testing-guidelines.md`
- `apps/platform/bootstrap/providers.php`
- `apps/platform/app/Providers/Filament/AdminPanelProvider.php`
- `apps/platform/app/Providers/Filament/SystemPanelProvider.php`
- `apps/platform/app/Support/Rbac/UiEnforcement.php`
- `apps/platform/app/Support/Rbac/WorkspaceUiEnforcement.php`
## External Anchors
- Filament v5 official docs cited in `docs/research/filament-v5-notes.md`.
## Required Repo Context
- Installed versions: Laravel 12, Filament v5, Livewire v4.
- Panel provider registration.
- Resource/page/global search posture.
- Action surface and Product Surface classifications.
- Existing tests for the affected page/resource/widget/action.
- Asset registration and deploy implications.
## Execution Checklist
- Confirm Livewire v4.0+ compliance and no Livewire v3 APIs.
- Register panel providers only in `apps/platform/bootstrap/providers.php` for Laravel 11+/12.
- Do not change panel `path()` without route conflict review.
- For global search, ensure safe View/Edit page and `$recordTitleAttribute`, or disable it.
- Eager-load relationship-backed global search details.
- Use native Filament components and shared primitives before custom Blade/Tailwind.
- Use `UiEnforcement` or `WorkspaceUiEnforcement` for capability-aware actions.
- Use `->action(...)` and `->requiresConfirmation()` for destructive/high-impact actions.
- Keep business behavior in services/jobs/policies, not long Filament closures.
- Test pages/relation managers/widgets as Livewire components and actions through Filament action helpers.
- Record asset strategy and whether `filament:assets` is required.
## Stop Conditions
- Livewire v3 or Filament v3/v4 APIs are introduced.
- Panel provider registration is moved to `bootstrap/app.php`.
- Destructive/high-impact action lacks confirmation, server-side authorization, or audit/test coverage.
- Global search is enabled without safe scoped View/Edit posture.
- UI visibility is treated as authorization.
- Graph/provider calls happen during render.
- Custom markup replaces native Filament/shared primitives without an approved Product Surface/UI-FIL exception.
## Required Evidence After Use
- Livewire v4 compliance statement.
- Provider registration location statement.
- Global search posture for changed resources.
- Destructive/high-impact action safety summary.
- Asset strategy and deployment note.
- Tests added/updated and run, or no-runtime/UI rationale.
- Browser proof when rendered UI/user flow changes.
## Common Failure Modes
- Mounting non-Livewire resource classes in Livewire tests.
- Assuming URL actions have confirmation modal behavior.
- Adding page-local badges/status colors instead of `BadgeCatalog`/shared primitives.
- Publishing Filament internals for small layout tweaks.
- Registering heavy assets globally when on-demand loading fits.
## Quarantined Rules
Full Spec 416 quarantine list applies. Especially quarantined here: Product Surface runtime framework; raw provider/evidence payload default display; stale provider Healthy/Ready semantics; historical audits as current truth.
## Review / Expiry
Review when Filament, Livewire, Laravel panel structure, or TenantPilot Filament standards change. No planned expiry.