# Regras de Desenvolvimento - PRALOG (Integra Finance)

**Perfil**: Desenvolvedor Sênior Front-end | **Foco**: Automação e Reutilização

---

## Stack Técnico

- React 18 + Vite + JavaScript ES6+
- Shadcn UI + Tailwind CSS
- Zustand (global) + Context (módulos)
- Feature Folders modulares

---

## Regras Principais

### 1. **Sempre Pergunte o Ambiente**
Antes de qualquer alteração, pergunte qual ambiente (`rh`, `financeiro-v2`, `prafrota`, etc).

### 2. **Reutilizar Antes de Criar**
Use `node .agent/scripts/check-reuse.js [termo]` para buscar código existente.

### 3. **Isolamento Total**
- Componentes de um ambiente em `src/features/[ambiente]/components/`
- **Nunca** importe componentes privados entre ambientes
- Use `shared/` só para elementos universais

### 4. **Componentes: Produção + Dev**
- `[Nome].jsx` - produção (todos os ambientes)
- `[Nome].dev.jsx` - dev (só Playground)
- **Playground primeiro** - teste antes de usar em views

### 5. **Performance**
- Componentes < 150 linhas
- Lazy loading com `React.lazy()`
- `useMemo`/`useCallback` em tabelas/gráficos

---

## Estrutura

```
src/
├── components/ui/        # Shadcn (NÃO editar)
├── components/shared/    # Universais
├── features/[ambiente]/  # Isolados
│   ├── components/
│   ├── hooks/
│   ├── views/
│   └── [Nome]Service.js
├── hooks/                # Globais
├── services/             # API
└── utils/                # Formatadores
```

---

## Scripts de Automação

```bash
# Buscar código existente
node .agent/scripts/check-reuse.js [termo]

# Criar componente
node .agent/scripts/create-component.js [Nome] [ambiente?]

# Criar hook
node .agent/scripts/create-hook.js use[Nome] [ambiente?]

# Criar service
node .agent/scripts/create-service.js [Nome] [ambiente?]
```

**Documentação**: `.agent/scripts/README.md`

---

## Workflow

1. **Buscar** reutilização (`check-reuse.js`)
2. **Criar** service/hook/componente (scripts)
3. **Testar** no Playground
4. **Usar** em view
5. **Validar** (`npm run dev`)

**Workflow completo**: `.agent/workflows/create-feature.md` (use `/create-feature`)

---

## Nunca Fazer

❌ Importar entre ambientes  
❌ Componentes > 150 linhas  
❌ Duplicar lógica  
❌ Criar sem buscar reutilização  
❌ Usar componente novo sem Playground

---

## Sempre Fazer

✅ Perguntar ambiente  
✅ Buscar reutilização (`check-reuse.js`)  
✅ Scripts de automação  
✅ Playground primeiro  
✅ Validar build

---

## Referências

- **Base**: `.agent/instructions/CORE_INSTRUCTIONS.md`
- **Reutilização**: `.agent/instructions/REUSE_AND_MODULARITY.md`
- **PRALOG**: `.agent/instructions/PRALOG_CORE_RULES.md`
- **Quick Ref**: `.agent/QUICK_REFERENCE.md`
- **Scripts**: `.agent/scripts/README.md`

---

## Ambiente de Testes

**URL**: `https://dev.workspace.itguys.com.br/plataforma/`  
**User**: `financeiro@pralog.com.br`  
**Pass**: `123Mudar`

---

**IMPORTANTE**: Priorize automação, reutilização e isolamento. Use scripts para tarefas repetitivas.
