npm run lint en apps/api reporta 1,757 errores: 1,695 vienen del src/prisma/contract.d.ts generado, que no está ignorado, y 62 son de Prettier en src/ (archivos sin formatear como operating-day.* y cash-*).
apps/api/eslint.config.mjs declara sourceType: 'commonjs', pero el paquete es "type": "module".
Hay artefactos compilados en git: apps/api/prisma.config.js(.map) y apps/api/migrations/**/migration.js(.map).
Los mensajes de error de los servicios genéricos están en inglés ("Product 3 not found") y los de negocio en español.
No hay tests en ninguna app.
DATABASE_URL! se usa sin validarse al arrancar (src/prisma/db.ts, prisma.config.ts) y no hay .env.example.
/api/health responde ok aunque la base de datos esté caída.
No hay logging de requests ni de errores.
apps/api/tsconfig.json activa opciones estrictas sueltas en lugar de strict: true.
Qué estamos pagando hoy
El lint no sirve como verificación: con 1,757 errores nadie lo corre y los errores reales se pierden.
Los artefactos compilados generan ruido en los diffs y pueden desincronizarse de su fuente .ts.
Sin tests, cada cambio en venta, inventario o caja se verifica a mano.
Un DATABASE_URL faltante falla tarde y con un error confuso; el health check no detecta una base de datos caída; sin logs es difícil diagnosticar errores.
Arreglo propuesto
Ignorar src/prisma/contract.d.ts en ESLint
Correr eslint --fix una vez
Corregir sourceType a module
Sacar los artefactos .js / .js.map de git y agregarlos a .gitignore
Unificar el idioma de los mensajes de error
Configurar tests (al menos para servicios de venta, inventario y caja)
Validar variables de entorno al arrancar y agregar .env.example
Health check que consulte la base de datos
Logging de requests y errores
strict: true en apps/api/tsconfig.json
Techo de esta ronda
Lint limpio, .gitignore y la base de tests con los primeros casos. Fuera: cobertura completa y pipeline de CI.
Superficie
CI / infra
Módulos
CI / infra, API / backend
Esfuerzo
M — un PR, un día
Riesgo de no tocarlo
Bajo
### Qué es la deuda
- `npm run lint` en `apps/api` reporta **1,757 errores**: 1,695 vienen del `src/prisma/contract.d.ts` generado, que no está ignorado, y 62 son de Prettier en `src/` (archivos sin formatear como `operating-day.*` y `cash-*`).
- `apps/api/eslint.config.mjs` declara `sourceType: 'commonjs'`, pero el paquete es `"type": "module"`.
- Hay artefactos compilados en git: `apps/api/prisma.config.js(.map)` y `apps/api/migrations/**/migration.js(.map)`.
- Los mensajes de error de los servicios genéricos están en inglés (`"Product 3 not found"`) y los de negocio en español.
- No hay tests en ninguna app.
- `DATABASE_URL!` se usa sin validarse al arrancar (`src/prisma/db.ts`, `prisma.config.ts`) y no hay `.env.example`.
- `/api/health` responde `ok` aunque la base de datos esté caída.
- No hay logging de requests ni de errores.
- `apps/api/tsconfig.json` activa opciones estrictas sueltas en lugar de `strict: true`.
### Qué estamos pagando hoy
- El lint no sirve como verificación: con 1,757 errores nadie lo corre y los errores reales se pierden.
- Los artefactos compilados generan ruido en los diffs y pueden desincronizarse de su fuente `.ts`.
- Sin tests, cada cambio en venta, inventario o caja se verifica a mano.
- Un `DATABASE_URL` faltante falla tarde y con un error confuso; el health check no detecta una base de datos caída; sin logs es difícil diagnosticar errores.
### Arreglo propuesto
- [ ] Ignorar `src/prisma/contract.d.ts` en ESLint
- [ ] Correr `eslint --fix` una vez
- [ ] Corregir `sourceType` a `module`
- [ ] Sacar los artefactos `.js` / `.js.map` de git y agregarlos a `.gitignore`
- [ ] Unificar el idioma de los mensajes de error
- [ ] Configurar tests (al menos para servicios de venta, inventario y caja)
- [ ] Validar variables de entorno al arrancar y agregar `.env.example`
- [ ] Health check que consulte la base de datos
- [ ] Logging de requests y errores
- [ ] `strict: true` en `apps/api/tsconfig.json`
### Techo de esta ronda
Lint limpio, `.gitignore` y la base de tests con los primeros casos. Fuera: cobertura completa y pipeline de CI.
### Superficie
CI / infra
### Módulos
CI / infra, API / backend
### Esfuerzo
M — un PR, un día
### Riesgo de no tocarlo
Bajo
Carlos
changed title from Lint, Prettier, artefactos compilados en git y tests to [debt] Lint, Prettier, artefactos compilados en git y tests2026-10-02 17:43:00 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Qué es la deuda
npm run lintenapps/apireporta 1,757 errores: 1,695 vienen delsrc/prisma/contract.d.tsgenerado, que no está ignorado, y 62 son de Prettier ensrc/(archivos sin formatear comooperating-day.*ycash-*).apps/api/eslint.config.mjsdeclarasourceType: 'commonjs', pero el paquete es"type": "module".apps/api/prisma.config.js(.map)yapps/api/migrations/**/migration.js(.map)."Product 3 not found") y los de negocio en español.DATABASE_URL!se usa sin validarse al arrancar (src/prisma/db.ts,prisma.config.ts) y no hay.env.example./api/healthrespondeokaunque la base de datos esté caída.apps/api/tsconfig.jsonactiva opciones estrictas sueltas en lugar destrict: true.Qué estamos pagando hoy
.ts.DATABASE_URLfaltante falla tarde y con un error confuso; el health check no detecta una base de datos caída; sin logs es difícil diagnosticar errores.Arreglo propuesto
src/prisma/contract.d.tsen ESLinteslint --fixuna vezsourceTypeamodule.js/.js.mapde git y agregarlos a.gitignore.env.examplestrict: trueenapps/api/tsconfig.jsonTecho de esta ronda
Lint limpio,
.gitignorey la base de tests con los primeros casos. Fuera: cobertura completa y pipeline de CI.Superficie
CI / infra
Módulos
CI / infra, API / backend
Esfuerzo
M — un PR, un día
Riesgo de no tocarlo
Bajo
Lint, Prettier, artefactos compilados en git y teststo [debt] Lint, Prettier, artefactos compilados en git y tests