# Arquitectura y calidad

> **Proyecto:** acme/tienda-online (main)  
> **Auditoría:** VibeScan · 25/10/2026, 08:58:04  
> **Veredicto:** No publicar todavía · Postura 0/100 (F)

Este documento reúne los hallazgos de calidad y arquitectura: la "red de seguridad" que permite publicar sin romper nada.

## Invariantes recomendadas

- **CI obligatoria:** ningún merge sin lint + typecheck + tests + build + escaneo de secretos y dependencias en verde.
- **Tests como red:** cada bug corregido deja un test que lo vuelve imposible; cada invariante de arquitectura, una regla de análisis estático.
- **Builds reproducibles:** lockfile commiteado, `npm ci` en CI/despliegue.
- **Límites de capas:** la capa de datos no conoce la de presentación; la lógica de negocio no depende del framework.
- **Resiliencia coordinada:** límites de tasa y cortacircuitos compartidos entre instancias (no en memoria por proceso).

## Hallazgos

### [P2] Sin CI: nada impide publicar algo roto

- **Severidad:** Medio
- **Categoría:** Quality & Architecture
- **Estado:** Confirmado / probado
- **Ubicación:** `(repositorio)`

**En criollo:** No hay integración continua. Cada cambio se puede publicar sin que nada verifique antes que compila o pasan los tests.

**Detalle técnico:** No se encontró configuración de CI (.github/workflows, etc.).

**Corrección:** Agregá un workflow que en cada PR corra install, lint, typecheck, tests, build y escaneo de secretos/dependencias, y bloquee el merge si falla.

---

### [P2] Sin tests automatizados detectados

- **Severidad:** Medio
- **Categoría:** Quality & Architecture
- **Estado:** No confirmado (requiere validación dinámica)
- **Ubicación:** `(repositorio)`

**En criollo:** No encontramos tests. Cada arreglo puede romper algo sin que nadie se entere hasta que lo sufre un usuario.

**Detalle técnico:** No se detectaron archivos de test (*.test.*, *.spec.*, __tests__/).

**Corrección:** Incorporá tests de los flujos críticos (auth, pagos, acceso a datos). Cada bug corregido deja un test que lo previene.

---

### [P2] Sin lockfile de dependencias

- **Severidad:** Bajo
- **Categoría:** A08:2021 Software & Data Integrity Failures
- **Estado:** Confirmado / probado
- **Ubicación:** `(repositorio)`

**En criollo:** No hay archivo que fije las versiones exactas de las librerías; builds no reproducibles y más riesgo de cadena de suministro.

**Detalle técnico:** Falta package-lock.json / pnpm-lock.yaml / yarn.lock.

**Corrección:** Generá y commiteá el lockfile. Usá npm ci en CI/despliegue.

```bash
npm install
git add package-lock.json
```

---
