Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DevCarlosRodriguez/Documentacion-Arccnova-2.0/llms.txt

Use this file to discover all available pages before exploring further.

A la fecha 2026-06-11, la especificación de ArccNova v2 tiene una lista consolidada de puntos sin resolver agrupados en cuatro categorías: definiciones de negocio (las resuelve el cliente o el requisitor), decisiones de arquitectura (las resuelve el arquitecto y se vuelven ADR), aclaraciones menores del equipo y comportamientos detectados como indefinidos al especificar. Ninguno de los puntos abiertos bloquea las Fases 1 a 3; los que afectan a módulos de fases posteriores se listan con su módulo afectado.
Regla del documento: nada de esta lista se programa sin resolverse (o se programa solo la parte no afectada). Al resolverse un punto: actualizar el documento del módulo afectado, registrar el ADR si es una decisión de arquitectura, y marcarlo en el documento fuente 03-puntos-abiertos.md con fecha y referencia.

1. Definiciones de negocio abiertas

Las resuelve el cliente o el requisitor. No tienen fecha de resolución comprometida.
El arrendamiento y el punto de venta de material no recibieron respuesta en ninguna de las dos rondas de preguntas al cliente. Los módulos Rentals/ y Materials/ no se construyen ni se scaffoldearon en la solución. Se activarán como épicas futuras cuando el negocio defina sus requisitos completos.Afecta: Modules/Rentals/, Modules/Materials/
Confirmado que la primera versión opera solo Lotificación. Los tipos de proyecto “Construcción” y “Venta de bienes raíces” están en análisis del requisitor sin fecha comprometida. En la pantalla de creación de proyecto, solo el tipo “Lotificación” está disponible; los otros tipos aparecerán cuando se definan.Afecta: Modules/Branches/
Los precios, el período de prueba y los límites concretos por plan no están definidos. El sistema está diseñado para capturarlos sin redeploy (tabla PlanResourceLimits).Afecta: Modules/BillingSaas/
Las licencias de empleados están confirmadas en alcance (porcentaje de pago + bandera de quién cubre), pero el modelo de datos del cliente v6 no trae sus tablas. El esquema de base de datos las dejó fuera a propósito. Hay que solicitar el modelo al equipo antes de construir este subcontexto.Afecta: Modules/Hr/Employees/
La respuesta de la segunda ronda describe el comprobante de pago por cobro, no una carta de morosidad automática. Confirmar la interpretación correcta con el equipo antes de especificar el reporte.Afecta: Modules/Reports/

2. Decisiones de arquitectura pendientes

Las resuelve el arquitecto. Cada una se convierte en ADR antes de implementar el módulo afectado. El detalle completo vive en Referencias/analisis/cierre-segunda-ronda.md sección 5.
Tensión con ADR-003: ¿usar data-protection de ASP.NET Identity para el token de confirmación de correo (vigencia 72 h, C05), o un token propio como los de PasswordResetTokens? La tabla EmailConfirmationTokens ya existe en el esquema como placeholder.Afecta: Modules/Identity/
Las reglas funcionales no cambian en ninguno de los dos enfoques. Lo que cambia es la persistencia, el estado de cuenta y las proyecciones de cobranza. El esquema actual implementa el diseño del v1: las cuotas (MultipleInstallments) nacen al cobrar; no hay tabla de amortización pre-calculada.Afecta: Modules/Financing/, Modules/Collections/
El placeholder actual es la tabla HrLegalEntities. Su modelado definitivo (campos exactos, relación con Tenants y Branches, cómo se vincula con Employees y PayrollGroups) debe decidirlo el arquitecto antes de construir el módulo Hr.Org.Afecta: Modules/Hr/bloquea el inicio del módulo Hr.
El modelo v6 de RH propone Redis para catálogos globales frecuentemente consultados (tipos de contrato, modalidades de pago, tipos de concepto de nómina). La alternativa es IMemoryCache de .NET. Evaluar antes de construir Hr para no acoplar el módulo a una infraestructura sin decidir.Afecta: Modules/Hr/
El ADR-020 elige una librería de expresiones (NCalc, Flee o System.Linq.Dynamic.Core) para las fórmulas de nómina, pero requiere un spike de validación antes de comprometerse: (a) verificar que corre en imagen distroless, (b) medir rendimiento en lote (cálculo de todos los empleados de un período), (c) validar el sandbox contra inyección de código.Afecta: Modules/Hr/Payroll/
El v1 usa una contraseña secundaria estática generada por el sistema para los permisos protegidos (C34). El campo ActionPasswordHash en Users implementa esta mecánica. El arquitecto debe decidir si v2 la replica o la sustituye por re-autenticación + permiso RBAC equivalente. La semántica de negocio no cambia; lo que cambia es el mecanismo técnico.Afecta: Modules/Identity/ — el flujo de permisos protegidos depende de esta decisión.
El campo TimeZone del proyecto (Branches) define la zona horaria de referencia. Los cortes de caja, vencimientos de reservas y reportes deben usar el tiempo local del proyecto, no UTC. Esto afecta cómo se calculan las fechas límite y cómo se generan los reportes por período.Afecta: Modules/Branches/, Modules/Reports/
La respuesta C22 dice 2 decimales para el cobro. El código del v1 trunca a 8 decimales en los cálculos intermedios. La propuesta registrada para v2: calcular con precisión completa, cobrar a 2 decimales. Requiere confirmación formal del arquitecto antes de implementar Financing.Afecta: Modules/Financing/

3. Fuera de alcance (confirmado)

Los siguientes elementos están explícitamente fuera del MVP de ArccNova v2. No se programan, no se scaffoldean (salvo indicación contraria) y no se incluyen en estimaciones de fases.
  • CFDI 4.0 / PAC (ADR-005 pospuesto): emisión de comprobantes fiscales mexicanos.
  • Stripe Tax para US (ADR-006 pospuesto): cálculo automático de impuestos en EE.UU.
  • Cálculo fiscal de nómina (ISR, IMSS, INFONAVIT): el módulo Hr.Payroll calcula nómina bruta sin deducciones fiscales.
  • CFDI de nómina: timbrado de recibos de salario ante el SAT.
El CRM (con WhatsApp Business, Meta, inbox multicanal y bot) se excluye completamente de esta versión. Sus implicaciones de integraciones externas (OAuth con Meta, ventana de 24 h de WhatsApp, webhooks públicos entrantes, telefonía) condicionan todo lo demás. Se analizará por separado como proyecto independiente.
  • Geocerca y validación biométrica para checadas de asistencia.
  • Dispersión de nómina bancaria (layout para transferencia masiva al banco).
  • Licencias (R12): confirmado en alcance pero sin modelo de datos — ver Flag N4 arriba.
  • Cálculo del séptimo día en prenómina (R12/D12): regla sin definir.
  • Importación masiva de lotes desde Excel (C38): el API tiene endpoint individual; la importación en bloque queda fuera del MVP.
  • Anonimización de cuentas de usuario: flujo de derecho al olvido no contemplado en esta versión.
  • Notificaciones automáticas para cuota vencida, reserva por vencer y documento de empleado por vencer: la infraestructura de notificaciones existe pero el disparo automático por estos eventos no está especificado.

4. Diseñado para el futuro (no construido ahora)

Estas capacidades están diseñadas y reservadas en la arquitectura, pero no se implementan en las fases actuales. No son puntos abiertos — son decisiones ya tomadas con implementación diferida.
La arquitectura actual garantiza que estas capacidades se puedan añadir sin refactor de la base existente.
CapacidadBase preparadaCuándo
Firma electrónica avanzada (NOM-151 / sellado de tiempo)Patrón Strategy en LegalDocs; esquema reserva metadatos de firma avanzadaFases 2-4 de LegalDocs
Extracción de cualquier módulo como microservicioContratos .Contracts y sin dependencias directas entre módulosCuando el volumen lo justifique
CRM como monolito hermano con su propia DBEstructura RBAC lista para roles por proyecto; SSE reutilizableAnálisis independiente del CRM
Roles CRM por proyectoUserBranches.RoleId ya existe y soporta roles distintos por proyectoAl analizar el CRM
Caché distribuida para catálogos de RHFlag 4 pendiente de decisiónAntes de construir Hr
Particionamiento de PermissionAuditLogsTabla ya diseñada con retención permanenteCuando el volumen lo requiera

Build docs developers (and LLMs) love