Pular para o conteúdo

9. Exemplo de ADR (000) · versão 2.0.0

005 — Relatório Técnico · Módulo de Tarefas (EXEMPLO)

manifesto/04-templates/000-exemplo-modulo-tarefas/005-relatorio-tecnico.md

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

HashMensagem
a1b2c3dfeat(tasks): model Task e migration
d4e5f6atest(tasks): contrato e testes da rota
b7c8d9efeat(tasks): rotas com Zod e escopo do dono
f0a1b2cfeat(tasks): store e tela de lista com filtro (rodapé: Tarefa: EXT-8, ADR: 000)
c3d4e5ftest(tasks): smoke do domínio
e6f7a8badr/docs: fecha a ADR 000 (005, 006 e PDFs)

Tarefas no Gestor

Copiadas do Gestor no fechamento.

TarefaTítuloPapel
EXT-7Módulo de tarefas da equipeimplementa
EXT-8Filtro por situação na listaimplementa

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 com pnpm smoke.

Arquivos tocados (e por quê)

ArquivoPor quê
prisma/models/tasks.prismaModel Task + enum de situação
app/server/tasks/schemas.tsSchemas Zod de entrada e saída (fonte do OpenAPI)
app/server/openapi/domains/tasks.tsO domínio no contrato
app/api/tasks/route.ts, app/api/tasks/[id]/route.tsAs rotas
stores/tasks/store.ts + sync.tsxEstado do frontend
app/tarefas/page.tsxTela 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 where de 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 ✅