testes/.agent/skills/component-scoping/SKILL.md

1.5 KiB

🏗️ Skill: Component Scoper (PlatformSistemas)

🎯 Objetivo

Manter a arquitetura limpa e modular, separando componentes puramente reutilizáveis (Shared) de componentes com lógica de negócio (Features).


🏛️ Estrutura de Pastas

🟢 src/components/shared/ (The Library)

  • O que reside aqui: Botões, Tabelas genéricas, Modais, Inputs sem marca, Datetime pickers, Breadcrumbs.
  • Regra: Devem ser funcionais apenas com Props. Não podem importar nada de src/features/.
  • Exemplo: DataTable.jsx, Modal.jsx.

📦 src/features/[feature]/components/ (The Business)

  • O que reside aqui: Menus laterais, Dashboards, Formulários específicos (ex: VehicleForm), Filtros complexos vinculados a uma entidade.
  • Regra: Podem conter lógica de negócio e usar o hook useApiContract.
  • Exemplo: PrafrotSidebar.jsx, TripRequestForm.jsx.

🚦 Regras de Enforcement

PROIBIDO

  • Criar componentes específicos de negócio dentro de src/components/shared/.
  • Componentes em shared/ importarem hooks ou serviços de features/.
  • Cruzamento de imports entre features (ex: features/rh importando de features/fleet).

OBRIGATÓRIO

  • Usar a pasta shared apenas para componentes que seriam úteis em um projeto totalmente diferente.
  • Se um componente é compartilhado entre APENAS duas features, ele ainda deve morar em shared se for genérico, ou ser duplicado/refatorado se for de negócio.