michangarrito/backups/orchestration-backup-2026-01-10/orchestration/analisis/PLAN-EJECUCION-PURGA-DOCUMENTAL-2026-01-10.md
rckrdmrd 97f407c661 [MIGRATION-V2] feat: Migrar michangarrito a estructura v2
- Prefijo v2: MCH
- TRACEABILITY-MASTER.yml creado
- Listo para integracion como submodulo

Workspace: v2.0.0 | SIMCO: v4.0.0
2026-01-10 11:28:54 -06:00

620 lines
16 KiB
Markdown

# PLAN DE EJECUCION - PURGA Y REESTRUCTURACION DOCUMENTAL
**Proyecto:** MiChangarrito
**Fecha:** 2026-01-10
**Estado:** PLANEACION COMPLETADA - PENDIENTE APROBACION
**Documento Base:** ANALISIS-CONSOLIDADO-PURGA-DOCUMENTAL-2026-01-10.md
---
## RESUMEN DEL PLAN
| Metrica | Valor |
|---------|-------|
| Total de tareas | 16 |
| Archivos a modificar | 5 |
| Archivos a crear | 4 |
| Archivos a eliminar | 1 |
| Archivos a archivar | 5 |
| Fases de ejecucion | 6 |
---
## FASE 0: PREPARACION (PRE-REQUISITO)
### Tarea 0.1: Crear Backup de Documentacion
**Descripcion:** Crear respaldo completo de toda la documentacion antes de iniciar cambios.
**Comandos:**
```bash
cd /home/isem/workspace-v1/projects/michangarrito
mkdir -p backups/docs-backup-2026-01-10
cp -r docs/ backups/docs-backup-2026-01-10/
cp -r orchestration/ backups/orchestration-backup-2026-01-10/
```
**Validacion:**
- [ ] Carpeta backup creada
- [ ] Contenido copiado correctamente
- [ ] Verificar conteo de archivos igual al original
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
### Tarea 0.2: Crear Estructura de Archivado
**Descripcion:** Crear carpeta para archivos historicos obsoletos.
**Comandos:**
```bash
mkdir -p /home/isem/workspace-v1/projects/michangarrito/orchestration/analisis/historico
```
**Validacion:**
- [ ] Carpeta historico/ creada
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
## FASE 1: ARCHIVADO DE DOCUMENTOS OBSOLETOS
### Tarea 1.1: Mover Archivos Obsoletos a Historico
**Descripcion:** Mover 5 archivos de analisis obsoletos a la carpeta historico/.
**Archivos a mover:**
| Archivo Origen | Archivo Destino |
|---------------|-----------------|
| orchestration/analisis/ANALISIS-FASE1-2026-01-06.md | orchestration/analisis/historico/ |
| orchestration/analisis/DEPENDENCIAS-ARCHIVOS-2026-01-06.md | orchestration/analisis/historico/ |
| orchestration/analisis/PLAN-FASE2-DETALLADO-2026-01-06.md | orchestration/analisis/historico/ |
| orchestration/analisis/PLAN-REFINADO-FINAL-2026-01-06.md | orchestration/analisis/historico/ |
| orchestration/analisis/VALIDACION-PLAN-VS-ANALISIS-2026-01-06.md | orchestration/analisis/historico/ |
**Comandos:**
```bash
cd /home/isem/workspace-v1/projects/michangarrito/orchestration/analisis
mv ANALISIS-FASE1-2026-01-06.md historico/
mv DEPENDENCIAS-ARCHIVOS-2026-01-06.md historico/
mv PLAN-FASE2-DETALLADO-2026-01-06.md historico/
mv PLAN-REFINADO-FINAL-2026-01-06.md historico/
mv VALIDACION-PLAN-VS-ANALISIS-2026-01-06.md historico/
```
**Validacion:**
- [ ] 5 archivos movidos correctamente
- [ ] Archivos accesibles en historico/
- [ ] No hay referencias rotas
**Dependencias:** Tarea 0.2
**Riesgo:** Bajo
---
## FASE 2: ELIMINACION DE DUPLICADOS
### Tarea 2.1: Extraer Contenido Unico de Duplicado
**Descripcion:** Antes de eliminar, extraer tabla de convenciones del archivo duplicado.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/90-transversal/arquitectura/ARQUITECTURA-DATABASE.md`
**Contenido a extraer (lineas 119-137):**
- Tabla de convenciones de nomenclatura
- Agregar al archivo canonico en 02-especificaciones/ARQUITECTURA-DATABASE.md
**Validacion:**
- [ ] Contenido unico identificado
- [ ] Contenido copiado al archivo canonico
- [ ] Verificar que no se pierde informacion
**Dependencias:** Ninguna
**Riesgo:** Medio
---
### Tarea 2.2: Eliminar Archivo Duplicado
**Descripcion:** Eliminar archivo duplicado despues de extraer contenido unico.
**Comandos:**
```bash
rm /home/isem/workspace-v1/projects/michangarrito/docs/90-transversal/arquitectura/ARQUITECTURA-DATABASE.md
# Si la carpeta queda vacia:
rmdir /home/isem/workspace-v1/projects/michangarrito/docs/90-transversal/arquitectura/
```
**Validacion:**
- [ ] Archivo eliminado
- [ ] Verificar que no hay referencias rotas en otros documentos
**Dependencias:** Tarea 2.1
**Riesgo:** Bajo
---
## FASE 3: ACTUALIZACION DE DOCUMENTOS MAESTROS
### Tarea 3.1: Actualizar docs/_MAP.md - Seccion Especificaciones
**Descripcion:** Corregir la seccion 02-especificaciones/ para reflejar archivos reales.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/_MAP.md`
**Cambio (lineas 80-86):**
**DE:**
```markdown
├── 02-especificaciones/
│ ├── CATALOGO-PRODUCTOS.md <- Gestion de catalogo
├── TEMPLATE-PRODUCTOS.md <- Templates de productos
├── POS-BASICO.md <- Punto de venta
├── VENTAS-DIARIAS.md <- Registro de ventas
├── CALCULADORA-CAMBIO.md <- Logica de cambio
└── INTEGRACIONES-PAGOS.md <- Mercado Pago, Clip, CoDi
```
**A:**
```markdown
├── 02-especificaciones/
│ ├── _MAP.md <- Indice local de especificaciones
├── ARQUITECTURA-DATABASE.md <- Schema completo BD (9 schemas, 29 tablas)
├── ESPECIFICACION-COMPONENTES.md <- Stack tecnico y modulos
├── INTEGRACIONES-EXTERNAS.md <- 9 integraciones (Stripe, WhatsApp, LLM, etc)
├── INVESTIGACION-REFERENCIAS.md <- Codigo reutilizable (POS-Micro, etc)
├── PLAN-DESARROLLO.md <- Cronograma por epicas
└── CALCULADORA-CAMBIO.md <- Logica de cambio (PENDIENTE CREAR)
```
**Validacion:**
- [ ] Seccion actualizada
- [ ] Archivos listados coinciden con existentes
- [ ] Formato markdown correcto
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
### Tarea 3.2: Actualizar CONTEXT-MAP.yml - Corregir Epicas
**Descripcion:** Corregir los IDs de epicas desplazados (MCH-012 a MCH-021).
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/orchestration/CONTEXT-MAP.yml`
**Cambios en seccion epicas_por_fase (lineas 189-217):**
**DE:**
```yaml
fase3_asistente_ia:
- MCH-010-mcp-server
- MCH-011-whatsapp
- MCH-012-chat-llm
fase4_pedidos:
- MCH-013-clientes
- MCH-014-pedidos-whatsapp
- MCH-015-entregas
fase5_monetizacion:
- MCH-016-suscripciones
- MCH-017-tokens-ia
- MCH-018-pagos-online
fase6_crecimiento:
- MCH-019-offline
- MCH-020-referidos
- MCH-021-codi
- MCH-022-widgets
```
**A:**
```yaml
fase3_asistente_ia:
- MCH-010-mcp-server
- MCH-011-whatsapp-service
- MCH-012-chat-llm-dueno
- MCH-013-chat-llm-cliente
fase4_pedidos_clientes:
- MCH-014-gestion-clientes
- MCH-015-pedidos-whatsapp
- MCH-016-entregas-domicilio
- MCH-017-notificaciones
fase5_monetizacion:
- MCH-018-planes-suscripciones
- MCH-019-tienda-tokens
- MCH-020-pagos-suscripcion
- MCH-021-dashboard-web
fase6_mobile_offline:
- MCH-022-modo-offline
- MCH-023-programa-referidos
- MCH-024-codi-spei
- MCH-025-widgets-atajos
fase7_expansion_latam:
- MCH-026-multi-idioma-latam
- MCH-027-integracion-sat
- MCH-028-marketplace-proveedores
```
**Validacion:**
- [ ] Todos los IDs MCH-001 a MCH-028 presentes
- [ ] Nombres coinciden con docs/_MAP.md
- [ ] Fases correctamente asignadas
- [ ] Sintaxis YAML valida
**Dependencias:** Ninguna
**Riesgo:** Medio
---
### Tarea 3.3: Actualizar ARQUITECTURA-TECNICA.md - Corregir Schemas
**Descripcion:** Actualizar numero de schemas de 8 a 9 (agregar auth y orders).
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/00-vision-general/ARQUITECTURA-TECNICA.md`
**Cambio (lineas 298-345):**
- Agregar schema `auth` a la lista
- Agregar schema `orders` a la lista
- Total: 9 schemas (no 8)
**Validacion:**
- [ ] 9 schemas listados
- [ ] Coherente con ARQUITECTURA-DATABASE.md
- [ ] Coherente con DATABASE_INVENTORY.yml
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
### Tarea 3.4: Agregar Documentacion de Credenciales
**Descripcion:** Documentar claramente donde se almacenan las credenciales.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/00-vision-general/ARQUITECTURA-TECNICA.md`
**Contenido a agregar (nueva seccion):**
```markdown
## Almacenamiento de Credenciales
### Credenciales de Plataforma
- Ubicacion: Variables de entorno (.env)
- Proposito: Credenciales por defecto del sistema
- Ejemplos: STRIPE_SECRET_KEY, WHATSAPP_ACCESS_TOKEN, LLM_API_KEY
### Credenciales por Tenant
- Ubicacion: Base de datos (tabla tenant_integration_credentials)
- Proposito: Credenciales personalizadas por cada negocio
- Seguridad: Encriptadas con AES-256
- Fallback: Si no existe, usa credenciales de plataforma
### Flujo de Resolucion
1. Buscar credenciales del tenant en BD
2. Si existe y esta activa, usar credencial del tenant
3. Si no existe, usar credencial de plataforma (fallback)
4. Cache en memoria con TTL 5 minutos
```
**Validacion:**
- [ ] Seccion agregada
- [ ] Coherente con ARQUITECTURA-MULTI-TENANT-INTEGRACIONES.md
- [ ] Flujo claramente documentado
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
## FASE 4: CREACION DE DOCUMENTOS FALTANTES
### Tarea 4.1: Crear CALCULADORA-CAMBIO.md
**Descripcion:** Crear documento faltante critico sobre logica de cambio.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/02-especificaciones/CALCULADORA-CAMBIO.md`
**Contenido sugerido:**
```markdown
# Especificacion: Calculadora de Cambio
**Proyecto:** MiChangarrito
**Fecha:** 2026-01-10
**Estado:** ESPECIFICACION
---
## 1. Proposito
Definir la logica de calculo de cambio para transacciones en efectivo,
optimizando la cantidad de billetes y monedas a devolver.
## 2. Denominaciones Mexico (MXN)
### Billetes
| Denominacion | Valor |
|--------------|-------|
| $1000 | 1000.00 |
| $500 | 500.00 |
| $200 | 200.00 |
| $100 | 100.00 |
| $50 | 50.00 |
| $20 | 20.00 |
### Monedas
| Denominacion | Valor |
|--------------|-------|
| $10 | 10.00 |
| $5 | 5.00 |
| $2 | 2.00 |
| $1 | 1.00 |
| $0.50 | 0.50 |
## 3. Algoritmo de Calculo
### Entrada
- total_venta: number (monto de la venta)
- monto_recibido: number (efectivo recibido del cliente)
### Proceso
1. Calcular cambio = monto_recibido - total_venta
2. Si cambio < 0: Error (monto insuficiente)
3. Si cambio = 0: Pago exacto (no hay cambio)
4. Si cambio > 0: Aplicar algoritmo greedy
### Algoritmo Greedy (Minimizar piezas)
```
function calcularCambio(cambio: number): Denominacion[] {
const denominaciones = [1000, 500, 200, 100, 50, 20, 10, 5, 2, 1, 0.50];
const resultado = [];
for (const denom of denominaciones) {
while (cambio >= denom) {
resultado.push(denom);
cambio = Math.round((cambio - denom) * 100) / 100;
}
}
return resultado;
}
```
## 4. Casos Especiales
### 4.1 Redondeo
- Montos menores a $0.50 se redondean al mas cercano
- Ejemplo: $0.25 → $0.50, $0.10 → $0.00
### 4.2 Sugerencia de Monto
- Sugerir montos redondos al cliente
- Ejemplo: Total $87.50 → Sugerir "Dame $100"
### 4.3 Sin Cambio Disponible
- Alertar si no hay cambio suficiente en caja
- Sugerir pago con tarjeta o monto exacto
## 5. Integracion
### Frontend (Mobile)
- Componente: ChangeCalculator
- Pantalla: SalesScreen (despues de seleccionar efectivo)
- Muestra: Desglose visual de billetes/monedas
### Backend
- No requiere endpoint (calculo local)
- Registrar en venta: monto_recibido, cambio_dado
### Base de Datos
- Tabla: sales
- Campos: payment_amount, change_given
## 6. UI/UX
### Pantalla de Cambio
```
┌────────────────────────────┐
│ Total: $87.50 │
│ Recibido: $100.00 │
│ ───────────────────────── │
│ CAMBIO: $12.50 │
│ │
│ Entregar: │
│ [💵 $10] x 1 │
│ [🪙 $2] x 1 │
│ [🪙 $0.50] x 1 │
│ │
│ [Confirmar Venta] │
└────────────────────────────┘
```
---
**Ultima actualizacion:** 2026-01-10
```
**Validacion:**
- [ ] Archivo creado
- [ ] Denominaciones MXN correctas
- [ ] Algoritmo documentado
- [ ] Casos especiales cubiertos
**Dependencias:** Ninguna
**Riesgo:** Bajo
---
### Tarea 4.2: Crear INDICE-ARQUITECTURA.md
**Descripcion:** Crear documento indice que mapee todos los documentos de arquitectura.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/docs/INDICE-ARQUITECTURA.md`
**Contenido:** Mapeo de documentos, ruta de lectura recomendada, temas por area.
**Validacion:**
- [ ] Archivo creado
- [ ] Todos los documentos de arquitectura referenciados
- [ ] Rutas de lectura por rol definidas
**Dependencias:** Todas las tareas de ACTUALIZAR
**Riesgo:** Bajo
---
### Tarea 4.3: Crear RESUMEN-ANALISIS-HISTORICO.md
**Descripcion:** Crear resumen consolidado de decisiones tomadas durante el proyecto.
**Archivo:** `/home/isem/workspace-v1/projects/michangarrito/orchestration/analisis/RESUMEN-ANALISIS-HISTORICO.md`
**Contenido:**
- Decisiones estrategicas (cambio FASE 2 a Sprint 1)
- Metricas finales del proyecto
- Lecciones aprendidas
- Referencias a archivos historicos
**Validacion:**
- [ ] Archivo creado
- [ ] Decisiones documentadas
- [ ] Metricas actualizadas
**Dependencias:** Tarea 1.1 (archivado)
**Riesgo:** Bajo
---
## FASE 5: VALIDACION POST-EJECUCION
### Tarea 5.1: Validar Coherencia de Documentos
**Descripcion:** Verificar que todos los documentos son coherentes entre si.
**Checklist:**
| Validacion | Archivo A | Archivo B | Resultado |
|------------|----------|-----------|-----------|
| Numero schemas | docs/_MAP.md | ARQUITECTURA-DATABASE.md | [ ] OK |
| Numero epicas | docs/_MAP.md | CONTEXT-MAP.yml | [ ] OK |
| IDs epicas | docs/01-epicas/_MAP.md | CONTEXT-MAP.yml | [ ] OK |
| Archivos listados | docs/_MAP.md | Archivos reales | [ ] OK |
**Validacion:**
- [ ] Todas las coherencias verificadas
- [ ] Cero discrepancias encontradas
**Dependencias:** Todas las fases anteriores
**Riesgo:** Bajo
---
### Tarea 5.2: Verificar Referencias
**Descripcion:** Buscar y corregir cualquier referencia rota.
**Comandos:**
```bash
cd /home/isem/workspace-v1/projects/michangarrito
# Buscar referencias al archivo eliminado
grep -r "90-transversal/arquitectura/ARQUITECTURA-DATABASE" docs/ orchestration/
```
**Validacion:**
- [ ] Sin referencias rotas encontradas
- [ ] O referencias actualizadas si se encontraron
**Dependencias:** Tarea 2.2
**Riesgo:** Medio
---
### Tarea 5.3: Validar Sintaxis YAML
**Descripcion:** Verificar que CONTEXT-MAP.yml tiene sintaxis valida.
**Comandos:**
```bash
# Usar herramienta de validacion YAML
python -c "import yaml; yaml.safe_load(open('orchestration/CONTEXT-MAP.yml'))"
```
**Validacion:**
- [ ] Sin errores de sintaxis
- [ ] Archivo parseable correctamente
**Dependencias:** Tarea 3.2
**Riesgo:** Bajo
---
## FASE 6: DOCUMENTACION DE CIERRE
### Tarea 6.1: Actualizar PLAN-MAESTRO con Estado Final
**Descripcion:** Marcar todas las tareas como completadas en el plan maestro.
**Archivo:** `PLAN-MAESTRO-PURGA-DOCUMENTAL-2026-01-10.md`
**Validacion:**
- [ ] Todas las fases marcadas como completadas
- [ ] Fechas de ejecucion registradas
**Dependencias:** Fase 5
**Riesgo:** Bajo
---
### Tarea 6.2: Crear Reporte de Ejecucion
**Descripcion:** Documentar resultados de la purga documental.
**Archivo:** `REPORTE-EJECUCION-PURGA-DOCUMENTAL-2026-01-10.md`
**Contenido:**
- Resumen de cambios realizados
- Metricas antes/despues
- Problemas encontrados y resueltos
- Recomendaciones futuras
**Validacion:**
- [ ] Reporte completo
- [ ] Metricas documentadas
**Dependencias:** Fase 5
**Riesgo:** Bajo
---
## CRONOGRAMA DE EJECUCION
| Fase | Tareas | Estimado |
|------|--------|----------|
| FASE 0 | 0.1, 0.2 | 15 min |
| FASE 1 | 1.1 | 10 min |
| FASE 2 | 2.1, 2.2 | 20 min |
| FASE 3 | 3.1, 3.2, 3.3, 3.4 | 45 min |
| FASE 4 | 4.1, 4.2, 4.3 | 60 min |
| FASE 5 | 5.1, 5.2, 5.3 | 20 min |
| FASE 6 | 6.1, 6.2 | 15 min |
| **TOTAL** | 16 tareas | **~3 horas** |
---
## APROBACION
| Rol | Nombre | Aprobacion | Fecha |
|-----|--------|------------|-------|
| Arquitecto Documentacion | - | [ ] Aprobado | - |
| Lider Tecnico | - | [ ] Aprobado | - |
| Product Owner | - | [ ] Aprobado | - |
---
**Estado:** PENDIENTE APROBACION
**Fecha de creacion:** 2026-01-10
**Version:** 1.0.0