Arquitectura y puntos de edición
Sigue una pantalla desde App Router hasta el SDK y decide dónde modificarla.
Las vistas del ERP se editan en este repositorio. Algunos comentarios del
README y de archivos antiguos describen un porte desde escritorio; las reglas
actuales de AGENTS.md establecen que la web es el lugar de edición.
Mapa de carpetas
| Carpeta o archivo | Responsabilidad | Cuándo tocarlo |
|---|---|---|
| src/app | Rutas, layouts y handlers Next.js | Cambiar una URL o montaje |
| src/host/screens | Frontera cliente con "use client" | Montar una vista en Next.js |
| src/host/chrome | Shell, sidebar, topbar y menú | Adaptar el marco de la vertical |
| src/host/navigation | Adaptador de navegación | Cambiar el comportamiento del anfitrión |
| src/features/pimia/ui | Pantallas, diálogos y composición | Retoques de presentación y formularios |
| src/features/pimia/hooks | Queries y mutations | Carga, guardado e invalidación |
| src/features/pimia/api | Adaptadores de recursos y transporte | Transformar datos del contrato |
| src/features/pimia/lib | Borradores, validadores y reglas de presentación | Conversión y validación de formularios |
| src/shared/ui | Primitivos shadcn | Cambiar un patrón común a toda la app |
| src/app/globals.css | Tokens y reglas globales | Marca, colores, radios y escala tipográfica |
| src/server | SDK, sesión, scopes y lista de rutas | Cambios de servidor y autorización |
Ejemplo: clientes
src/app/pimia/clientes/page.tsx
→ src/host/screens/PimiaClientScreens.tsx · ClientesScreen
→ src/features/pimia/ui/PimiaCustomersScreen.tsx
→ hooks/usePimiaResources.ts · usePimiaCustomersQuery
→ api del recurso / api/pimiaClient.ts
→ /api/pimia/request
→ SDK del servidor → instancia de PimiaPara cambiar las columnas empieza en PimiaCustomersScreen.tsx. Para modificar
el formulario, sigue PimiaCustomerDialog.tsx y lib/customerDraft.ts. Para
retocar todas las tablas, revisa primero PimiaTablePanel.tsx y los primitivos.
Frontera cliente y servidor
La directiva "use client" pertenece al adaptador de src/host/screens/.
Las vistas de features/pimia/ conservan el dialecto portable y no importan
@/server/*, next/headers, server-only ni @pimia/sdk.
El servidor conserva los tokens; el navegador usa una cookie de sesión opaca. Los handlers del puente validan la superficie admitida. Añadir un botón no autoriza un endpoint ni permite ampliar la lista blanca desde la vista.
Navegación
Las vistas usan useAppNavigation desde @/app/navigation/useAppNavigation.
tsconfig.json resuelve ese alias hacia src/host/navigation/. Utiliza sus
métodos y conserva la codificación de identificadores; evita acoplar una vista
portable directamente a next/navigation.
Marco y proveedores
src/app/pimia/layout.tsx monta PimiaWebShell. src/app/providers.tsx monta
React Query, ThemeProvider, TooltipProvider y Sonner. El QueryClient nace
por montaje para evitar compartir datos de usuarios desde el servidor.