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 |
Docs em docs/, specs em specs/ | Português (pt-BR) |
| Comentários | PT ou EN quando ajudar clareza |
Monorepo
- Package manager: pnpm (workspaces)
- Rodar por app:
pnpm --filter @framework/service … - Config Prettier na raiz; ESLint por app
Estrutura (service)
apps/service/src/modules/<domain>/
├── *.controller.ts
├── *.service.ts
├── *.module.ts
└── dto/
Novos domínios seguem padrão existente em apps/service/src/modules/*.
Estrutura (app)
apps/app/src/features/<feature>/
├── components/
├── hooks/
├── api/
└── routes/
Feature-based; rotas TanStack Router em routes/.
Commits e entrega
Fluxo sem Pull Requests — alterações vão em commit direto na branch de trabalho (main, develop ou feature branch com merge local).
- Escopo mínimo alinhado à spec/task
- Mensagem Conventional Commits (ver abaixo em framework-basics)
- Sem secrets,
.env, credenciais - Hooks pre-commit (husky) devem passar
- Antes de push: lint + build nos apps afetados (ver 06-testing-quality)
Nomenclatura
- Componentes React: PascalCase
- Hooks:
use*camelCase - API paths: kebab-case ou REST plural
- Test IDs: inglês, estável (
data-testid)
Identidade e tema (@framework/brand)
- Nome, domínios, logos, cores, metadata e tokens de tema: sempre via
@framework/brand— ver 10-brand-kit - Proibido hardcode de hex da paleta, domínios de produção e nome do produto fora do pacote (exceto docs de marketing e exemplos Swagger pós-rebrand via
brand-data.json)
O que evitar
- Refactor adjacente fora do escopo da task
- Abstrações de uma linha
- Lógica de negócio crítica só no client
Links relacionados
- 03-spec-implementation-flow
- 10-brand-kit
- 06-testing-quality
.specify/memory/constitution.md