| name | novo-dominio |
| description | Cria a estrutura completa de um módulo de domínio no backend — fronteira pública, regras de negócio, acesso a dados — no padrão modular do projeto. Use ao introduzir um novo domínio D16–D20 ou ao extrair um domínio existente do código atual. |
Procedimento
- Confirmar o domínio no catálogo:
docs/catalogo-dominios.md. Se for novo, registrar ADR em docs/decisoes-arquitetura/.
- Criar o schema PostgreSQL com o nome do domínio (ex.:
CREATE SCHEMA execucao).
- Estruturar o módulo em
services/backend/<dominio>/ com o esqueleto:
services/backend/d16-execucao/
├── index.ts ← fronteira pública (exports)
├── regras.ts ← regras de negócio (funções puras quando possível)
├── repositorio.ts ← acesso a dados (única camada que toca SQL/Prisma)
├── eventos.ts ← publicação de eventos do domínio
└── *.test.ts ← testes de unidade colados aos arquivos
- Definir a fronteira pública: outros módulos só conversam pelo
index.ts ou por eventos — nunca alcançando tabelas do domínio diretamente.
- Tabelas principais: aplicar a skill
nova-tabela para cada uma listada em docs/catalogo-dominios.md.
- Endpoints: aplicar a skill
novo-endpoint para cada operação. Atualizar services/api/openapi.yaml.
- Políticas RLS: aplicar a skill
politica-rls para cada tabela com dado territorial ou pessoal.
- Testes de integração cobrindo o caminho completo: validação → RBAC → RLS → persistência → resposta.
- Revisão por
revisor-seguranca e — se houver dado pessoal — revisor-lgpd.
- Conferir contra a Definition of Done (
docs/checklist-prontidao.md).
Regras inegociáveis
- Toda tabela do domínio segue as convenções da regra
banco.md (chave dupla, carimbos, territorialização).
- Todo endpoint do domínio segue a regra
api.md (envelope, erro, paginação, RBAC).
- Domínios novos (D16–D20) entram em migração F0 de fundação antes de qualquer endpoint.
- Mapeamento eixo 25.2 → domínio (capítulo 33) é parte da decisão de criação: domínio sem rastreio a eixo é candidato a escopo indevido.
Saída
PR único contendo: schema novo, migrações versionadas, módulo backend, endpoints documentados em OpenAPI, testes de integração, ADR registrando a criação. Nada de implantação sem aprovação humana.