Sprint de qualidade: monorepo, PWA offline e 15 workspaces em paralelo
Conversão para monorepo pnpm, migração de Supabase para Drizzle + Postgres, sprint de qualidade no frontend (Biome, Sonner, date-fns, Dexie offline), e blog post bilíngue sobre Git.
Dia mais intenso das últimas semanas num projeto cliente (NDA). Quinze workspaces rodando em paralelo no mesmo repositório, cada um atacando uma frente diferente. 68 sessões de agentes, mais de 30 commits únicos.
Projeto cliente (NDA)
Decisão arquitetural e monorepo
Antes de qualquer código, comparei as duas versões do projeto que coexistiam e decidi que fazia mais sentido refatorar o codebase existente (já parcialmente funcional) do que recomeçar do zero.
A conversão para monorepo pnpm foi o eixo central.
Frontend deploya na Vercel, backend (Fastify) vai para o Railway, Postgres roda lá também.
O Capacitor saiu, junto com toda a dependência do Supabase: o ORM agora é Drizzle, conectando direto no Postgres.
No backend, revisei a estrutura contra os guides oficiais do Fastify, refiz o setup de banco com uma migration limpa, Docker Compose para Postgres local, e criado_em, atualizado_em, deletado_em em todas as tabelas.
Sprint de qualidade no frontend
O volume de cleanup no frontend foi o destaque real do dia. Vários workspaces atacaram em paralelo:
- Linting e tooling: Biome configurado (escopado só para
apps/, sem rodar em.claudeou.agents), Zod para validação, Husky + git hooks + convenções de commit. - Componentes e UI: shadcn/ui configurado corretamente com Vite + React. Tailwind reorganizado, dark mode hardcoded espalhado pelo código foi removido e centralizado no sistema de tema. Ícones reorganizados em
components/icons/, cada um no seu arquivo. - Bibliotecas: Sonner substituiu o sistema de toast antigo.
date-fnscentralizou todo tratamento de datas (tanto no frontend quanto no backend).react-haikuentrou para substituir hooks utilitários escritos à mão. TanStack Query como fundação de estado servidor. Recharts para os gráficos do dashboard. - Organização: testes movidos para pastas
__tests__dedicadas. Utilitários compartilhados (formatadores, hookuseIsIOS) extraídos parashared/.dist/edev-dist/removidos do repositório e adicionados ao.gitignore.
PWA offline e features
Os padrões offline com Dexie foram documentados e a sessão estendida para sete dias. Entrou uma feature de lembretes para rascunhos inativos.
Agent skills e DevEx
Configurei skills de projeto para que qualquer agente (Claude, Codex) que abrir o repo já tenha contexto: typescript-magician, vercel-react-best-practices, e uma nova skill domain-enums para reforçar o uso de enums tipados ao invés de strings mágicas.
O Conductor foi configurado para propagar .env de subdiretórios para novos workspaces.
Documentação e requisitos
Novas regras de construção de UI para o design system. PRDs atualizados com contexto visual das telas reais. Schema refinado (campos de data em tabelas de preços). Numeração de OS escopada por fazenda entrou via PR.
Um workspace preparou a pauta de uma reunião de requisitos: multi-tenancy por fazenda, estrutura de preços, gestão relacional entre proprietários, fazendas e pistas. Estimativa de timeline para a implementação completa também ficou pronta.
tgmarinho-ai-website
Publiquei um blog post bilíngue (pt-BR + en) ensinando Git e GitHub para iniciantes, focando no fluxo de primeiro Pull Request. Direto ao ponto, sem enrolação, agnóstico a papel ou nível de experiência. Também fechei o PR com as entradas de journal da semana.
Um dia onde a orquestração de muitos agentes em paralelo mostrou seu valor: cada workspace focou numa fatia estreita do problema, e no final do dia o projeto tinha fundação, tooling e padrões de qualidade no lugar.