ADR-002 — Package manager (monorepo)

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-002-package-manager.md

ADR-002: Package manager (monorepo)

Estado

Accepted — 2026-08-23

Contexto

Monorepo TypeScript: apps/api, apps/web, packages compartidos (tipos, UI, api-contract). Hace falta workspaces estrictos y lockfile único. Misma elección que IVPrior.

Decisión

pnpm como package manager. Turborepo para orquestar scripts (dev, lint, test, build).

Fachada humana/agente: Makefile (ADR-016). Los targets make install|check|local-up invocarán pnpm/turbo; no se inventan CLIs paralelas.

Alternativas

OpciónNota
pnpmElegida — store global, no phantom deps, workspaces
npmMás lento / menos estricto en monorepos
yarnSegundo ecosistema; no mezclar lockfiles
NxDisponible en el entorno; no se adopta para no divergir de IVPrior

Consecuencias

Archivos: pnpm-workspace.yaml, pnpm-lock.yaml. Prohibido package-lock.json / yarn.lock.

Hasta Accepted: make doctor no debe invocar pnpm como gate de producto (sigue siendo opcional en el seed).