🌿

NutriFlow — Análisis de Monorepo

Auditoría de dependencias internas · Turborepo + pnpm workspaces · Generado por Navegador Monorepo

CULTIVA IA
Packages totales
7
3 apps · 4 packages
Herramientas detectadas
2
Turborepo · pnpm workspaces
Ciclos de dependencia
0
Sin ciclos · grafo acíclico
Fases de build
4
Orden topológico calculado
🔗

Grafo de dependencias internas

7 nodes
Apps
@nutriflow/web
@nutriflow/ui @nutriflow/types @nutriflow/api-client @nutriflow/config
@nutriflow/api
@nutriflow/types @nutriflow/config
@nutriflow/dashboard
@nutriflow/ui @nutriflow/types @nutriflow/api-client @nutriflow/config
Packages
@nutriflow/ui
@nutriflow/types @nutriflow/config
@nutriflow/api-client
@nutriflow/types @nutriflow/config
@nutriflow/types
@nutriflow/config
@nutriflow/config
sin dependencias internas
💥

Blast radius — impacto de cambios

crítico
Número de packages afectados (directo + transitivo) al cambiar cada package.
@nutriflow/config
6 / 6 TODOS los packages
@nutriflow/types
5 / 6 ui, api-client, web, api, dashboard
@nutriflow/ui
2 / 6 web, dashboard
@nutriflow/api-client
2 / 6 web, dashboard
@nutriflow/web
0 / 6 app hoja (sin dependientes)
@nutriflow/api
0 / 6 app hoja (sin dependientes)
@nutriflow/dashboard
0 / 6 app hoja (sin dependientes)
📊

Diagrama Mermaid (para CLAUDE.md)

copy-ready
%% NutriFlow — Internal Dependency Graph %% Generated: 2026-06-12 | Herramienta: navegador-monorepo graph TD %% — Apps — WEB["📦 @nutriflow/web
Next.js 14"]
API["📦 @nutriflow/api
Fastify"]
DASH["📦 @nutriflow/dashboard
Vite + React"]
%% — Packages — UI["🎨 @nutriflow/ui
Design System"]
TYPES["🔷 @nutriflow/types
TS Types + Zod"]
CLIENT["🔌 @nutriflow/api-client
SDK"]
CFG["⚙️ @nutriflow/config
ESLint/TS/Prettier"]
%% — Edges — WEB --> UI WEB --> TYPES WEB --> CLIENT API --> TYPES DASH --> UI DASH --> TYPES DASH --> CLIENT UI --> TYPES CLIENT --> TYPES TYPES --> CFG UI --> CFG CLIENT --> CFG
🏗️

Orden de build (topológico)

4 fases
1
Base · sin dependencias internas
@nutriflow/config
2
Tipos · depende solo de config
@nutriflow/types
3
Librerías · dependen de types
@nutriflow/ui @nutriflow/api-client
4
Apps · consumen todo · builds en paralelo
@nutriflow/web @nutriflow/api @nutriflow/dashboard
Tiempo estimado con caché remota
Sin caché: ~4.2 min · Con Turborepo remote cache: ~28 seg (solo packages afectados)

Comandos CI recomendados

GitHub Actions
Builds y tests selectivos para PRs — solo packages afectados por el cambio:
# CI: build solo affected (vs. main) $ turbo run build --filter=...[origin/main] # CI: tests solo affected $ turbo run test --filter=...[origin/main] # Blast radius: qué cambia si modifico @nutriflow/types $ turbo run build --filter=...@nutriflow/types --dry # Solo dashboard (feature branch isolado) $ turbo run dev --filter=@nutriflow/dashboard... # Publish con changesets (coordina versiones) $ pnpm changeset $ pnpm changeset version $ pnpm changeset publish
⚠️

Alertas y recomendaciones

3 hallazgos
🔴
@nutriflow/config tiene blast radius 100%

Cualquier cambio en config (ESLint, TSConfig) invalida toda la caché de Turborepo. Extrae solo los configs que cambian frecuentemente a sub-packages separados.

🟡
@nutriflow/types afecta 5 de 6 packages

Splits recomendados: @nutriflow/types-api y @nutriflow/types-ui para reducir blast radius. Las apps solo importan lo que necesitan.

🔵
CLAUDE.md raíz no documentado

Crear un CLAUDE.md en la raíz mapeando cada package, sus owners y reglas ("No tocar apps/api cuando trabajas en apps/web"). Reduce errores cross-package en sesiones de Claude Code.