2.0 KiB
2.0 KiB
SKILL: Architecture Rules (.agent/skills/architecture-rules)
📌 Objetivo
Garantir que a evolução do PlatformSistemas mantenha o isolamento total entre os módulos e siga o padrão "Zero-Boilerplate" para conexões com o backend.
🏗️ Regras de Escopo de Componentes
1. Libs/Shared (src/components/shared)
- Definição: Apenas componentes Puros e Burros (Stateless ou State-local).
- Proibido: Lógica de negócio, chamadas ao
api.jsou dependência de contextos específicos de feature (ex:useVehicles). - Exemplos:
Button.jsx,ModalBase.jsx,Input.jsx,LoadingOverlay.jsx.
2. Feature-Specific (src/features/[feature]/components)
- Definição: Componentes que possuem lógica de negócio ou dependem de hooks da própria feature.
- Obrigatório: Devem viver dentro da pasta da feature correspondente.
- Exemplos:
VehicleCard.jsx(Prafrot),AttendanceFormModal.jsx(Prafrot),TripDetailsModal.jsx(Prafrot).
🔌 Regra "Zero-Boilerplate" (API Contract)
- JAMAIS crie arquivos
*Service.jspara novas funcionalidades. - Sempre Use o hook
useApiContract.jsem conjunto com o arquivo de configuração JSON correspondente (ex:prafrotRoutes.json). - TanStack Query: Use os poderes de cache e invalidação automática providos pelo re-query através do hook central.
🛡️ Muralha de Isolamento
- Tokens Modulares: Sempre injete o token correspondente ao módulo via
getTokenForModule(environment). - Anti-Colisão: Antes de alterar um componente em
shared, verifique se a mudança afeta o layout de outros módulos (RH, GR, Financeiro). Use variantes em vez de condicionais de negócio. - Tailwind v4: Siga o padrão de camadas (
@layer components) noindex.csspara evitar conflitos de utilitários customizados.
⚠️ Enforcement (Falha Crítica se Violado)
Qualquer tentativa de injetar lógica de "Prafrot" em um componente usado pelo "RH" sem o uso de variantes isoladas será considerada regressão técnica.