Evoluir ou refatorar o monorepo Registra AI (portais customer, supplier e backoffice) com arquitetura modular por app, extraindo reuso para packages/ui e packages/shared, preservando padrões React + Vite + TypeScript + React Router + TanStack Query + Zod + shadcn/ui. Usar quando criar features, ajustar rotas/layout/provedores, padronizar dashboard compartilhado, reduzir duplicação entre portais, integrar API real com contratos tipados, ou revisar qualidade arquitetural do frontend.
Padronizar a evolução dos três portais com foco em:
references/architecture-map.mdreferences/dashboard-shared-playbook.mdreferences/layout-enterprise-playbook.mdreferences/layout-review-checklist.mdreferences/delivery-checklist.mdpackages/ui.packages/shared.app/, features/, widgets/, shared/.app/.src/app/router.tsx (preferir lazy por rota).features/<feature>/pages.features/<feature>/components.features/<feature>/api e features/<feature>/hooks quando houver estado assíncrono ou lógica de orquestração.features/<feature>/core para código puro da feature, como normalizers, adapters e selectors.features/<feature>/utils para helpers locais de apresentação, evitando utilitários genéricos espalhados pela página.pnpm typecheck.pnpm build para apps impactadas.AGENTS.md em mudança estrutural.agents/openai.yaml da skill quando o escopo da skill mudar.packages/ui/src/dashboard/portal-app-shell.tsxpackages/ui/src/dashboard/*packages/shared/src/dashboard/dashboard-schema.ts (ou módulo de domínio equivalente)packages/shared/src/registration/* para schemas, tipos e mocksapps/portal-backoffice/src/features/registration-core/* para presenters, sidebar contextual e componentes reutilizados entre features locaispackages/shared/src/<dominio>/*-mock-api.tsapps/<portal>/src/app/layouts/protected-layout.tsxpackages/*.app/providers.any.features/<feature>/pages.features/<feature>/components.features/<feature>/api, hooks, core e utils conforme a complexidade real da feature.core.router.tsx.ProtectedLayout se necessário.packages/ui.packages/ui/src/index.ts.ProtectedLayout/DashboardPage.apps/*.http://localhost:3000/docs/.packages/shared.references/layout-enterprise-playbook.md.packages/ui quando houver reuso.ProtectedLayout, sem acoplar regra de feature no shell.references/layout-review-checklist.md.any introduzido.