---
description: Workflow completo para criar nova feature
---

# Workflow: Criar Nova Feature

Processo completo para desenvolver uma nova funcionalidade seguindo padrões do projeto.

---

## Pré-requisitos

1. Identificar o **ambiente** (rh, financeiro-v2, prafrota, etc)
2. Definir nome da feature
3. Listar componentes/hooks/services necessários

---

## Etapas

### 1. Análise de Reutilização

**Antes de criar qualquer código**, verificar o que já existe:

```bash
# Buscar componentes similares
node .agent/scripts/check-reuse.js [termo-relacionado]
```

**Pergunte**:
- Posso reutilizar componentes existentes?
- Posso estender hooks atuais?
- Services similares já existem?

---

### 2. Criar Service (se necessário)

```bash
node .agent/scripts/create-service.js [nomeService] [ambiente]
```

**Ajustar**:
1. Endpoints da API
2. Mapeamento de dados (adapters)
3. Tratamento de erros

---

### 3. Criar Hook (se necessário)

```bash
node .agent/scripts/create-hook.js use[NomeHook] [ambiente]
```

**Implementar**:
1. Lógica de negócio
2. Integração com service
3. Estados (loading, error, data)

---

### 4. Criar Componentes

```bash
# Para cada componente necessário
node .agent/scripts/create-component.js [NomeComponente] [ambiente]
```

**Ordem recomendada**:
1. Componentes básicos (Cards, Forms)
2. Componentes compostos (que usam os básicos)
3. View principal

---

### 5. Testar no Playground

**OBRIGATÓRIO antes de usar em produção**:

1. Cadastrar componentes em `PlaygroundView.jsx`
2. Adicionar variantes Dev com controles
3. Testar estados: loading, error, success
4. Validar responsividade

---

### 6. Criar View

**Estrutura**:
```
src/features/[ambiente]/views/
└── [FeatureName]View.jsx
```

**Implementar**:
1. Importar componentes do Playground
2. Usar hooks criados
3. Layout e estrutura
4. Validar isolamento (não importar de outros ambientes)

---

### 7. Validação

// turbo-all

```bash
# Build sem erros
npm run dev

# Verificar console (sem warnings)
# Abrir no navegador: http://localhost:5173

# Testar fluxos:
# - Happy path (uso normal)
# - Error path (API offline, campos vazios)
```

---

### 8. Documentação

Atualizar documentação relevante:
- README do ambiente (se houver)
- Comentários JSDoc nos arquivos
- Adicionar exemplos no Playground

---

## Checklist Final

- [ ] Reutilização verificada com `check-reuse.js`
- [ ] Service criado e testado
- [ ] Hook implementado com error handling
- [ ] Componentes < 150 linhas cada
- [ ] Todos os componentes testados no Playground
- [ ] View usando apenas componentes validados
- [ ] Build roda sem erros
- [ ] Sem warnings no console
- [ ] Responsividade validada
- [ ] Documentação atualizada

---

## Exemplo Completo: Feature "Folha de Pagamento"

```bash
# 1. Verificar reutilização
node .agent/scripts/check-reuse.js payroll

# 2. Criar service
node .agent/scripts/create-service.js payrollService rh

# 3. Criar hook
node .agent/scripts/create-hook.js usePayroll rh

# 4. Criar componentes
node .agent/scripts/create-component.js PayrollCard rh
node .agent/scripts/create-component.js PayrollForm rh
node .agent/scripts/create-component.js PayrollTable rh

# 5. Cadastrar no Playground e testar

# 6. Criar view: src/features/rh/views/PayrollView.jsx

# 7. Validar
npm run dev
```

---

**IMPORTANTE**: Nunca pular a etapa de Playground! Todo componente deve ser validado antes de usar em produção.
