From 184d21d6ce8af97993c75d13e68c1251e5273292 Mon Sep 17 00:00:00 2001 From: rckrdmrd Date: Sat, 17 Jan 2026 04:28:53 -0600 Subject: [PATCH] =?UTF-8?q?[MCH-DOC-VAL]=20docs:=20Estandarizar=20=C3=A9pi?= =?UTF-8?q?cas=20MCH-006=20a=20MCH-010=20con=20HU=20formales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit É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 --- .../MCH-006-onboarding-inteligente.md | 127 ++++++++++++- docs/01-epicas/MCH-007-templates-catalogos.md | 128 ++++++++++++- docs/01-epicas/MCH-008-sistema-fiados.md | 138 +++++++++++++- .../MCH-009-prediccion-inventario.md | 168 ++++++++++++++++- docs/01-epicas/MCH-010-mcp-server.md | 176 +++++++++++++++++- 5 files changed, 724 insertions(+), 13 deletions(-) diff --git a/docs/01-epicas/MCH-006-onboarding-inteligente.md b/docs/01-epicas/MCH-006-onboarding-inteligente.md index e851912fb..ae2364310 100644 --- a/docs/01-epicas/MCH-006-onboarding-inteligente.md +++ b/docs/01-epicas/MCH-006-onboarding-inteligente.md @@ -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 diff --git a/docs/01-epicas/MCH-007-templates-catalogos.md b/docs/01-epicas/MCH-007-templates-catalogos.md index ab655f2da..03b377f6f 100644 --- a/docs/01-epicas/MCH-007-templates-catalogos.md +++ b/docs/01-epicas/MCH-007-templates-catalogos.md @@ -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 diff --git a/docs/01-epicas/MCH-008-sistema-fiados.md b/docs/01-epicas/MCH-008-sistema-fiados.md index 696470b46..bc3a927b1 100644 --- a/docs/01-epicas/MCH-008-sistema-fiados.md +++ b/docs/01-epicas/MCH-008-sistema-fiados.md @@ -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 diff --git a/docs/01-epicas/MCH-009-prediccion-inventario.md b/docs/01-epicas/MCH-009-prediccion-inventario.md index 354871f44..24381f517 100644 --- a/docs/01-epicas/MCH-009-prediccion-inventario.md +++ b/docs/01-epicas/MCH-009-prediccion-inventario.md @@ -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 diff --git a/docs/01-epicas/MCH-010-mcp-server.md b/docs/01-epicas/MCH-010-mcp-server.md index e0e1996ed..4a76745c9 100644 --- a/docs/01-epicas/MCH-010-mcp-server.md +++ b/docs/01-epicas/MCH-010-mcp-server.md @@ -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