9. Exemplo de ADR (000) · versão 2.0.0
005 — Relatório Técnico · Módulo de Tarefas (EXEMPLO)
Redigido pela IA ao finalizar a ADR; o PDF sai de pnpm adr:pdf 000-exemplo-modulo-tarefas.
Resumo da entrega
Domínio tasks entregue com criar, listar, concluir e arquivar, filtro por situação, contrato
OpenAPI e escopo do dono em toda consulta.
Commits
| Hash | Mensagem |
|---|---|
a1b2c3d | feat(tasks): model Task e migration |
d4e5f6a | test(tasks): contrato e testes da rota |
b7c8d9e | feat(tasks): rotas com Zod e escopo do dono |
f0a1b2c | feat(tasks): store e tela de lista com filtro (rodapé: Tarefa: EXT-8, ADR: 000) |
c3d4e5f | test(tasks): smoke do domínio |
e6f7a8b | adr/docs: fecha a ADR 000 (005, 006 e PDFs) |
Tarefas no Gestor
Copiadas do Gestor no fechamento.
| Tarefa | Título | Papel |
|---|---|---|
EXT-7 | Módulo de tarefas da equipe | implementa |
EXT-8 | Filtro por situação na lista | implementa |
Testes automatizados criados
app/api/tasks/route.test.ts— lista filtrada, criação, conclusão, arquivamento e a tarefa de outra pessoa respondendo 404 (Vitest, contra o contrato).
Smoke tests
smoke/tasks.smoke.ts— cria, lista com?status=open, conclui e arquiva contra o app rodando. Pronto para rodar compnpm smoke.
Arquivos tocados (e por quê)
| Arquivo | Por quê |
|---|---|
prisma/models/tasks.prisma | Model Task + enum de situação |
app/server/tasks/schemas.ts | Schemas Zod de entrada e saída (fonte do OpenAPI) |
app/server/openapi/domains/tasks.ts | O domínio no contrato |
app/api/tasks/route.ts, app/api/tasks/[id]/route.ts | As rotas |
stores/tasks/store.ts + sync.tsx | Estado do frontend |
app/tarefas/page.tsx | Tela de lista com filtro |
Bibliotecas
Nenhuma nova: o domínio usa só a stack universal que o projeto já tinha (Prisma, Zod, OpenAPI, Zustand e Vitest).
Decisões
- Exclusão por arquivamento lógico (
archivedAt), como decidido na P1 do 003. - Escopo do dono no
wherede toda consulta (P4); a tarefa de outra pessoa responde 404. - Nenhum desvio do plano.
Validações
pnpm lint ✅ · pnpm typecheck ✅ · pnpm test ✅ · pnpm build ✅ · pnpm smoke ✅