Docs

02 — Convenções de código

Idioma

ContextoIdioma
Código, testes, commitsInglês
UI, mensagens de produto, APIs públicasInglês
Comentários em códigoInglês
Tudo em docs/*Português (pt-BR) — sempre
ChatPT 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, .env ou 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

Links relacionados