Regla base: Cada versión debe mejorar ejecución, claridad o escalabilidad. Si no lo hace → no se lanza.
🎯 Objetivo
Hacer que el Core determinista sea consumible externamente.
- MongoDB configurado correctamente
- Modelos:
- Company
- Employee
- Asset
- Period
- Repositories desacoplados del motor
- Servicio
EconomicCalculationService - Endpoint:
POST /calculate
- Validación estricta de inputs (schema validation)
- Respuesta estructurada:
- breakEven
- totalRevenue
- totalCost
- surplus
- distribution
- auditTrail
- El mismo input produce siempre el mismo output
- El cálculo puede ejecutarse sin UI
- Test manual reproducible vía Postman/Insomnia
📦 Valor
El motor ya es infraestructura utilizable.
🎯 Objetivo
Blindar la consistencia económica.
✅ Validaciones económicas (no técnicas):
- Costos negativos prohibidos
- Revenue inválido bloqueado
- Períodos duplicados prevenidos
✅ Servicio de consolidación de datos (
data-consolidation.service.js) ✅ Endpoint actualizadoPOST /calculateusando datos persistidos ✅ Endpoint simulaciónPOST /calculate/direct✅ Middleware global de errores ✅ Logging estructurado ✅ Tests automáticos de API (jest) ✅ Normalización de respuestas de error
✅ No se puede romper el sistema con inputs absurdos ✅ Errores económicos claros y semánticos ✅ El cálculo se basa 100% en datos persistidos ✅ Consolidación desde múltiples fuentes (ventas, capital, personal, extras)
📦 Valor
Confianza matemática.
Fecha: 2026-02-14 Documentación: VERSION_0.0.4_COMPLETE.md
🎯 Objetivo
Separar empresas y asegurar datos.
- JWT auth
- Roles:
- admin
- company
- Protección de endpoints
- Relación Company → Periods
- Filtro automático por companyId
- Una empresa no puede ver datos de otra
- El cálculo requiere identidad válida
📦 Valor
Sistema cerrable y comercializable.
🎯 Objetivo
Visualizar el cálculo económico.
-
Setup React limpio
-
Login
-
Formulario de carga de datos económicos
-
Llamado real a
/calculate -
Dashboard con:
- Punto de equilibrio
- Excedente total
- Distribución capital vs trabajo
- Estado económico (pérdida / equilibrio / excedente)
-
Estados UX:
- Loading
- Error claro
- Éxito explicado
- Una empresa puede cargar datos y ver su resultado
- El gráfico coincide exactamente con el output del backend
📦 Valor
Lo invisible se vuelve visible.
🎯 Objetivo
Cerrar el loop con trabajadores.
- Algoritmo configurable de distribución
- Reglas:
- proporcional salario
- proporcional productividad
- fijo + variable
- Trazabilidad completa
- Tabla por empleado
- Vista individual
- Breakdown explicativo del cálculo
- Cada empleado puede entender su parte
- El cálculo es 100% reproducible
📦 Valor
Motivación estructural real.
🎯 Objetivo
Convertir cálculo en artefacto legal.
- Hash SHA del período
- Snapshot congelado de inputs
- Snapshot congelado de outputs
- Endpoint:
POST /certifyGET /certificate/:id
- Generación:
- JSON certificable
- PDF exportable
- El mismo período no puede modificarse tras certificarse
- El hash cambia si cambia cualquier input
📦 Valor
Infraestructura legal-tech.
🎯 Objetivo
Preparar escalabilidad.
- Separación estricta:
- domain
- application
- infrastructure
- Eliminación de lógica económica fuera del core
- Tests unitarios reales del motor
- Mejora de performance en consultas
- Manejo de concurrencia básico
- El core no depende de Express ni Mongo
- El sistema puede crecer sin reescribirse
📦 Valor
Arquitectura profesional.
🎯 Objetivo
Producto defendible.
- Deploy estable (backend + frontend)
- Documentación técnica completa
- README profesional
- Changelog ordenado
- Variables de entorno claras
- Seed de datos de ejemplo
- Script de setup automático
- Se puede instalar en otro entorno en <30 min
- Demo funcional sin intervención manual
📦 Valor
Sistema listo para validación real.
v0.2 — Multi-period analytics
v0.3 — Proyecciones económicas
v0.4 — Simulación de escenarios
v0.5 — API pública documentada
v0.6 — Multi-moneda
v0.7 — Integraciones contables
v0.8 — Auditor externo
v0.9 — Optimización performance
v1.0 — Release estable productivo
Formato: v0.0.X
Semantic Versioning
Cada versión debe incluir:
- Tag Git
- Release notes claras
- Criterio de cierre cumplido
- Valor explícito generado
Sin valor → no existe versión.