docs: detalha padrões de mobile-first e estratégia de testes

This commit is contained in:
GoHorse Deploy 2026-03-07 17:36:49 -03:00
parent 0230a26302
commit 1a527add23
2 changed files with 31 additions and 0 deletions

15
AGENT.md Normal file
View file

@ -0,0 +1,15 @@
# GoHorseJobs - AI Engineering Standards
## 📱 Mobile-First Obsession (Frontend)
1. **Padrão de Layout**: Todas as páginas devem ser desenvolvidas para mobile (`width < 640px`) primeiro.
2. **Componentes**: Use o design system já definido. É proibido duplicar componentes de "Card de Vaga".
3. **Imagens**: Sempre use o componente `next/image` com `sizes` definido para evitar layouts que "pulam".
## 🧪 Estratégia de Testes
1. **Scraper (Python/Playwright)**: Cada novo site de vagas deve ter um teste de "extração simulada" para garantir que o seletor CSS ainda funciona.
2. **E2E (Playwright)**: Fluxos críticos (Candidatar-se a vaga, Login de Empresa) devem ser testados via Playwright E2E na VPS.
3. **Integration**: Testar a persistência do banco via Postgres diretamente.
## 🛠️ Regras de Código (Go)
- Use **Context** em todas as chamadas de banco e serviços externos.
- Erros devem ser "embrulhados" com contexto: `fmt.Errorf("falha ao salvar vaga: %w", err)`.

16
DOMAIN.md Normal file
View file

@ -0,0 +1,16 @@
# GoHorseJobs - Regras de Domínio
## 📄 Ciclo de Vida da Vaga (Job)
1. **Posted**: Vaga criada pela empresa.
2. **Featured**: Vaga paga para destaque no topo da lista.
3. **Expired**: Vagas caducam após 30 dias automaticamente.
4. **Closed**: Encerrada manualmente pelo RH.
## 👥 Candidatos e Aplicações
- **Resume**: Suporte a upload de PDF no S3/Civo Object Storage.
- **Application**: Um candidato só pode se aplicar 1 vez por vaga.
- **Answers**: Perguntas customizadas por vaga devem ser validadas no momento da aplicação.
## 🕷️ Motor de Scraping
- As vagas coletadas de outros sites (multisite) devem ter o campo `source_url` preenchido.
- Vagas duplicadas devem ser ignoradas via hash do conteúdo + título.