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

32 lines
1.5 KiB
Markdown

# 🏗️ 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.