004 — Tasks · Stack da Aplicação: OpenAPI, Estado, UI e Testes
004 — Tasks · Stack da Aplicação: OpenAPI, Estado, UI e Testes
Seção intitulada “004 — Tasks · Stack da Aplicação: OpenAPI, Estado, UI e Testes”Execução viva. Status: todo / doing / done / blocked.
Tarefas
Seção intitulada “Tarefas”| # | Tarefa | Status |
|---|---|---|
| 1 | OpenAPI (Zod 4 nativo): document, domains, schemas, rotas | done |
| 2 | Tipos gerados (pnpm openapi) + cliente openapi-fetch | done |
| 3 | Zustand: store tasks + sync + página demo | done |
| 4 | shadcn/ui completo em packages/ui + Sonner no layout | done |
| 5 | Vitest + teste de contrato | done |
| 6 | Prisma + Docker + seed + scripts db:* | done |
Bibliotecas instaladas (nome · versão · porquê)
Seção intitulada “Bibliotecas instaladas (nome · versão · porquê)”Runtime (apps/web)
zustand^5.0.14 — estado do frontend (core inegociável do manifesto).zod^4.4.3 — validação + fonte única do contrato OpenAPI.@scalar/nextjs-api-reference^0.11.6 — UI de testes da API em/reference.openapi-fetch^0.17.0 — cliente HTTP tipado a partir do spec.sonner^2.0.7 — notificações (toasts).@prisma/client^7.8.0 — ORM (PostgreSQL), com@prisma/adapter-pg^7.8.0 (driver adapter).
Dev (apps/web)
openapi-typescript^7.13.0 — geralib/shared/api-types.tsdo spec.vitest^4.1.9,@testing-library/react^16,@testing-library/jest-dom^6,jsdom,@vitejs/plugin-react— testes.prisma^7.8.0 — CLI do ORM.dotenv— carrega.envno seed/config.tsx^4.22.4 — roda o script de geração de tipos do OpenAPI.
packages/ui — todos os componentes shadcn/ui (radix-ui, recharts, cmdk, vaul, sonner,
embla-carousel, react-day-picker, input-otp, react-resizable-panels) adicionados via shadcn add.
Decisões e contradições em execução
Seção intitulada “Decisões e contradições em execução”- Prisma 7 + schema multi-domínio.
prisma.config.tsdefineschema: "prisma"(pasta) edatasource.url; os modelos vivem emprisma/models/{tasks,users}.prisma; o client (novo generatorprisma-client) é gerado emgenerated/prismae instanciado com@prisma/adapter-pgemlib/server/db.ts.postinstall: prisma generatedeixa o client pronto após o install. - Relação entre domínios validada (User 1—N Task) com banco real em Docker.
toastimportado desonnerdiretamente:sonneradicionado às deps dowebpara otoastficar tipado.- Hook
use-mobiledo shadcn sidebar movido parapackages/ui/src/hooks/(o componente o importa de@workspace/ui/hooks/use-mobile). - Script de tipos do OpenAPI rodado via
tsx(não via--loader, deprecado no Node 22).
Estratégia da IA
Seção intitulada “Estratégia da IA”- Agentes exploradores em paralelo para mapear o padrão de OpenAPI dos projetos de referência antes de construir.
- Validação contínua:
tsc --noEmit(ok),vitest run(4/4),next build(ok),pnpm openapi.
Criado por Joseph Trupel