一键导入
filament-expert
Motor de regras arquiteturais para projetos Filament PHP v3+ — anti-patterns e mandatos técnicos derivados de bugs reais
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Motor de regras arquiteturais para projetos Filament PHP v3+ — anti-patterns e mandatos técnicos derivados de bugs reais
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | filament-expert |
| description | Motor de regras arquiteturais para projetos Filament PHP v3+ — anti-patterns e mandatos técnicos derivados de bugs reais |
| triggers | ["filament","filament-expert","admin panel","filament resource"] |
| globs | ["**/*.php"] |
Esta skill complementa o agente
filament/. O agente define o modo de operação. Esta skill define o que é proibido e o que é obrigatório.
OBRIGATÓRIO para qualquer projeto Filament v3+ quando:
Proibido:
window.confirm() em código Filament/Livewireonclick JS direto em elementos de açãoObrigatório:
HasActions + trait InteractsWithActions em Pages customizadasgetActions() ou traitMotivo: Estado do modal gerenciado pelo servidor (Livewire) permite validações complexas impossíveis com JS puro. O window.confirm é anti-padrão em aplicações Livewire modernas.
Referência: Filament Docs > Actions > Custom Pages
Proibido:
$this->getPreviousUrl() em botões de retorno customizadosObrigatório:
url()->previous() (helper Laravel nativo)Motivo: getPreviousUrl() falha em deep links e navegações diretas. Gera BadMethodCallException e navegação para null em contextos específicos.
Referência: Laravel Docs > URL Generation > previous()
Proibido:
Split e Stack na raiz de tabelas horizontais (layout desktop)Obrigatório:
Split/Stack apenas dentro de transformações Mobile-First (->visibleFrom('md') ou similar)table-layout: auto para visualização desktopMotivo: Componentes de Layout na raiz de tabelas corrompe table-layout: auto e quebra visualização desktop legível.
Referência: Filament Docs > Tables > Layout
| Pattern | Problema | Solução |
|---|---|---|
window.confirm('Tem certeza?') | Bloqueio JS síncrono, não valida no servidor | Usar Action com modal de confirmação Filament |
$this->getPreviousUrl() | Falha em deep links | url()->previous() |
Split na raiz de table | Quebra layout desktop | Usar só em visibleFrom('md') |
Stack como column | Componente de layout usado como dado | Remover da definição de columns |
Preferido: Tradução via Enums com HasLabel interface
enum Status: string
{
use HasLabel;
case ACTIVE = 'active';
case INACTIVE = 'inactive';
public function getLabel(): string
{
return match($this) {
self::ACTIVE => 'Ativo',
self::INACTIVE => 'Inativo',
};
}
}
Evitar: Arrays de tradução dispersos em múltiplos arquivos JSON para enums.
Antes de任何 código Filament ser commitado, verificar:
window.confirm() encontrado em arquivos Filament$this->getPreviousUrl() encontradoSplit/Stack só aparecem com visibleFrom() ou similarHasActions ou InteractsWithActionsurl()->previous() para botões de voltar customizadosExplorar ideias antes de criar plano formal
Revisão de código antes de merge
Documentar aprendizados para evitar recorrência
Validação de schema/enums/tipos antes de implementar código de domínio
Checklist obrigatório antes de qualquer commit
Validar estrutura de banco antes de operações de dados