Docs
Identidade e tema (
02 — Convenções de código
Idioma
| Contexto | Idioma |
|---|---|
| Código, testes, commits | Inglês |
| UI, mensagens de produto, APIs públicas | Inglês |
| Comentários em código | Inglês |
Tudo em docs/* | Português (pt-BR) — sempre |
| Chat | PT ou EN quando ajudar clareza |
Monorepo
- Gerenciador de pacotes: pnpm (workspaces)
- Executar por app:
pnpm --filter @vectorgen/service … - Config Prettier na raiz do repositório; ESLint por app
Estrutura (service)
apps/service/src/modules/<domain>/
├── *.controller.ts
├── *.service.ts
├── *.module.ts
└── dto/
Novos domínios seguem o padrão existente em apps/service/src/modules/*.
Estrutura (app)
apps/app/src/features/<feature>/
├── components/
├── hooks/
├── api/
└── routes/
Organização por feature; rotas TanStack Router ficam em routes/.
Commits e entrega
Sem Pull Requests — alterações vão como commits direto na branch de trabalho (master).
- Escopo mínimo alinhado à spec/tarefa
- Mensagem Conventional Commits (veja framework-basics)
- Sem secrets,
.envou credenciais - Hooks pre-commit (husky) devem passar
- Antes do push: lint + build nos apps afetados (veja 06-testing-quality)
Nomenclatura
- Componentes React: PascalCase
- Hooks:
use*camelCase - Caminhos de API: kebab-case ou REST no plural
- Test IDs: inglês, estáveis (
data-testid)
Identidade e tema (@vectorgen/brand)
- Nome, domínios, logos, cores, metadata e tokens de tema: sempre via
@vectorgen/brand— veja 10-brand-kit - Não hardcodar hex de paleta, domínios de produção ou nome do produto fora do pacote (exceto docs de marketing e exemplos Swagger após rebrand via
brand-data.json)
O que evitar
- Refactors adjacentes fora do escopo da tarefa
- Abstrações de uma linha
- Lógica crítica de negócio apenas no client