[MCH-DOC-VAL] docs: Estandarizar épicas MCH-006 a MCH-010 con HU formales
Épicas actualizadas con formato SIMCO 4.0.1: - MCH-006: Onboarding Inteligente (4 HU, 13 SP) - MCH-007: Templates y Catálogos (4 HU, 8 SP) - MCH-008: Sistema de Fiados (5 HU, 13 SP) - MCH-009: Predicción Inventario (5 HU, 13 SP) - MCH-010: MCP Server (7 HU, 21 SP) Cambios aplicados: - Agregado story_points en frontmatter y metadata - Sección "Historias de Usuario" con formato Como/Quiero/Para - Criterios de Aceptación con formato [CA-XXX-N] - Tareas con formato [MCH-TT-XXX-NN] - Tabla resumen de Story Points IDs asignados: MCH-US-050 a MCH-US-096 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
8a540b4e94
commit
184d21d6ce
@ -7,8 +7,9 @@ status: Completado
|
||||
phase: 2
|
||||
priority: P1
|
||||
created_at: 2026-01-10
|
||||
updated_at: 2026-01-10
|
||||
simco_version: "3.8.0"
|
||||
updated_at: 2026-01-17
|
||||
simco_version: "4.0.1"
|
||||
story_points: 13
|
||||
dependencies:
|
||||
blocks: []
|
||||
depends_on: ["MCH-002", "MCH-003", "MCH-007", "MCH-011"]
|
||||
@ -21,6 +22,7 @@ dependencies:
|
||||
- **Fase:** 2 - Inteligencia
|
||||
- **Prioridad:** P1
|
||||
- **Estado:** Completado
|
||||
- **Story Points:** 13
|
||||
- **Fecha completado:** 2026-01-10
|
||||
|
||||
## Descripcion
|
||||
@ -157,4 +159,123 @@ Sistema de onboarding conversacional via WhatsApp que permite a los duenos confi
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-10
|
||||
## Historias de Usuario
|
||||
|
||||
### MCH-US-050: Flujo WhatsApp Onboarding
|
||||
**Story Points:** 5
|
||||
|
||||
**Como** dueno nuevo de negocio
|
||||
**Quiero** configurar mi negocio completamente via WhatsApp
|
||||
**Para** tener mi tienda lista sin necesidad de usar computadora
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-050-1] El bot envia mensaje de bienvenida al registrar numero
|
||||
- [CA-050-2] El flujo pregunta nombre del negocio y giro
|
||||
- [CA-050-3] El bot sugiere templates segun el giro seleccionado
|
||||
- [CA-050-4] El dueno puede completar setup en menos de 10 minutos
|
||||
- [CA-050-5] Al finalizar, el negocio queda activo con catalogo inicial
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-050-01 | Crear flujo de bienvenida en WhatsApp | 4h |
|
||||
| MCH-TT-050-02 | Implementar recoleccion de datos del negocio | 4h |
|
||||
| MCH-TT-050-03 | Integrar sugerencia de templates por giro | 3h |
|
||||
| MCH-TT-050-04 | Crear onboarding_sessions table y modelo | 2h |
|
||||
| MCH-TT-050-05 | Implementar tracking de progreso | 2h |
|
||||
| MCH-TT-050-06 | Testing end-to-end del flujo | 3h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-051: Carga de Producto por Foto
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** dueno de negocio
|
||||
**Quiero** enviar fotos de productos para que se agreguen automaticamente
|
||||
**Para** cargar mi inventario rapidamente sin escribir cada producto
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-051-1] El sistema detecta nombre del producto en la foto
|
||||
- [CA-051-2] El sistema extrae codigo de barras si es visible
|
||||
- [CA-051-3] El sistema detecta precio en etiqueta con >80% precision
|
||||
- [CA-051-4] El bot confirma los datos extraidos antes de guardar
|
||||
- [CA-051-5] El dueno puede corregir datos incorrectos
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-051-01 | Integrar Google Vision API / Tesseract | 4h |
|
||||
| MCH-TT-051-02 | Implementar deteccion de codigos de barras | 3h |
|
||||
| MCH-TT-051-03 | Crear pipeline de extraccion de texto | 3h |
|
||||
| MCH-TT-051-04 | Implementar matching con catalogo conocido | 2h |
|
||||
| MCH-TT-051-05 | Crear flujo de confirmacion/correccion | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-052: Precio por Audio
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** dueno de negocio
|
||||
**Quiero** dictar precios por voz
|
||||
**Para** actualizar multiples productos rapidamente mientras atiendo
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-052-1] El sistema transcribe notas de voz correctamente
|
||||
- [CA-052-2] El NLU extrae entidades producto-precio del audio
|
||||
- [CA-052-3] El bot confirma interpretacion antes de aplicar
|
||||
- [CA-052-4] Se pueden actualizar multiples productos en un audio
|
||||
- [CA-052-5] El dueno puede corregir interpretaciones incorrectas
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-052-01 | Integrar Whisper API para transcripcion | 3h |
|
||||
| MCH-TT-052-02 | Implementar NLU para extraer producto-precio | 4h |
|
||||
| MCH-TT-052-03 | Crear flujo de confirmacion interactiva | 2h |
|
||||
| MCH-TT-052-04 | Implementar actualizacion batch de precios | 2h |
|
||||
| MCH-TT-052-05 | Testing con diferentes acentos/ruido | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-053: Seleccion de Templates
|
||||
**Story Points:** 2
|
||||
|
||||
**Como** dueno de negocio
|
||||
**Quiero** elegir templates pre-cargados segun mi giro
|
||||
**Para** tener productos comunes listos sin cargarlos manualmente
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-053-1] Existen templates para abarrotes, papeleria, y giros comunes
|
||||
- [CA-053-2] Templates incluyen productos de Sabritas, Coca-Cola, Bimbo, Marinela
|
||||
- [CA-053-3] El dueno puede seleccionar uno o mas templates
|
||||
- [CA-053-4] Los productos del template se agregan al catalogo con precios sugeridos
|
||||
- [CA-053-5] El dueno puede ajustar precios despues de cargar
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-053-01 | Crear tabla product_templates | 2h |
|
||||
| MCH-TT-053-02 | Crear seeds de templates por proveedor | 4h |
|
||||
| MCH-TT-053-03 | Implementar seleccion multiple de templates | 2h |
|
||||
| MCH-TT-053-04 | Crear servicio de clonado a catalogo tenant | 2h |
|
||||
| MCH-TT-053-05 | Implementar ajuste de precios post-carga | 2h |
|
||||
|
||||
---
|
||||
|
||||
## Resumen de Story Points
|
||||
|
||||
| Historia | Descripcion | SP |
|
||||
|----------|-------------|----:|
|
||||
| MCH-US-050 | Flujo WhatsApp Onboarding | 5 |
|
||||
| MCH-US-051 | Carga de Producto por Foto | 3 |
|
||||
| MCH-US-052 | Precio por Audio | 3 |
|
||||
| MCH-US-053 | Seleccion de Templates | 2 |
|
||||
| **TOTAL** | | **13** |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-17
|
||||
|
||||
@ -6,9 +6,10 @@ code: MCH-007
|
||||
status: Completado
|
||||
phase: 2
|
||||
priority: P1
|
||||
story_points: 8
|
||||
created_at: 2026-01-10
|
||||
updated_at: 2026-01-10
|
||||
simco_version: "3.8.0"
|
||||
updated_at: 2026-01-17
|
||||
simco_version: "4.0.1"
|
||||
dependencies:
|
||||
blocks: ["MCH-006"]
|
||||
depends_on: ["MCH-003"]
|
||||
@ -21,6 +22,7 @@ dependencies:
|
||||
- **Fase:** 2 - Inteligencia
|
||||
- **Prioridad:** P1
|
||||
- **Estado:** Completado
|
||||
- **Story Points:** 8
|
||||
- **Fecha completado:** 2026-01-10
|
||||
|
||||
## Descripcion
|
||||
@ -186,4 +188,124 @@ templates/
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-10
|
||||
## Historias de Usuario
|
||||
|
||||
### MCH-US-060: Catalogo por Proveedor
|
||||
**Como** sistema
|
||||
**Quiero** tener templates de productos organizados por proveedor (Sabritas, Coca-Cola, Bimbo, etc.)
|
||||
**Para** ofrecer catalogos estructurados y actualizados a los usuarios
|
||||
|
||||
**Story Points:** 2
|
||||
|
||||
**Criterios de Aceptacion:**
|
||||
- [CA-060-1] Templates de al menos 5 proveedores principales disponibles
|
||||
- [CA-060-2] Cada template incluye metadata del proveedor (nombre, logo, categoria)
|
||||
- [CA-060-3] Productos incluyen SKU, nombre, barcode, precio sugerido e imagen
|
||||
- [CA-060-4] Endpoint GET /templates/providers retorna lista de proveedores
|
||||
- [CA-060-5] Endpoint GET /templates/providers/:provider retorna productos del proveedor
|
||||
|
||||
**Tareas:**
|
||||
|
||||
| ID | Tarea | Tipo | Estado |
|
||||
|----|-------|------|--------|
|
||||
| MCH-TT-060-01 | Crear estructura de carpetas para templates por proveedor | Backend | Completado |
|
||||
| MCH-TT-060-02 | Implementar modelo product_templates | Backend | Completado |
|
||||
| MCH-TT-060-03 | Crear seeds de Sabritas (150+ SKUs) | Data | Completado |
|
||||
| MCH-TT-060-04 | Crear seeds de Coca-Cola (100+ SKUs) | Data | Completado |
|
||||
| MCH-TT-060-05 | Crear seeds de Bimbo/Marinela | Data | Completado |
|
||||
| MCH-TT-060-06 | Implementar endpoints de proveedores | Backend | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-061: Templates por Giro de Negocio
|
||||
**Como** dueno de tienda
|
||||
**Quiero** ver productos sugeridos segun mi tipo de negocio (abarrotes, papeleria, farmacia)
|
||||
**Para** configurar rapidamente mi catalogo con productos relevantes
|
||||
|
||||
**Story Points:** 2
|
||||
|
||||
**Criterios de Aceptacion:**
|
||||
- [CA-061-1] Templates disponibles para giros: abarrotes, papeleria, farmacia, ferreteria
|
||||
- [CA-061-2] Cada giro incluye categorias sugeridas y proveedores comunes
|
||||
- [CA-061-3] Sistema sugiere templates basado en giro seleccionado en onboarding
|
||||
- [CA-061-4] Endpoint GET /templates/giros retorna lista de giros disponibles
|
||||
- [CA-061-5] Endpoint GET /templates/giros/:giro retorna productos recomendados
|
||||
|
||||
**Tareas:**
|
||||
|
||||
| ID | Tarea | Tipo | Estado |
|
||||
|----|-------|------|--------|
|
||||
| MCH-TT-061-01 | Definir estructura JSON para templates por giro | Backend | Completado |
|
||||
| MCH-TT-061-02 | Crear template giro abarrotes | Data | Completado |
|
||||
| MCH-TT-061-03 | Crear template giro papeleria | Data | Completado |
|
||||
| MCH-TT-061-04 | Crear template giro farmacia | Data | Completado |
|
||||
| MCH-TT-061-05 | Crear template giro ferreteria | Data | Completado |
|
||||
| MCH-TT-061-06 | Implementar endpoints de giros | Backend | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-062: Importar Template a Catalogo
|
||||
**Como** dueno de tienda
|
||||
**Quiero** importar un template completo de productos a mi catalogo
|
||||
**Para** poblar rapidamente mi inventario sin agregar productos uno por uno
|
||||
|
||||
**Story Points:** 3
|
||||
|
||||
**Criterios de Aceptacion:**
|
||||
- [CA-062-1] Importacion de 100 productos en menos de 5 segundos
|
||||
- [CA-062-2] Productos importados mantienen imagenes y barcodes originales
|
||||
- [CA-062-3] Dueno puede ajustar precios despues de importar
|
||||
- [CA-062-4] Sistema registra historial de imports por tenant (template_imports)
|
||||
- [CA-062-5] Endpoint POST /templates/import acepta template_id y opciones
|
||||
- [CA-062-6] No se duplican productos si ya existen en el catalogo del tenant
|
||||
|
||||
**Tareas:**
|
||||
|
||||
| ID | Tarea | Tipo | Estado |
|
||||
|----|-------|------|--------|
|
||||
| MCH-TT-062-01 | Implementar modelo template_imports | Backend | Completado |
|
||||
| MCH-TT-062-02 | Crear servicio de importacion masiva | Backend | Completado |
|
||||
| MCH-TT-062-03 | Implementar deteccion de duplicados por barcode | Backend | Completado |
|
||||
| MCH-TT-062-04 | Crear endpoint POST /templates/import | Backend | Completado |
|
||||
| MCH-TT-062-05 | Optimizar performance de importacion | Backend | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-063: Buscar en Templates
|
||||
**Como** dueno de tienda
|
||||
**Quiero** buscar productos en el catalogo global de templates
|
||||
**Para** encontrar y agregar productos especificos sin navegar todo el catalogo
|
||||
|
||||
**Story Points:** 1
|
||||
|
||||
**Criterios de Aceptacion:**
|
||||
- [CA-063-1] Busqueda por nombre de producto funciona
|
||||
- [CA-063-2] Busqueda por barcode funciona
|
||||
- [CA-063-3] Busqueda por SKU funciona
|
||||
- [CA-063-4] Resultados incluyen proveedor y precio sugerido
|
||||
- [CA-063-5] Endpoint GET /templates/search acepta query y filtros
|
||||
|
||||
**Tareas:**
|
||||
|
||||
| ID | Tarea | Tipo | Estado |
|
||||
|----|-------|------|--------|
|
||||
| MCH-TT-063-01 | Implementar busqueda por texto en templates | Backend | Completado |
|
||||
| MCH-TT-063-02 | Implementar busqueda por barcode | Backend | Completado |
|
||||
| MCH-TT-063-03 | Crear endpoint GET /templates/search | Backend | Completado |
|
||||
| MCH-TT-063-04 | Agregar filtros por proveedor y categoria | Backend | Completado |
|
||||
|
||||
---
|
||||
|
||||
## Resumen de Story Points
|
||||
|
||||
| Historia | Descripcion | SP | Estado |
|
||||
|----------|-------------|---:|--------|
|
||||
| MCH-US-060 | Catalogo por Proveedor | 2 | Completado |
|
||||
| MCH-US-061 | Templates por Giro de Negocio | 2 | Completado |
|
||||
| MCH-US-062 | Importar Template a Catalogo | 3 | Completado |
|
||||
| MCH-US-063 | Buscar en Templates | 1 | Completado |
|
||||
| **TOTAL** | | **8** | |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-17
|
||||
|
||||
@ -8,7 +8,8 @@ phase: 2
|
||||
priority: P1
|
||||
created_at: 2026-01-10
|
||||
updated_at: 2026-01-10
|
||||
simco_version: "3.8.0"
|
||||
story_points: 13
|
||||
simco_version: "4.0.1"
|
||||
dependencies:
|
||||
blocks: ["MCH-017"]
|
||||
depends_on: ["MCH-002", "MCH-004", "MCH-014"]
|
||||
@ -21,6 +22,7 @@ dependencies:
|
||||
- **Fase:** 2 - Inteligencia
|
||||
- **Prioridad:** P1
|
||||
- **Estado:** Completado
|
||||
- **Story Points:** 13
|
||||
- **Fecha completado:** 2026-01-10
|
||||
|
||||
## Descripcion
|
||||
@ -178,4 +180,138 @@ Sistema de credito informal ("fiados") tradicional en Mexico: permite a clientes
|
||||
|
||||
---
|
||||
|
||||
## Historias de Usuario
|
||||
|
||||
### MCH-US-070: Habilitar Credito Cliente
|
||||
**Story Points:** 2
|
||||
|
||||
Como **dueno de changarrito**
|
||||
Quiero **habilitar fiados para clientes de confianza con limites personalizados**
|
||||
Para **ofrecer credito informal a clientes frecuentes sin perder control del riesgo**
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-070-1] El dueno puede activar/desactivar credito desde la ficha del cliente
|
||||
- [CA-070-2] Se puede definir un limite de credito entre $100 y el maximo configurado por tenant
|
||||
- [CA-070-3] El sistema muestra el limite disponible y saldo actual
|
||||
- [CA-070-4] Solo el rol dueno puede habilitar creditos
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-070-01 | Endpoint POST /customers/:id/credit/enable | 2h |
|
||||
| MCH-TT-070-02 | Endpoint PUT /customers/:id/credit/limit | 2h |
|
||||
| MCH-TT-070-03 | UI toggle y campo limite en CustomerDetail | 3h |
|
||||
| MCH-TT-070-04 | Validaciones de permisos y limites | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-071: Venta a Credito
|
||||
**Story Points:** 3
|
||||
|
||||
Como **empleado de changarrito**
|
||||
Quiero **registrar ventas a fiado desde el POS seleccionando el cliente**
|
||||
Para **agilizar la venta a credito sin procesos adicionales**
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-071-1] En el POS aparece opcion "Fiado" solo si el cliente tiene credito habilitado
|
||||
- [CA-071-2] El sistema valida que saldo + venta no exceda el limite
|
||||
- [CA-071-3] Si excede limite, muestra mensaje y bloquea la operacion
|
||||
- [CA-071-4] La venta actualiza automaticamente el saldo del cliente
|
||||
- [CA-071-5] Se genera registro en credit_transactions tipo "charge"
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-071-01 | Logica de validacion de credito en SalesService | 3h |
|
||||
| MCH-TT-071-02 | Integracion metodo pago "Fiado" en POS | 3h |
|
||||
| MCH-TT-071-03 | Actualizacion automatica de saldo | 2h |
|
||||
| MCH-TT-071-04 | Tests de flujo de venta a credito | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-072: Registrar Abono
|
||||
**Story Points:** 2
|
||||
|
||||
Como **dueno de changarrito**
|
||||
Quiero **registrar pagos parciales o totales de clientes con fiado**
|
||||
Para **mantener actualizado el saldo y generar comprobantes de pago**
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-072-1] Se puede registrar abono desde la ficha del cliente
|
||||
- [CA-072-2] El monto del abono no puede exceder el saldo pendiente
|
||||
- [CA-072-3] El sistema actualiza el saldo inmediatamente
|
||||
- [CA-072-4] Se genera recibo de pago imprimible
|
||||
- [CA-072-5] El abono queda registrado en credit_transactions tipo "payment"
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-072-01 | Endpoint POST /customers/:id/credit/payment | 2h |
|
||||
| MCH-TT-072-02 | UI formulario de abono con validaciones | 3h |
|
||||
| MCH-TT-072-03 | Generacion de recibo de pago | 2h |
|
||||
| MCH-TT-072-04 | Actualizacion de last_payment_at | 1h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-073: Recordatorios WhatsApp
|
||||
**Story Points:** 3
|
||||
|
||||
Como **sistema**
|
||||
Quiero **enviar recordatorios de pago automaticos via WhatsApp a clientes con saldo pendiente**
|
||||
Para **reducir la cartera vencida sin intervencion manual del dueno**
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-073-1] El cron diario identifica clientes con saldo > X dias sin pago
|
||||
- [CA-073-2] Se envia mensaje WhatsApp personalizado con nombre, saldo y negocio
|
||||
- [CA-073-3] Los dias de recordatorio son configurables por tenant (ej: 7, 14, 30)
|
||||
- [CA-073-4] Se registra cada envio de recordatorio en el sistema
|
||||
- [CA-073-5] No se envian mas de 1 recordatorio por semana al mismo cliente
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-073-01 | CronJob de revision de cuentas vencidas | 3h |
|
||||
| MCH-TT-073-02 | Integracion con WhatsApp Service | 4h |
|
||||
| MCH-TT-073-03 | Templates de mensajes configurables | 2h |
|
||||
| MCH-TT-073-04 | Registro y control de envios | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-074: Reporte Cartera
|
||||
**Story Points:** 3
|
||||
|
||||
Como **dueno de changarrito**
|
||||
Quiero **ver el estado consolidado de todos los fiados pendientes**
|
||||
Para **tomar decisiones sobre creditos y priorizar cobranza**
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-074-1] Dashboard muestra total de cartera (suma de saldos pendientes)
|
||||
- [CA-074-2] Lista de clientes ordenada por saldo descendente
|
||||
- [CA-074-3] Indicador de dias desde ultimo pago por cliente
|
||||
- [CA-074-4] Filtros por rango de fechas y estado (activo/bloqueado)
|
||||
- [CA-074-5] Exportable a PDF/Excel
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-074-01 | Endpoint GET /credit/portfolio con agregaciones | 3h |
|
||||
| MCH-TT-074-02 | Endpoint GET /credit/overdue con filtros | 2h |
|
||||
| MCH-TT-074-03 | Componente CreditDashboard | 4h |
|
||||
| MCH-TT-074-04 | Exportacion PDF/Excel | 3h |
|
||||
|
||||
---
|
||||
|
||||
## Resumen de Story Points
|
||||
|
||||
| Historia | Titulo | SP |
|
||||
|----------|--------|---:|
|
||||
| MCH-US-070 | Habilitar Credito Cliente | 2 |
|
||||
| MCH-US-071 | Venta a Credito | 3 |
|
||||
| MCH-US-072 | Registrar Abono | 2 |
|
||||
| MCH-US-073 | Recordatorios WhatsApp | 3 |
|
||||
| MCH-US-074 | Reporte Cartera | 3 |
|
||||
| **TOTAL** | | **13** |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-10
|
||||
|
||||
@ -6,9 +6,10 @@ code: MCH-009
|
||||
status: Completado
|
||||
phase: 2
|
||||
priority: P1
|
||||
story_points: 13
|
||||
created_at: 2026-01-10
|
||||
updated_at: 2026-01-10
|
||||
simco_version: "3.8.0"
|
||||
updated_at: 2026-01-17
|
||||
simco_version: "4.0.1"
|
||||
dependencies:
|
||||
blocks: ["MCH-012"]
|
||||
depends_on: ["MCH-003", "MCH-004", "MCH-007"]
|
||||
@ -21,6 +22,7 @@ dependencies:
|
||||
- **Fase:** 2 - Inteligencia
|
||||
- **Prioridad:** P1
|
||||
- **Estado:** Completado
|
||||
- **Story Points:** 13
|
||||
- **Fecha completado:** 2026-01-10
|
||||
|
||||
## Descripcion
|
||||
@ -190,4 +192,164 @@ Dias_inventario = Stock_actual / Demanda_diaria
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-10
|
||||
## Historias de Usuario
|
||||
|
||||
### MCH-US-080: Alertas de Stock Bajo
|
||||
|
||||
**Como** dueno de changarrito
|
||||
**Quiero** recibir alertas cuando un producto esta por agotarse
|
||||
**Para** poder reabastecer a tiempo y no perder ventas
|
||||
|
||||
- **Story Points:** 3
|
||||
- **Prioridad:** P1
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
|
||||
| ID | Criterio |
|
||||
|----|----------|
|
||||
| CA-080-1 | Sistema detecta cuando stock actual < min_stock configurado |
|
||||
| CA-080-2 | Se genera notificacion push al dispositivo del dueno |
|
||||
| CA-080-3 | Alerta visible en dashboard con indicador visual claro |
|
||||
| CA-080-4 | Lista de productos en alerta ordenada por urgencia |
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-080-01 | Implementar detector de stock bajo en backend | 2h |
|
||||
| MCH-TT-080-02 | Crear endpoint GET /inventory/low-stock | 1h |
|
||||
| MCH-TT-080-03 | Configurar notificaciones push | 2h |
|
||||
| MCH-TT-080-04 | Componente AlertList en dashboard | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-081: Prediccion de Demanda
|
||||
|
||||
**Como** dueno de changarrito
|
||||
**Quiero** ver predicciones de venta para los proximos dias
|
||||
**Para** planificar mis compras con anticipacion
|
||||
|
||||
- **Story Points:** 3
|
||||
- **Prioridad:** P1
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
|
||||
| ID | Criterio |
|
||||
|----|----------|
|
||||
| CA-081-1 | Prediccion usa promedio movil ponderado de 4 semanas |
|
||||
| CA-081-2 | Precision de prediccion >70% en productos con historial |
|
||||
| CA-081-3 | Muestra demanda estimada por producto para proxima semana |
|
||||
| CA-081-4 | Calcula dias de inventario restantes por producto |
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-081-01 | Implementar algoritmo promedio movil ponderado | 3h |
|
||||
| MCH-TT-081-02 | Crear predictions.service.ts | 2h |
|
||||
| MCH-TT-081-03 | Endpoint GET /inventory/predictions | 1h |
|
||||
| MCH-TT-081-04 | Cache de predicciones en tabla inventory_predictions | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-082: Sugerencias de Reorden
|
||||
|
||||
**Como** dueno de changarrito
|
||||
**Quiero** recibir sugerencias de que productos reabastecer y en que cantidad
|
||||
**Para** optimizar mis compras y no quedarme sin stock
|
||||
|
||||
- **Story Points:** 3
|
||||
- **Prioridad:** P1
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
|
||||
| ID | Criterio |
|
||||
|----|----------|
|
||||
| CA-082-1 | Calcula punto de reorden basado en lead time y stock de seguridad |
|
||||
| CA-082-2 | Sugiere cantidad optima a pedir por producto |
|
||||
| CA-082-3 | Lista ordenada por prioridad (mas urgente primero) |
|
||||
| CA-082-4 | Permite marcar sugerencia como "Pedido realizado" |
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-082-01 | Implementar calculo de punto de reorden | 2h |
|
||||
| MCH-TT-082-02 | Crear tabla reorder_suggestions | 1h |
|
||||
| MCH-TT-082-03 | Endpoint GET /inventory/reorder-suggestions | 1h |
|
||||
| MCH-TT-082-04 | Componente ReorderList con acciones | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-083: Productos Sin Movimiento
|
||||
|
||||
**Como** dueno de changarrito
|
||||
**Quiero** identificar productos que no se han vendido en mucho tiempo
|
||||
**Para** tomar decisiones sobre promociones o descontinuarlos
|
||||
|
||||
- **Story Points:** 2
|
||||
- **Prioridad:** P2
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
|
||||
| ID | Criterio |
|
||||
|----|----------|
|
||||
| CA-083-1 | Detecta productos sin ventas en X dias (configurable, default 30) |
|
||||
| CA-083-2 | Muestra ultima fecha de venta por producto |
|
||||
| CA-083-3 | Calcula valor de inventario estancado |
|
||||
| CA-083-4 | Sugiere acciones (promocion, liquidacion) |
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-083-01 | Query para detectar productos sin movimiento | 1h |
|
||||
| MCH-TT-083-02 | Endpoint GET /inventory/slow-moving | 1h |
|
||||
| MCH-TT-083-03 | Vista de productos estancados en UI | 2h |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-084: Reporte Semanal Automatico
|
||||
|
||||
**Como** dueno de changarrito
|
||||
**Quiero** recibir un resumen semanal de inventario via WhatsApp
|
||||
**Para** mantenerme informado sin entrar a la app constantemente
|
||||
|
||||
- **Story Points:** 2
|
||||
- **Prioridad:** P2
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
|
||||
| ID | Criterio |
|
||||
|----|----------|
|
||||
| CA-084-1 | Reporte se envia automaticamente los lunes a las 8am |
|
||||
| CA-084-2 | Incluye top 10 productos mas vendidos de la semana |
|
||||
| CA-084-3 | Lista productos que necesitan reorden urgente |
|
||||
| CA-084-4 | Muestra productos sin movimiento |
|
||||
| CA-084-5 | Formato legible y conciso para WhatsApp |
|
||||
|
||||
#### Tareas
|
||||
|
||||
| ID | Tarea | Estimacion |
|
||||
|----|-------|------------|
|
||||
| MCH-TT-084-01 | Crear cron job semanal | 1h |
|
||||
| MCH-TT-084-02 | Generar reporte consolidado | 2h |
|
||||
| MCH-TT-084-03 | Integrar envio via WhatsApp API | 2h |
|
||||
| MCH-TT-084-04 | Template de mensaje formateado | 1h |
|
||||
|
||||
---
|
||||
|
||||
## Resumen de Story Points
|
||||
|
||||
| Historia | Descripcion | SP |
|
||||
|----------|-------------|---:|
|
||||
| MCH-US-080 | Alertas de Stock Bajo | 3 |
|
||||
| MCH-US-081 | Prediccion de Demanda | 3 |
|
||||
| MCH-US-082 | Sugerencias de Reorden | 3 |
|
||||
| MCH-US-083 | Productos Sin Movimiento | 2 |
|
||||
| MCH-US-084 | Reporte Semanal Automatico | 2 |
|
||||
| | **TOTAL EPIC MCH-009** | **13** |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-17
|
||||
|
||||
@ -7,8 +7,9 @@ status: Completado
|
||||
phase: 3
|
||||
priority: P0
|
||||
created_at: 2026-01-10
|
||||
updated_at: 2026-01-10
|
||||
simco_version: "3.8.0"
|
||||
updated_at: 2026-01-17
|
||||
simco_version: "4.0.1"
|
||||
story_points: 21
|
||||
dependencies:
|
||||
blocks: ["MCH-011", "MCH-012", "MCH-013"]
|
||||
depends_on: ["MCH-001", "MCH-002", "MCH-003", "MCH-004"]
|
||||
@ -21,6 +22,7 @@ dependencies:
|
||||
- **Fase:** 3 - Asistente IA
|
||||
- **Prioridad:** P0
|
||||
- **Estado:** Completado
|
||||
- **Story Points:** 21
|
||||
- **Fecha completado:** 2026-01-10
|
||||
|
||||
## Descripcion
|
||||
@ -239,4 +241,172 @@ Gateway LLM agnostico usando el protocolo MCP (Model Context Protocol) de Anthro
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-10
|
||||
## Historias de Usuario
|
||||
|
||||
### MCH-US-090: Gateway LLM Agnostico
|
||||
**Story Points:** 5
|
||||
|
||||
**Como** sistema
|
||||
**Quiero** conectar multiples proveedores LLM a traves de un gateway unificado
|
||||
**Para** tener flexibilidad en la eleccion de modelos y evitar vendor lock-in
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-090-1] El gateway soporta OpenRouter como proveedor por defecto
|
||||
- [CA-090-2] El gateway permite configurar Claude API directo como alternativa
|
||||
- [CA-090-3] El gateway permite configurar GPT-4 API como alternativa
|
||||
- [CA-090-4] El cambio de proveedor no afecta la interfaz de los clientes
|
||||
- [CA-090-5] La configuracion de proveedores es por variables de entorno
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-090-01 | Implementar cliente OpenRouter | 2 | Completado |
|
||||
| MCH-TT-090-02 | Implementar cliente Anthropic | 1 | Completado |
|
||||
| MCH-TT-090-03 | Implementar router de proveedores | 1 | Completado |
|
||||
| MCH-TT-090-04 | Configuracion por entorno | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-091: Tools de Productos
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** LLM
|
||||
**Quiero** buscar y actualizar productos del negocio
|
||||
**Para** responder consultas sobre catalogo y modificar precios cuando se solicite
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-091-1] Tool search_products busca por nombre y categoria
|
||||
- [CA-091-2] Tool get_product_stock retorna stock actual del producto
|
||||
- [CA-091-3] Tool update_product_price actualiza precio con validacion
|
||||
- [CA-091-4] Todos los tools validan tenant_id del contexto
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-091-01 | Implementar search_products tool | 1 | Completado |
|
||||
| MCH-TT-091-02 | Implementar get_product_stock tool | 1 | Completado |
|
||||
| MCH-TT-091-03 | Implementar update_product_price tool | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-092: Tools de Ventas
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** LLM
|
||||
**Quiero** consultar ventas y generar reportes
|
||||
**Para** proporcionar informacion financiera al dueno del negocio
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-092-1] Tool get_daily_sales retorna ventas del dia o fecha especificada
|
||||
- [CA-092-2] Tool get_sales_report genera reporte por rango de fechas
|
||||
- [CA-092-3] Los reportes incluyen totales, conteos y desglose
|
||||
- [CA-092-4] Los datos respetan el tenant_id del contexto
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-092-01 | Implementar get_daily_sales tool | 1 | Completado |
|
||||
| MCH-TT-092-02 | Implementar get_sales_report tool | 2 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-093: Tools de Inventario
|
||||
**Story Points:** 2
|
||||
|
||||
**Como** LLM
|
||||
**Quiero** consultar stock y alertas de inventario
|
||||
**Para** informar al dueno sobre productos que necesitan reabastecimiento
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-093-1] Tool get_low_stock_products lista productos bajo minimo
|
||||
- [CA-093-2] Tool get_inventory_value calcula valor total del inventario
|
||||
- [CA-093-3] Los resultados respetan el tenant_id del contexto
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-093-01 | Implementar get_low_stock_products tool | 1 | Completado |
|
||||
| MCH-TT-093-02 | Implementar get_inventory_value tool | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-094: Tools de Clientes
|
||||
**Story Points:** 2
|
||||
|
||||
**Como** LLM
|
||||
**Quiero** buscar clientes y consultar fiados
|
||||
**Para** gestionar la relacion con clientes y sus deudas
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-094-1] Tool search_customers busca por nombre o telefono
|
||||
- [CA-094-2] Tool get_customer_balance retorna saldo de fiado
|
||||
- [CA-094-3] Los datos respetan el tenant_id del contexto
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-094-01 | Implementar search_customers tool | 1 | Completado |
|
||||
| MCH-TT-094-02 | Implementar get_customer_balance tool | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-095: Rate Limiting de Tokens
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** sistema
|
||||
**Quiero** controlar el consumo de tokens por tenant
|
||||
**Para** evitar costos excesivos y garantizar uso justo
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-095-1] Limite de 4000 tokens por request
|
||||
- [CA-095-2] Limite de 50000 tokens por dia por tenant
|
||||
- [CA-095-3] El sistema rechaza requests que excedan limites
|
||||
- [CA-095-4] Los contadores se reinician cada 24 horas
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-095-01 | Implementar contador de tokens por request | 1 | Completado |
|
||||
| MCH-TT-095-02 | Implementar limite diario por tenant | 1 | Completado |
|
||||
| MCH-TT-095-03 | Implementar middleware de validacion | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
### MCH-US-096: Logging de Conversaciones
|
||||
**Story Points:** 3
|
||||
|
||||
**Como** sistema
|
||||
**Quiero** registrar todas las conversaciones con el LLM
|
||||
**Para** auditoria, debugging y mejora continua del asistente
|
||||
|
||||
#### Criterios de Aceptacion
|
||||
- [CA-096-1] Se registra cada conversacion con tenant_id, user_id y channel
|
||||
- [CA-096-2] Se registra cada mensaje con rol, contenido, tokens y modelo
|
||||
- [CA-096-3] Se registran tool_calls con parametros, resultado y duracion
|
||||
- [CA-096-4] Los logs son consultables via endpoint /mcp/history
|
||||
|
||||
#### Tareas
|
||||
| ID | Tarea | SP | Estado |
|
||||
|----|-------|-----|--------|
|
||||
| MCH-TT-096-01 | Crear tabla conversations | 1 | Completado |
|
||||
| MCH-TT-096-02 | Crear tabla messages | 1 | Completado |
|
||||
| MCH-TT-096-03 | Crear tabla tool_calls | 1 | Completado |
|
||||
|
||||
---
|
||||
|
||||
## Resumen de Story Points
|
||||
|
||||
| Historia | Descripcion | SP | Estado |
|
||||
|----------|-------------|-----|--------|
|
||||
| MCH-US-090 | Gateway LLM Agnostico | 5 | Completado |
|
||||
| MCH-US-091 | Tools de Productos | 3 | Completado |
|
||||
| MCH-US-092 | Tools de Ventas | 3 | Completado |
|
||||
| MCH-US-093 | Tools de Inventario | 2 | Completado |
|
||||
| MCH-US-094 | Tools de Clientes | 2 | Completado |
|
||||
| MCH-US-095 | Rate Limiting de Tokens | 3 | Completado |
|
||||
| MCH-US-096 | Logging de Conversaciones | 3 | Completado |
|
||||
| **TOTAL** | | **21** | |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-17
|
||||
|
||||
Loading…
Reference in New Issue
Block a user