Una tienda retail que se supervisa sola.
Plataforma de supervisión digital para María José Norambuela. Tres miradas: funcional, técnica y cierre.
Del WhatsApp al dashboard
Bendito Capricho operaba en Word, Excel y WhatsApp. Hoy Fase 1 digitaliza la supervisión: checklists con cron 7am, tareas adhoc trazables y un dashboard tipo semáforo. Los procesos de dinero, inventario y captación quedan para fases 2-3.
Supervisión centralizada
María José y David ven el estado de los 8 departamentos en tiempo real con semáforos verde/amarillo/rojo.
Checklists digitales
36 plantillas se generan automáticamente cada día a las 7 AM. Cada rol completa los suyos desde el celular con foto, texto o check.
Roadmap restante
Cierre caja + pagos a emprendedores (F2), inventario 8 pasos + mermas (F3), asistencia + RRHH (F4), portal emprendedores (F5).
Quién hace qué flujo, en qué orden
Los 14 flujos verificados de Fase 1 (PDF Créalo) agrupados en 6 escenarios. Selecciona uno para ver el mini-diagrama. Mismo formato que Flujo de aprobación · sin scroll vertical.
Cierre caja · pagos · pipeline captación (F2) · inventario + mermas (F3) · asistencia (F4) están planificados, no construidos.
Next.js 16 + Airtable + Vercel · stack en producción
Stack elegido para escala real del cliente: 19 usuarios, no 19.000. La dueña puede editar datos sin developer (Airtable como UI admin), deploy automático con cada commit, PWA instalable en celular sin App Store, cron nativo en Vercel.
- 11 rutas · 25+ componentes
- Server Actions + Zod v4.4.3
- Tailwind v4 + shadcn/ui
- TypeScript 5.x strict
- 8 roles · 10 usuarios
- JWT con rol + departamento
- middleware protege rutas
- instalable Android Chrome
- instalable iPhone Safari
- assets cacheados offline
- 8 tablas activas hoy
- 36 plantillas · ~172 ítems
- Plan Free · 1.000 rows max
- +10 tablas en Fases 2-5
- 10:00 UTC · 36 plantillas evaluadas
- genera instancias del día
- token CRON_SECRET
- automations $ + escaladas → Fase 2
- vista Quilpué · San Antonio
- vista por departamento
- "Pendientes hoy" · "Con descuadre"
- auto-deploy en git push main
- SSL automático Let's Encrypt
- preview deployments por PR
- /api/v1/cron/generar-checklists
- token CRON_SECRET
- genera ~14 instancias/día
- AIRTABLE_API_KEY · BASE_ID
- NEXTAUTH_SECRET · URL
- CRON_SECRET
- Server Components por defecto · cliente solo donde hay interacción
- Server Actions + Zod = mismo schema en cliente y servidor
- Feature colocation: cada ruta tiene sus _components / _actions / _hooks
- Filtrado por rol en middleware antes de cargar la página
- 8 tablas Fase 1 con relaciones Link · sin SQL
- +10 tablas en Fases 2-5 (cierres, mermas, pagos, stands…)
- UI admin para edición directa sin developer
- ⚠ Free 1K rows → Team antes de 3 sem · $100 USD/mes según PDF
Airtable Free tiene 1.000 registros máx por base. Con 228 registros fijos + 36 instancias diarias generadas por cron, la base se llena en ~21 días de uso real. Migración obligatoria a Airtable Team antes de operar en serio (~$20-100 USD/mes según número de seats). Alternativa: migrar capa de datos a Supabase Postgres (500MB free, 50K MAUs) cuando el costo lo justifique.
Matriz · quién hace qué en cada módulo
Navegable con cajitas · sin scroll vertical. Cambia entre permisos, departamentos, usuarios y fases tocando las pestañas. 8 roles · 10 módulos · scope automático por departamento o tienda.
| Módulo | Dueña | Gerente | Socio | Jefe Depto | Líder Tienda | Trabajador | Emprendedor |
|---|---|---|---|---|---|---|---|
| Dashboard general | CRUD | CRUD | R parc. | R depto | R tienda | — | — |
| Checklists completar | CRUD | CRUD | CRU MKT/COM | CRU depto | CRU tienda | CRU propios | — |
| Tareas adhoc | CRUD | CRUD | CRU MKT/COM | CRU depto | CRU tienda | R propias | — |
| Cierres caja | CRUD | CRUD | R | CRUD FIN | CRU tienda | — | — |
| Pagos emprendedores | CRUD | CRUD | R | CRUD FIN | R | — | R propios |
| Emprendedores | CRUD | CRUD | CRUD | R rel | R tienda | — | R propio |
| Inventario / mermas | CRUD | CRUD | R | CRUD INV | CRU tienda | — | R propias |
| Asistencia | CRUD | CRUD | R | CRUD ADM | CRU tienda | R propia | — |
| Reportes financieros | TODO | TODO | MKT/COM | Su depto | Su tienda | — | Propios |
| Configuración sistema | CRUD | R | — | — | — | — | — |
Gerencia
María José + David
Finanzas
Francis (jefa)
Marketing
Equipo + Dani
Comercial
Dani (socio)
Administración
Joel (jefe)
Inventario
Encargada inventario
Líderes Tienda
Quilpué + San Antonio
Logística Web
Ana Quiñonez
| Nombre | Rol | Cargo | Scope | |
|---|---|---|---|---|
| María José Norambuela | mariajose@benditocapricho.cl | Dueña | — | Todo |
| David Cárdenas | david@benditocapricho.cl | Gerente | Gerente General | Todo |
| Daniel (Dani) | dani@benditocapricho.cl | Socio | Mkt + Comercial | MKT · COM |
| Francis | francis@benditocapricho.cl | Jefe Depto | Jefa Finanzas | FIN |
| Joel | joel@benditocapricho.cl | Jefe Depto | Jefe Administración | ADM |
| Ana Quiñonez | ana@benditocapricho.cl | Jefe Depto | Supervisora Logística Web | LOG |
| Encargada Inventario | inventario@benditocapricho.cl | Jefe Depto | Enc. Inventario | INV |
| Líder Quilpué | lider.quilpue@benditocapricho.cl | Líder Tienda | Líder Quilpué | Tienda Q |
| Líder San Antonio | lider.sanantonio@benditocapricho.cl | Líder Tienda | Líder San Antonio | Tienda SA |
| Trabajador 1 | trabajador@benditocapricho.cl | Trabajador | Personal Operativo | Propios |
Emails provisionales. María José debe confirmar la lista definitiva por persona y activar Google Workspace (Business Starter ~$6 USD/usr/mes) o usar correos personales. Luego se actualizan en Airtable Usuarios y el login funciona inmediato.
| Fase | Módulos | Estado | Duración | Tokens est. |
|---|---|---|---|---|
| Pre-desarrollo | Análisis 25 docs · 4 agentes paralelos · propuesta | ✓ Completado | — | ~300K |
| Fase 1 | Login · Mi Día · Dashboard · Checklists · Tareas · Emprendedores · Reportes · Calendario · Usuarios · PWA · Cron | ✓ En producción | 3-4 sem | ~1.2M-1.5M |
| Fase 2 | Finanzas (cierres, depósitos, pagos) + Comercial + Marketing + Notificaciones + Upload fotos real | Próxima | 2-3 sem | ~800K-1M |
| Fase 3 | Inventario digital 8 pasos + Mermas con foto obligatoria | Planificada | 2-3 sem | ~500K-700K |
| Fase 4 | Administración: asistencia digital, liquidaciones, bonos, contratos | Backlog | 2 sem | ~300K-500K |
| Fase 5 | Portal Emprendedores + Reportes avanzados | Backlog | 2-3 sem | ~300K-400K |
| Fase 6 | Logística Web · Paris Marketplace | Backlog | 2 sem | ~200K-300K |
El antes y el después de cada proceso
Análisis funcional: cada flujo crítico hoy vive en WhatsApp, Word y Excel. La plataforma no agrega trabajo — reemplaza herramientas que ya se usan, con la diferencia de que ahora todo queda registrado y la gerencia lo ve sin pedirlo.
✗ ANTES · Operación manual
- Cierre de caja en Excel local de cada tienda
- Hojas de ingreso/egreso en papel + WhatsApp
- "¿Ya completaste el checklist?" por WhatsApp
- Pagos a emprendedores calculados a mano
- Mermas reportadas verbalmente o no reportadas
- María José sin visibilidad hasta fin de semana
- Descuadres descubiertos en cuadratura mensual
- Nuevos emprendedores se pierden en mensajes
✓ DESPUÉS · Plataforma de supervisión
- Formulario digital con cálculo automático de diferencias
- Hoja escaneada → Drive → flujo de 8 pasos trackeado
- Checklists generados a las 7am · estado en dashboard
- Sistema calcula ventas − comisión − mermas − arriendo
- Registro con foto obligatoria + clasificación
- Dashboard tipo semáforo en tiempo real
- Alerta inmediata si descuadre > $5.000
- Pipeline 7 etapas en Kanban con SLA por etapa
Reglas de negocio digitalizadas
Calendario fijo de obligaciones
Día 01: planilla sueldos a contadora + presupuesto Gerencia + cobro subarriendo. Día 03: presupuesto MKT. Día 05: pago sueldos + gastos fijos. Día 10: bonos. Día 12: imposiciones. Día 15: reporte financiero integral. Día 20: deadline presupuestos áreas.
SLAs cross-sistema
Hoja inventario procesada en 48 hrs hábiles. Cierre caja enviado antes 20:00. Depósito comprobante en 24 hrs. Respuesta a emprendedor en 24 hrs. Mensajes DM en 2 hrs hábiles. Cobro mora > 60 días → plan de cobro.
Cumplimiento legal Chile
Asistencia digital cumple art. 33 Código del Trabajo. Liquidaciones primeros 5 días del mes siguiente. Cotizaciones día 12 (multa si no). Contratos firmados archivados con vencimiento. Subarriendo separado de relación laboral (no son trabajadores).
Alertas escaladas en 3 niveles
Nivel 1 (responsable) → Nivel 2 (supervisor: Joel/Gerencia) → Nivel 3 (liderazgo: María José/David). Activan en: descuadre, hoja fuera de 48h, planilla fuera de plazo, contrato vencido, stand en mora > 30 días.
Trazabilidad de SKU
Cada producto: PREFIJO_EMPR-CATEGORIA-SECUENCIAL (ej: MARI-ACC-001). Familia, emprendedor, stock por tienda, historial de precio, movimientos. Permite atribución correcta de mermas y pagos.
Cálculo pago emprendedor
monto_a_pagar = ventas_periodo − comisión_BC − descuento_subarriendo − descuento_mermas_atribuibles − otros_descuentos. Mermas se clasifican: producto (descuentan al emprendedor) vs operación tienda (asume BC).
Pipeline de captación de emprendedores — Kanban 7 etapas
El modelo de subarriendo de stands es el motor de ingresos de BC. Cada nuevo emprendedor activo = revenue mensual recurrente + comisión sobre ventas. Dani lidera, pero hoy todo vive en DMs sueltos. La app convierte el flujo en pipeline Kanban con SLA por etapa.
Prospecto
01Contacto
02Validación
03Exclusividad
04Cierre
05Integración
06Activo
07Cada emprendedor activo es revenue recurrente. Si la tarifa de stand promedia X UF y la comisión sobre ventas Y%, mejorar conversión de prospecto→activo del 15% al 25% multiplica el ingreso por subarriendo sin más esfuerzo comercial. Pipeline + SLA = no se pierde un solo lead en el ruido.
Quién aprueba qué, en qué orden, con qué evidencia
Tres procesos donde hay dinero o decisión irreversible: cierre de caja diario (descuadre puede ser robo), pago a emprendedores (movimiento mensual de varios millones de pesos consolidado) y gastos no presupuestados (control de cash flow por departamento).
El proyecto en cifras
Cuatro KPIs clave, un único gráfico de score y un drill-down para detalle. Focused & clean · sin sobrecargar con charts innecesarios.
Auditoría SMC · score por área
total 67/100 · target 88/100Un solo gráfico de barras claras · cada barra es una dimensión auditada · el detalle del fix vive en sección Assessment.
Drill-down · detalle bajo demanda
3 grupos · selecciona uno| Capa | Tecnología | Versión | Estado |
|---|---|---|---|
| Framework | Next.js App Router | 16.2.4 (verificar) | Revisar |
| Lenguaje | TypeScript strict | 5.x | OK |
| Base de datos | Airtable | API v0 · Free | Migrar |
| Auth | NextAuth · magic link | v5 | OK |
| UI | Tailwind + shadcn/ui | v4 | OK |
| Validación | Zod | 4.4.3 | OK |
| Hosting | Vercel | Hobby | Upgrade Pro |
| Mobile | PWA · Service Worker | — | OK |
| Servicio | Hoy | Producción | Cuándo migrar |
|---|---|---|---|
| Vercel | Hobby · $0 | Pro · $20 USD/mes | Esta semana |
| Airtable | Free · $0 | Team · $100 USD/mes | Antes 3 sem (1K rows) |
| Sentry monitor | — | Free tier | 2 semanas |
| Dominio .cl | — | ~$12 USD/año | Esta semana |
| Google Workspace | — | ~$6 USD/usr (opcional) | Cuando MJ decida |
| Total prod | $0 | ~$121 USD/mes | — |
1. Lista emails (María José). 2. Google Workspace o correos personales. 3. DNS · CNAME app → cname.vercel-dns.com. 4. Upgrade Airtable Free → Team. 5. Capacitación 1h equipo.
Request for Proposal · Bendito Capricho × Créalo SpA
Contexto · problema · hipótesis · KPIs · riesgos · roadmap. Formato heredado del RFP InfoPet del banco SMC.
01 🎯 Contexto
Bendito Capricho opera tienda retail de accesorios en Quilpué y San Antonio bajo modelo de subarriendo de stands a emprendedores (cada stand vende productos de un emprendedor distinto · BC cobra arriendo + comisión sobre ventas · paga al emprendedor menos mermas atribuibles).
Hoy toda la operación vive en Word, Excel local y WhatsApp. El equipo de 19 personas trabaja sin visibilidad central. María José y David descubren problemas en la cuadratura mensual, no cuando ocurren.
Resuelve hoy: los checklists diarios/semanales/mensuales y la trazabilidad de tareas adhoc. Reemplaza WhatsApp para esos dos casos · todo queda registrado con timestamp y María José ve cumplimiento en dashboard tipo semáforo.
NO resuelve aún: cierres de caja, pagos a emprendedores, inventario operativo ni captación comercial. Eso sigue en Excel y WhatsApp como antes · vendrá en Fases 2-3 según el PDF de entrega Créalo.
02 🔥 Problemas del negocio hoy
Status indica qué pain points resuelve Fase 1 entregada y cuáles quedan pendientes para fases siguientes.
- ✓Checklists por WhatsApp: "¿completaste lo de hoy?" en grupos · RESUELTO Fase 1 ✓ · 36 plantillas digitales con cron 7am + dashboard semáforo
- ✓Tareas adhoc sin trazabilidad: "te paso por WA esto urgente" · RESUELTO Fase 1 ✓ · módulo tareas con prioridad, plazo, asignación, comentarios
- ✓María José sin visibilidad real-time: revisaba estado el fin de semana · RESUELTO Fase 1 ✓ · dashboard semáforo en vivo + reportes semanales con ranking
- ⏳Cierres de caja sin cuadratura automática: Excel propio por tienda · descuadres mensuales · PENDIENTE Fase 2
- ⏳Pagos a emprendedores manuales: Francis calcula a mano · atrasos 3-5 días · PENDIENTE Fase 2
- ⏳Captación emprendedores se pierde: DMs Instagram sueltos · sin pipeline · PENDIENTE Fase 2 (en Fase 1 solo hay CRUD emprendedores)
- ⏳Hojas de inventario en papel: emprendedor entrega · líder firma · se pierden · PENDIENTE Fase 3
- ⏳Mermas reportadas verbalmente: sin foto, sin clasificación · PENDIENTE Fase 3
03 💡 Hipótesis
Digitalizando los 36 checklists y las tareas adhoc en una sola plataforma con dashboard semáforo en vivo · María José pasa de revisar el fin de semana a ver el estado en tiempo real · el cumplimiento de checklists sube de ~60% (estimado WhatsApp) a ≥90% al mes 2 · cada responsable tiene su Mi Día con lo asignado.
Cuando se digitalicen cierres de caja, pagos a emprendedores e inventario 8 pasos · los descuadres se detectan el mismo día (no en cuadratura mensual) · los pagos salen a tiempo · las mermas se atribuyen correctamente. Pipeline captación 7 etapas mejora conversión prospecto→activo del 15% al 25%+.
04 📊 KPIs · baseline → target
| Métrica | Baseline (hoy) | Target 6 meses | Cómo se mide |
|---|---|---|---|
| Cumplimiento checklists diarios | ~60% (estimado) | ≥90% | Auto · dashboard Mi Día + Reportes |
| Tiempo procesar hoja inventario | ~5-7 días | <48 hrs hábiles | Auto · alerta si excede plazo |
| Días retraso pago emprendedor | 3-5 días | 0 días | Sistema calcula · Francis aprueba · MJ firma |
| Descuadres caja sin investigar | ~3-5/mes | 0 | Auto · alerta >$5K · investigación obligatoria |
| Conversión prospecto → emprendedor activo | ~15% | 25%+ | Pipeline Airtable · cohort mensual |
| Mermas con foto + clasificación | ~20% | 100% | Sistema bloquea registro sin evidencia |
| NPS staff (Net Promoter Score interno) | — | ≥50 | Survey trimestral post-implementación |
| Costo infra mensual | $0 (papel) | <$130 USD/mes | Vercel + Airtable Team + Workspace |
05 ⚠️ Riesgos identificados
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Airtable Free se llena (1K rows) | Alta | Medio | Upgrade a Team antes de 3 sem · ~$20-100/mes · ya presupuestado |
| Equipo no adopta (sigue WhatsApp) | Media | Alta | Capacitación 1h + acompañamiento semana 1 · alerta auto si no completa |
| Líderes no suben foto cierre caja | Media | Media | Sistema bloquea submit sin foto obligatoria |
| Conexión a internet intermitente en tienda | Media | Bajo | PWA cachea assets · datos requieren conexión · queue local fase 2 |
| Cambio de tarifa subarriendo confunde Airtable | Baja | Medio | Historial de precios versionado · fecha vigencia obligatoria |
| María José olvida aprobar pagos > umbral | Media | Medio | Recordatorio email + push · escalada a David si >48 hrs |
| Vercel Hobby supera límites (improbable) | Baja | Bajo | Upgrade a Pro $20/mes si supera 100K req/mes |
06 🛠️ Solución · stack y features
Stack
- ›Frontend: Next.js 16 App Router · Tailwind v4 + shadcn/ui · PWA · TypeScript strict
- ›Auth: NextAuth v5 magic link email · sin password · 8 roles · JWT con scope
- ›Datos: Airtable API v0 · 8 tablas Fase 1 (+10 planificadas Fases 2-5) · 36 plantillas · ~172 ítems · UI admin para María José
- ›Infra: Vercel Hobby · auto-deploy git push · SSL · Edge CDN · cron 10:00 UTC
- ›Integraciones (fase 2+): WhatsApp Business API (notificaciones) · Google Drive (respaldo fotos) · Bsale/POS (cierres)
- ›Domain:
app.benditocapricho.cl· CNAME →cname.vercel-dns.com
Features clave
- ›📋 36 plantillas checklist: diario / semanal / mensual · generación auto 7am
- ›📊 Dashboard semáforo: 8 departamentos en verde/amarillo/rojo en tiempo real
- ›💰 Cierres caja digitales: 5 medios de pago · cuadratura automática · foto arqueo obligatoria
- ›📦 Inventario 8 pasos: hoja → foto → Drive → SKU → habilitar · plazo 48 hrs
- ›🛒 Pipeline emprendedores 7 etapas: Kanban Airtable · SLA por etapa · revenue recurrente
- ›👥 Asistencia digital: reemplazo libro físico · cumple art. 33 CT
- ›📱 PWA mobile-first: instalable Android/iPhone · líderes operan desde celular
07 🛣️ Roadmap por fases · 6 fases · ~14-18 semanas
Fase 1 · MVP supervisión ✓ LIVE
3-4 sem · ~1.2-1.5M tokensFase 2 · Dinero 🔄 PRÓXIMA
2-3 sem · ~800K-1M tokensFase 3 · Inventario ⏳ PLAN
2-3 sem · ~500-700K tokensFase 4 · RRHH ⏳ PLAN
2 sem · ~300-500K tokensFase 5 · Portal Emprendedores ⏳ PLAN
2-3 sem · ~300-400K tokensFase 6 · Logística Web ⏳ PLAN
2 sem · ~200-300K tokens1. María José confirma lista definitiva de emails. 2. Activar Google Workspace o usar correos personales. 3. Acceso DNS benditocapricho.cl → CNAME app → cname.vercel-dns.com. 4. Upgrade Airtable Free → Team antes de 1K rows. 5. Capacitación 1h al equipo. Tras estos 5, Fase 1 corre en operación normal y arranca Fase 2 (Dinero).
Assessment de la Entrega Fase 1 · Créalo SpA
Evaluación independiente del código, infraestructura y entregables. Score actual 67/100 (C+) · con 2 semanas de correcciones llega a 88/100 (B+) · inversión adicional ~$45 USD/mes.
El código está bien.
La infraestructura necesita ajustes.
Resumen Ejecutivo
La plataforma funciona correctamente
Código moderno, limpio y bien estructurado. 12 módulos operan. Cron 7am genera 36 checklists. PWA instalable en móvil sin problemas.
Riesgo crítico bloqueante
Airtable Free tiene límite 1.000 registros. Con 36 checklists/día se alcanza en <3 semanas. Migración urgente a Supabase o Airtable Team.
3 entregables ausentes
Falta: (1) manual de usuario por módulo, (2) sistema tickets con SLA, (3) roadmap claro de fases siguientes. Estándar incumplido.
2 semanas y queda listo
Migrar DB + dashboard por rol + entregables faltantes eleva score 67 → 88. Inversión: $45 USD/mes adicional.
7 secciones del assessment
01 · Scan Tecnológico · Actual vs Recomendado
Diagnóstico de cada capa con recomendación. Mantener · Mejorar · Cambiar urgente
| Capa | Lo que tiene Créalo | Estado | Recomendación |
|---|---|---|---|
| Framework | Next.js "v16.2.4" (versión no existe) | Revisar | Solicitar package.json a Créalo. Última estable v14/v15. |
| Lenguaje | TypeScript 5.x | OK | Mantener. Buena elección. |
| Componentes UI | Tailwind + shadcn/ui v4 | OK | Mantener. Stack moderno. Agregar tokens semánticos. |
| Base de datos | Airtable Free · ⚠ 1.000 reg max | Cambiar | Migrar a Supabase PostgreSQL. Sin límite · backups auto · transacciones. Free year 1. |
| Auth | NextAuth v5 · magic link | OK | Mantener. Verificar expiración links 15 min. |
| Validación | Zod 4.4.3 | OK | Mantener. Validar TODOS los endpoints. |
| Deploy | Vercel Hobby (Free) | Insuficiente | Ruta A: Vercel Pro $20/mes (30 min). Ruta B: AWS en Fase 5+. |
| Automatización | Vercel Cron · 36 checklists 7am | OK | Mantener. Agregar monitor de fallas. |
| App móvil | PWA iOS + Android | OK | Agregar sync offline real. |
| Seguridad | Solo CRON_SECRET en env | Incompleto | Validar permisos server-side · headers HTTP · audit log. |
| Monitoreo errores | Sin implementar | Ausente | Instalar Sentry (free). Sin esto los errores son invisibles. |
02 · Arquitectura · Estado actual vs Objetivo
2 rutas evaluadas: Vercel Pro ahora vs AWS en Fase 5+.
| Factor | Ruta A · Vercel Pro | Ruta B · AWS |
|---|---|---|
| Setup | 30 min · 1 clic | 4-8 sem · DevOps |
| Costo/mes | $20 USD fijo | $80-250+ USD variable |
| Conocimiento | Ninguno | DevOps dedicado |
| Compat Next.js | Total · mismo equipo | Requiere adaptación |
| Aislamiento multi-cliente | Solo código | Total · cuenta AWS por cliente |
| Timeout reportes | 30s · limitado | Sin límite · Lambda |
| Storage archivos | Vercel Blob | S3 · más control |
| Cuándo usar | Ahora hasta Fase 4 | Fase 5+ · 3+ clientes |
Implementar Ruta A (Vercel Pro) esta semana · 30 min · $20/mes · sin tocar código. Evaluar Ruta B (AWS) en Fase 5 cuando haya 3+ empresas usando la plataforma. La complejidad operacional de AWS no se justifica antes.
03 · Roadmap · Lo entregado vs Lo esperado
Qué incluyó Créalo en Fase 1 y qué debería acompañar a cualquier entrega de software profesional.
📦 Lo que entregó Créalo
- Login magic link · solo email
- Mi Día para operarios
- 36 plantillas · 172 ítems
- Generación auto 7 AM
- Revisión supervisor
- Tareas · emprendedores · reportes · calendario
- Gestión usuarios con roles
- PWA instalable
- Sin manual de usuario
- Sin sistema de soporte/SLA
- Sin roadmap fases siguientes
- Sin plan de backup
- Sin ambiente staging
- Sin criterios de aceptación
📋 Lo que debería acompañar
- Documento de alcance firmado por ambas partes
- Roadmap de fases con objetivos, entregables y tiempos
- Manual de usuario con capturas por módulo
- Protocolo soporte con cómo reportar y tiempos SLA
- Plan backups con frecuencia y recovery
- Ambiente staging idéntico a producción
- Criterios aceptación qué define que el módulo está listo
- Métricas de éxito cómo medir cumplimiento
Fases recomendadas de aquí en adelante
04 · Sistema de Tickets · Módulo Faltante
Hoy todo se maneja por WhatsApp/email sin registro ni SLA. La plataforma no tiene módulo de soporte estructurado.
⚠️ Cómo se gestionan hoy
- Operario avisa por WhatsApp
- Sin registro de qué pasó ni cuándo
- Sin responsable ni fecha resolución
- Supervisor no puede hacer seguimiento
- Urgentes y menores se tratan igual
- Sin métricas de tiempo de resolución
- Problemas se pierden en chats
✅ Cómo debería funcionar
- Ticket desde la app con foto + descripción
- Número único + fecha registrados
- Asignación automática + notificación
- Estado visible para todos en vivo
- SLA por prioridad
- Medición de eficiencia soporte
- Historial para detectar recurrencias
Tiempos de respuesta SLA por prioridad
Flujo de estados del ticket
• Al crear: asignación según categoría+prioridad · • Al 80% SLA: recordatorio responsable · • Al vencer SLA: escalación supervisor + alerta dashboard · • Sin respuesta cliente 48h: cierre automático
05 · Manual de Usuario · Entregable ausente
No se entregó ninguna guía de uso. Sin manual, cada usuario nuevo requiere capacitación presencial y los errores de operación aumentan soporte.
En cualquier proyecto profesional, el manual de usuario es entregable obligatorio junto a la primera versión. Créalo debe producirlo como parte del cierre Fase 1.
9 módulos que requieren documentación
🔐 Acceso al sistema Todos
Ingreso por email · abrir link antes que expire · instalar app iOS+Android · qué hacer si no llega correo.
☀️ Mi Día Operario
Ver checklists del día · completar ítem con foto · guardar borrador · enviar al supervisor.
✅ Checklists Operario
Se crean solos 7am · ítem a ítem con cámara · observaciones en problemas · envío al completar.
📊 Dashboard Supervisor
Leer % cumplimiento · identificar locales con alertas · filtrar local/fecha/responsable · ver detalle.
🔎 Revisión Supervisor
Ver pendientes de revisión · aprobar/rechazar con comentario · ver fotos adjuntas · aviso al operario.
📝 Tareas Supervisor
Crear tarea con descripción/plazo/responsable · ver por vencimiento · cambiar estado · notificación.
🏪 Emprendedores Supervisor
Buscar local por nombre/categoría · ver ficha + historial · agregar notas privadas · activar/desactivar.
📈 Reportes Supervisor
Cumplimiento mensual por local · comparar semanas · ítems más incumplidos · export PDF/Excel (Fase 2).
👥 Usuarios Admin
Crear usuario con email/nombre/rol · diferencia Admin/Supervisor/Operario · invitar por correo · desactivar.
PDF por módulo con capturas numeradas paso a paso. Disponible además dentro de la app con botón "Ayuda" por pantalla. Prioridad: Mi Día y Checklists (uso diario) → Login/App (usuarios nuevos) → resto.
06 · Mejoras Visuales · 5 cambios concretos
Cambios con alto impacto en UX y poco esfuerzo de implementación.
07 · Auditoría Técnica · Score por área
Evaluación por área de 0 a 100 con hallazgos de QA. Score actual 67 → 88 con correcciones.
Hallazgo por área · qué baja el score
| Área | Puntos perdidos | Motivo principal | Cómo recuperarlos |
|---|---|---|---|
| Base de datos | −12 pts | Airtable Free: límite, sin backups, sin transacciones | Migrar a Supabase PostgreSQL · 3-5 días |
| Documentación | −8 pts | Sin manual, error versión Next.js, sin evidencia pruebas | Manual + corregir versión |
| Funcionalidad | −8 pts | Sin tickets, sin push, sin export reportes | Fase 2 y 3 del roadmap |
| Seguridad | −6 pts | Permisos no verificados server-side, sin audit log | Validación server + audit log |
| UX | −5 pts | Dashboard sin rol, sin estados vacíos, sin feedback | 5 cambios Sección 06 |
| Infraestructura | −3 pts | Vercel Hobby sin SLA, sin monitoreo errores | Vercel Pro + Sentry |
Pruebas de calidad recomendadas antes de operar
| Escenario a probar | Por qué es importante |
|---|---|
| Operario completa y envía checklist | Flujo principal · un error afecta el trabajo diario |
| Supervisor aprueba/rechaza revisión | Rechazo sin notificación sería error silencioso |
| 36 checklists se generan a las 7 AM | Si falla cron, día entero sin checklists sin aviso |
| Operario no ve datos de otro local | Acceso cruzado = riesgo de privacidad más grave |
| App funciona sin señal y sincroniza al volver | Operarios con mala cobertura necesitan offline |
| Link email expira en 15 minutos | Link sin expirar = riesgo si correo es comprometido |
08 · Plan de Acción · Próximos 30 días
Qué hacer, en qué orden y por qué no puede esperar.
Manual de usuario: solicitarlo por escrito con fecha límite. Entregable contractual estándar. No cerrar Fase 1 sin él.
Migración Airtable: si Créalo no puede o demora, contratar dev externo. Costo menor que riesgo colapso en 3 sem.
Versión Next.js: pedir package.json por email. No firmar cierre Fase 1 sin esa confirmación.
Staging: si no existe, acordar que ningún cambio va a prod sin revisión previa.
Vercel Pro: si Créalo cree que Free es suficiente, mostrar Sección 02 con riesgos documentados.
Score 49/100 · 5 Agentes SMC OS · Mayo 2026
Análisis exhaustivo por 5 evaluadores independientes: Arquitectura, Backend/Seguridad, Frontend, DevOps y QA. Evaluados con 4,200+ líneas de documentación técnica de Fase 1.
Airtable Free tiene 1,000 registros. Con 182 registros dinámicos/día de uso real, el límite se alcanza en 4–7 días. Tras ese punto todos los usuarios ven error "Base limits reached". Actualizar a Airtable Team ($20/mes) es la única acción que previene un corte total de servicio.
Airtable Free colapsa en 4–7 días de uso real. El cálculo correcto: 742 registros disponibles ÷ 182/día = 4.1 días promedio. No 3 semanas como se estimó antes.
Los permisos RBAC están implementados solo en la UI, no en las API routes. Cualquier usuario autenticado accede a datos de otros departamentos vía API directa. El roadmap de Créalo lo confirma como "P1 pendiente".
La tabla Respuestas_Checklist alcanza 240,000+ registros en 12 meses, superando el límite Airtable Team (125K). Colapso arquitectónico proyectado mes 7–10 sin migración planificada.
¿Por qué bajó de 74 a 49?
❌ Score 74/100 — contrarespuesta anterior
- Evaluación basada en documentación de propuesta
- Sin cálculo real de registros/día Airtable
- IDOR marcado como "por implementar" sin gravedad
- Cron timeout estimado como "en riesgo" sin cálculo exacto
- Sin evaluación de QA formal ni cobertura de defectos
- Sin evaluación de observabilidad productiva
✓ Score 49/100 — evaluación 5 agentes
- Evaluación de documentación técnica completa (4,200+ líneas)
- Cálculo exacto: 742 disponibles ÷ 182/día = 4.1 días
- IDOR clasificado S1 con vectores de ataque concretos
- Cron: 36×220ms=7.92s base, 16.2s worst case vs 10s límite
- 8 defectos S1, 10 S2, 8 S3 documentados
- Observabilidad: 10/100 — sistema ciego en producción
Cómo se evaluó la plataforma
Cada agente recibió la documentación técnica completa de Fase 1 y evaluó su dimensión de forma independiente. Sin coordinación previa entre ellos.
ADRs, escalabilidad, deuda técnica estructural, colapso proyectado DB
OWASP, autenticación, API routes, lógica de negocio, seguridad
Core Web Vitals, React patterns, UX, PWA, accesibilidad, error states
CI/CD, observabilidad, infra, runbooks, planes de contingencia
Defect classification, cobertura testing, edge cases, flujos críticos
ENTREGA-FASE1.md (12 módulos, 10 endpoints, 14 flujos verificados) · propuesta-arquitectura.md (1,459 líneas, 18 tablas) · RESPUESTA-STACK-GUILLERMO.md · PROPUESTA-BENDITO-CAPRICHO.md · analisis-finanzas.md · analisis-operaciones-admin.md · analisis-marketing-comercial.md. Total: ~4,200 líneas de documentación técnica.
49/100 — Grado F+
La arquitectura conceptual es sólida (69/100) pero la deuda técnica en seguridad, DevOps y QA arrastra el score total a 49. Con P0+P1 resueltos, el score sube a 75+.
Hallazgos por Dimensión
Colapso DB mes 7–10
Respuestas_Checklist: 36 plantillas × 19 usuarios × 365 días × ~10 ítems = 240,000+ registros/año. Límite Airtable Team: 125,000 filas/base. Colapso mes 7–10 sin migración planificada.
8 ADRs faltantes
Decisiones arquitectónicas críticas sin documentar: Airtable vs DB relacional, NextAuth beta en prod, Vercel Hobby como hosting de negocio, cron via API route, Airtable Free en producción.
Lógica financiera sin versionado
Las fórmulas de Airtable (ventas − comisiones − mermas − subarriendo) son lógica de negocio crítica sin control de versiones, sin historial, sin rollback. Un cambio accidental destruye los cálculos de pagos.
Observabilidad 2/10
No hay Sentry, no hay logging estructurado, no hay métricas de negocio. El sistema es ciego en producción. El primer aviso de falla llega por WhatsApp de un usuario.
Sin idempotencia en cron
El cron de 7AM genera checklists sin verificar si ya existen. Un retry de Vercel crea duplicados que los usuarios ven como tareas nuevas. Sin mecanismo de deduplicación documentado.
Stack apropiado para la escala
Next.js + Airtable + Vercel es la decisión correcta para 15–19 usuarios con el presupuesto disponible. La propuesta de migrar a Supabase + AWS implicaría 3–4 semanas de reescritura sin ganancia funcional real.
Los 10 API routes validan autenticación (usuario logueado) pero no validan autorización (qué datos puede ver). Un Trabajador autenticado llama a GET /api/checklists?departamento=finanzas y obtiene datos de Finanzas. El roadmap de Créalo lo confirma como "P1 pendiente" — sabían de la vulnerabilidad y eligieron deployar con ella.
Cron timeout 2.25× sobre límite
36 plantillas × 220ms = 7.92s en escenario base. Worst case: 16.2s vs límite Vercel Hobby de 10s. El cron falla silenciosamente sin alerta, sin retry, sin notificación al supervisor.
Airtable API v0 Deprecated
La documentación menciona Airtable API v0 como dependencia. Esta versión está deprecated — Airtable puede eliminar el soporte sin aviso. SDK 0.12.2 es estable pero si hay código usando la API REST directamente, es deuda activa.
NextAuth v5 beta.31 en producción
NextAuth v5 estaba en beta al momento del deploy. Un breaking change en beta.32+ puede invalidar las sesiones de todos los usuarios simultáneamente. La versión estable v5 existe desde diciembre 2024.
Sin transacciones compensatorias
El flujo Cierre de Caja escribe en múltiples tablas Airtable secuencialmente. Si falla en el paso 3 de 5, las tablas quedan en estado inconsistente. Airtable no soporta transacciones ACID — no hay rollback.
RBAC 8 roles implementado
lib/auth/permissions.ts con hasPermission() y getDataScope() cubre los 8 roles. Es un diseño sólido — el problema es que solo está aplicado en la capa UI, no en las API routes.
Headers de seguridad en next.config
CSP, X-Frame-Options, X-XSS-Protection configurados en next.config.ts. Es una práctica correcta que Créalo implementó proactivamente.
LCP 3.5–4.5s en móvil
Sin skeleton loaders, sin lazy loading declarado, sin optimización de imágenes confirmada. Los líderes de tienda usan la PWA en celulares con conexión variable. Google considera LCP crítico >4s — inutilizable en 3G.
Sonner cobertura 20%
Solo 20% de los flujos críticos tienen notificaciones Sonner. El 80% restante (incluyendo cierres de caja y rechazos de checklist) falla silenciosamente — sin confirmación de éxito ni feedback de error.
Sin persistencia local de checklists
Los formularios de checklist no guardan progreso en localStorage. Si la sesión expira a la mitad de un checklist de 20 preguntas, el usuario pierde todo el progreso sin posibilidad de recuperación.
Sin estados de error en formularios críticos
Cierre de Caja, Depósitos y Checklists no tienen estados de error. Si Airtable falla, el usuario no sabe si su data fue guardada — riesgo de enviar el cierre de caja dos veces.
Tailwind v4 OKLch en producción
OKLch es el default en Tailwind v4, pero el soporte no es uniforme en Android 10–11 (prevalentes en Chile). Los colores semánticos pueden renderizar diferente en los dispositivos de los líderes de tienda.
PWA instalable + shadcn/ui v4
Los trabajadores pueden instalar la app sin App Store. shadcn/ui v4 proporciona componentes accesibles y consistentes. El diseño visual es profesional para el contexto del cliente.
Airtable Free tiene 1,000 registros. Con 258 de seed y 182 registros dinámicos/día (36 instancias + 144 respuestas + 2 cierres), los 742 disponibles se agotan en 4.1 días. El cálculo anterior de "3 semanas" no contaba las respuestas individuales por ítem.
Observabilidad 10/100
No hay Sentry, no hay logging estructurado, no hay alertas de infra, no hay métricas de negocio, no hay dashboard de estado. El primer aviso de falla en producción llega por WhatsApp.
Sin CI/CD formal
Los deploys son manuales vía git push a Vercel. No hay pipeline que corra tests antes del deploy, no hay preview environments, no hay rollback documentado ante un deploy roto.
Sin runbooks
No existe documentación de "qué hacer cuando falla X". Si el cron falla a las 7AM: ¿quién lo detecta? ¿cómo se ejecuta manualmente? ¿quién tiene acceso al panel de Vercel? No hay respuestas documentadas.
Vercel Hobby sin SLA
Vercel Hobby no tiene SLA. Un incidente puede dejar la plataforma caída horas sin compensación ni soporte prioritario. Para una plataforma que reemplaza WhatsApp en operaciones diarias, este es un riesgo real.
Sin plan de migración DB
Cuando Airtable Team alcance 125,000 filas (~mes 7–10), no hay plan de migración documentado. Migrar a Supabase o PostgreSQL con datos en producción es un proyecto de 2–4 semanas de riesgo alto.
Deploy automático con Vercel
La integración git → Vercel con deploy en 30s es una ventaja real frente a AWS EC2. Para un desarrollador solo manteniendo el proyecto, esto elimina la carga operacional de DevOps tradicional.
La ENTREGA-FASE1.md lista "14 flujos verificados" pero no especifica qué tipo de pruebas se corrieron (unitarias, integración, e2e, manuales). No hay evidencia de un plan de testing formal, suite de tests automatizados, ni criterios de aceptación con resultados de prueba.
Los 8 defectos S1 se detallan en la sección siguiente. Los defectos S2 más relevantes incluyen: sin alertas automáticas de mora para emprendedores, sin validación de montos negativos en cierres de caja, sin modo offline para checklists, y sin estado de confirmación visual en flujo de pago a emprendedores.
8 Defectos Críticos Bloqueantes
Estos defectos deben resolverse antes de que María José dependa de la plataforma para operaciones financieras críticas o supervisión diaria real.
hasPermission() y getDataScope() (ya implementados en lib/auth/permissions.ts) en cada uno de los 10 API routes antes de consultar Airtable. Tiempo estimado: 1–2 días.America/Santiago como timezone de referencia en toda la lógica temporal.localStorage antes de enviar. Si falla, mostrar modal de recuperación con los datos guardados. Implementar retry automático con backoff exponencial.localStorage para guardar el estado del checklist en tiempo real (debounce 2s). Al re-autenticar, ofrecer "Continuar donde dejaste" con los datos guardados.session: { strategy: 'database' } en NextAuth para invalidar sesiones inmediatamente al cambiar permisos.8 Decisiones sin Documentar
Un ADR (Architecture Decision Record) documenta el "por qué" de una decisión técnica. Sin ADRs, cualquier desarrollador nuevo parte de cero sin contexto. Créalo debe documentar estas 8 decisiones — no cambiarlas, documentarlas.
Documentar estos 8 ADRs es aproximadamente 1 día de trabajo para Sergio Gary (Créalo). No cambia ningún código — solo documenta lo que ya fue decidido. Sin esta documentación, el proyecto es técnicamente insostenible a largo plazo.
P0 esta semana · P1 en 2 semanas · P2 en 1 mes · P3 en Q3
P0 — Antes del 16 de mayo (urgente)
hasPermission() y getDataScope() ya implementados en lib/auth/permissions.ts a los 10 API routes. Actualmente la seguridad está solo en la UI.