17 KiB
17 KiB
Final Implementation Plan - Modulos 8, 9 y 10
1. Objetivo
Implementar M08, M09 y M10 como una cadena operativa completa:
- M08 Gestion Estrategica de Contratos: registro de contratos, entregables, pagos y carga inteligente de PDF.
- M09 Proteccion Legal: diagnostico guiado, gestion de casos, ruta de escalada, generador de escritos y directorio.
- M10 Expediente Preventivo: simulador de auditoria y expediente institucional centralizado.
El alcance sigue exactamente la UX mostrada en las referencias y se integra con M5 y M7 ya existentes.
2. Principios de implementacion
- Reusar patrones actuales: App Router, Prisma, componentes estilo M7, endpoints administrativos autenticados.
- Mantener trazabilidad completa: cada caso legal y cada auditoria debe poder rastrear contrato, entregable, pago y evidencia origen.
- Diseñar para escalamiento nacional: iniciar con seed federal + NL y permitir extender por estado/municipio.
- Regla conservadora legal: donde no haya certeza normativa, marcar "requiere validacion legal".
3. M08 - Gestion Estrategica de Contratos
3.1 Ruta y UI
- Nueva ruta:
/gestion-contratos. - Header de flujo:
- back:
M7: Alertas - next:
M9: Legal
- back:
- KPIs:
- Contratos activos
- Total cobrado
- Entregables pendientes
- Entregables vencidos
- Tabs:
- Subir Contrato
- Contratos
- Entregables
- Pagos
3.2 Dominio y modelo de datos
Agregar en Prisma:
ContractRecordid, userId, sourceProposalId?title, counterpartyEntity, contractNumber, contractTypestartDate, endDate, totalAmount, currencystatus(ACTIVE|COMPLETED|PAUSED|CANCELLED)description, createdAt, updatedAt
ContractDeliverableid, contractId, title, dueDate, amountLinked?status(PENDING|DELIVERED|APPROVED|REJECTED|OVERDUE)deliveredAt?, approvedAt?, notes
ContractPaymentid, contractId, amount, paymentDate, invoiceNumber?, conceptstatus(REGISTERED|CONFIRMED|DISPUTED)
ContractDocumentid, contractId, fileName, filePath, mimeType, sizeBytes, checksumSha256kind(SIGNED_CONTRACT|ADDENDUM|DELIVERABLE_EVIDENCE|PAYMENT_EVIDENCE|OTHER)
ContractExtractionHistoryid, contractId?, userId, engine, model, resultJson, warningsJson, analyzedAt
Indices:
ContractRecord(userId,status,endDate)ContractDeliverable(contractId,status,dueDate)ContractPayment(contractId,paymentDate)
3.3 APIs
GET /api/contractslist + filtros.POST /api/contractscrear contrato manual (modal Nuevo Contrato).PATCH /api/contracts/:ideditar estado y datos clave.POST /api/contracts/uploadsubir PDF firmado.POST /api/contracts/extractOCR + IA y crear/actualizar contrato.GET /api/contracts/kpisdataset de M08.POST /api/contracts/:id/deliverablescrear entregable (modal).PATCH /api/deliverables/:idcambiar estado.POST /api/contracts/:id/paymentsregistrar pago (modal).GET /api/contracts/:id/paymentshistorial.
3.4 IA para "Subir Contrato"
Reusar pipeline de PDF existente:
analyzePdfpara texto/OCR.- Nuevo extractor IA
extractContractWithAi:- campos: titulo, entidad contratante, numero, tipo, fechas, monto total.
- lista de entregables detectados.
- hitos de pago detectados.
- clausulas de riesgo contractual (para alimentar M9).
- Guardar trazabilidad en
ContractExtractionHistory.
3.5 Reglas funcionales
- Contrato activo:
status=ACTIVEy fecha fin no vencida (o sin fecha fin). - Entregable vencido:
status=PENDINGydueDate < now. - Total cobrado: sumatoria pagos confirmados.
- Barra de avance por contrato:
entregables completados / entregables totales.
4. M09 - Proteccion Legal
4.1 Ruta y UI
- Nueva ruta:
/proteccion-legal. - Header de flujo:
- back:
M8: Contratos - next:
M10: Auditorias
- back:
- KPIs:
- Casos abiertos
- Alta severidad
- Monto en riesgo
- Casos resueltos
- Tabs:
- Diagnostico
- Casos
- Escalada
- Escritos
- Directorio
4.2 Dominio y modelo de datos
Agregar en Prisma:
LegalCaseid, userId, contractId?caseType(CONTRACT_BREACH|PAYMENT_RETENTION|UNJUST_SANCTION|CONTRACT_DISPUTE)severity(LOW|MEDIUM|HIGH)counterparty, descriptionamountAtRiskstatus(OPEN|IN_PROGRESS|ESCALATED|RESOLVED|CLOSED)openedAt, resolvedAt?
LegalDiagnosisid, userId, legalCaseId?stepIndex, totalSteps, answersJson, recommendedRouteJson
LegalEscalationStepLogid, legalCaseId, routeStepKey, completedAt?, notes
LegalDocumentid, legalCaseId?, userId, templateKey?, aiGeneratedtitle, content, createdAt
LegalDirectoryEntityid, jurisdictionLevel, name, scopeTagsJsonwebsiteUrl?, phone?, email?, stateCode?, municipalityCode?isActive
4.3 APIs
GET /api/legal/kpisPOST /api/legal/diagnosis/startPOST /api/legal/diagnosis/answerPOST /api/legal/casesGET /api/legal/casesPATCH /api/legal/cases/:id(resolver/escalar)GET /api/legal/escalation/:caseIdPOST /api/legal/documents/generate(IA)GET /api/legal/templatesGET /api/legal/directory
4.4 Motor de diagnostico
Wizard de 4 pasos como referencia:
- Tipo de incumplimiento.
- Estado procesal y evidencia disponible.
- Impacto economico y urgencia.
- Objetivo legal (pago, correccion, impugnacion, mediacion).
Salida:
- severidad sugerida
- tipo de caso sugerido
- ruta escalada sugerida
- lista de escritos recomendados
4.5 Ruta Escalada (tab Escalada)
Catalogo base de pasos:
- Requerimiento formal
- Conciliacion administrativa
- Queja ante OIC
- Inconformidad ante SFP/Organo estatal
- Via jurisdiccional
Cada paso incluye:
- ventana estimada de tiempo
- checklist de acciones
- bandera de "requiere abogado"
- dependencias del paso previo
4.6 Escritos (IA + plantillas)
- Selector de tipo de caso y severidad.
- Inputs: contraparte, empresa, monto, descripcion.
- Generador IA produce borrador estructurado y editable.
- Plantillas predefinidas por categoria (como en referencia):
- General: Acta entrega-recepcion.
- Incumplimiento: Carta de inconformidad.
- Retencion de pagos: Solicitud de liberacion.
- Sanciones: Recurso de inconformidad.
- Guardar documento y boton copiar/exportar.
4.7 Directorio
Seed inicial federal + estatal:
- SFP, TFJA, ASF, OIC, CompraNet, sistemas anticorrupcion estatales, etc.
- Filtros por jurisdiccion y tipo de autoridad.
5. M10 - Expediente Preventivo
5.1 Ruta y UI
- Nueva ruta:
/expediente-preventivo. - Header de flujo:
- back:
M9: Legal
- back:
- KPIs:
- Auditorias completadas
- Ultima calificacion
- Contratos registrados (desde M08)
- PDFs resguardados (M08 + M5)
- Tabs:
- Simulador
- Expediente
5.2 Dominio y modelo de datos
Agregar en Prisma:
AuditSimulationid, userId, name, auditTypestatus(DRAFT|COMPLETED)overallScore, completedAt?
AuditSimulationSectionid, simulationId, keyscore, status(READY|WARNING|CRITICAL)findingsJson, recommendationsJson
AuditChecklistResponseid, simulationId, questionKey, answer, evidenceRefsJson
InstitutionalDossierSnapshotid, userId, generatedAt, payloadJson
Secciones del simulador v1:
- Cumplimiento fiscal
- Cumplimiento laboral
- Documentacion legal
- Control operativo
- Transparencia financiera
5.3 APIs
POST /api/audits/simulationsGET /api/audits/simulationsPOST /api/audits/simulations/:id/scoreGET /api/audits/simulations/:idGET /api/audits/expedientePOST /api/audits/expediente/refresh
5.4 Logica del expediente
Consolidar automaticamente:
- M5: propuestas, workflow, documentos.
- M8: contratos, entregables, pagos, contratos PDF.
- M9: casos, escritos, evidencia de escalada.
- M7: alertas activas de cumplimiento para semaforo preventivo.
Resultado:
- vista de historial institucional lista para auditoria.
- estado por componente (completo/incompleto).
6. Integraciones entre modulos
- M5 -> M8: crear contrato desde propuesta adjudicada.
- M8 -> M9: boton "abrir caso legal" desde contrato/entregable/pago.
- M8 -> M10: contratos y PDFs alimentan expediente.
- M9 -> M10: casos, escritos y escalada alimentan expediente.
- M7 <-> M8/M9: alertas por entregables vencidos, pagos disputados, casos alta severidad.
7. Tipos de dominio (frontend/backend)
Crear src/lib/contracts/types.ts, src/lib/legal/types.ts, src/lib/audits/types.ts con:
- snapshots KPI por modulo
- enums de estado
- payloads de formularios (modales)
- DTOs para tabs
- contratos de IA (input/output) para extractor de contrato y generador de escritos
8. Plan de implementacion por fases
Fase A (base de datos + navegacion)
- Prisma models, migraciones, seeds.
- Rutas vacias M08/M09/M10 con header y tabs.
- Linkear dashboard (Plan 3) a rutas reales.
Fase B (M08 operativo)
- CRUD contratos + entregables + pagos.
- KPIs y tabs funcionales.
- Upload PDF + extraccion IA + guardado en expediente.
Fase C (M09 operativo)
- Diagnostico wizard y creacion de casos.
- Registro/seguimiento de casos.
- Escalada guiada con checklist por paso.
- Generador IA de escritos + plantillas + copiar/exportar.
- Directorio con seed inicial.
Fase D (M10 operativo)
- Simulador de auditoria con scoring por seccion.
- Expediente centralizado con agregacion M5/M8/M9.
- KPIs finales y acciones correctivas sugeridas.
Fase E (hardening)
- permisos por plan, auditoria de cambios, logs de errores IA.
- observabilidad de pipelines OCR/IA.
- refinamiento de UX responsive y accesibilidad.
9. Plan de pruebas
Unit
- Formulas KPI M08/M09/M10.
- Reglas de estado (vencido, resuelto, escalado, activo).
- Scoring del simulador.
- Seleccion de ruta legal por diagnostico.
Integration
- Flujo completo: contrato (M08) -> caso (M09) -> expediente (M10).
- Extraccion IA de contrato -> creacion de entregables/pagos.
- Generacion de escrito IA + guardado en caso.
UI/E2E
- Paridad visual de tabs y KPI cards con referencias.
- Modales: Nuevo Contrato, Nuevo Entregable, Registrar Pago.
- Estados vacios y poblados.
- Responsive movil/escritorio.
10. Criterios de aceptacion
- M08 permite crear contrato, registrar entregable y pago, y ver KPIs actualizados en tiempo real.
- M09 permite abrir caso desde diagnostico, escalarlo por pasos, y generar escritos IA reutilizables.
- M10 muestra simulaciones con score y expediente consolidado de evidencia documental.
- Navegacion lineal operativa M7 -> M8 -> M9 -> M10.
- Build, test y lint sin errores bloqueantes.
11. Defaults V1
- Sin firma digital de escritos dentro del sistema (solo generacion y exportacion).
- Sin integracion externa de tribunales/SFP para envio automatico (solo preparacion guiada).
- Directorio legal inicial federal + NL, extensible por seed.
- Clasificacion de riesgo legal conservadora si faltan evidencias.
12. Master Checklist de Implementacion
12.1 Preparacion
- Confirmar alcance funcional final con producto (M08, M09, M10 + integraciones).
- Validar naming final de rutas:
/gestion-contratos,/proteccion-legal,/expediente-preventivo. - Confirmar permisos por plan (Plan 3) y reglas de acceso admin/pago.
12.2 Fase A - Data + Navegacion Base
- Crear modelos Prisma M08/M09/M10.
- Crear enums Prisma para estados de contratos, casos y auditorias.
- Crear migraciones SQL + seeds iniciales (directorio legal, catalogos base).
- Ejecutar
npm run prisma:generate. - Crear paginas base de rutas M08, M09 y M10 con layout y header de flujo.
- Conectar dashboard (tarjetas M08/M09/M10) a rutas reales.
12.3 Fase B - M08 Operativo
- Implementar dominio
contracts(types.ts, validadores, mappers). - Implementar endpoints CRUD de contratos.
- Implementar endpoints de entregables y pagos.
- Implementar endpoint KPI de M08.
- Implementar tab Subir Contrato (upload PDF + persistencia de archivo).
- Implementar extraccion IA de contrato y guardado de
ContractExtractionHistory. - Implementar UI tabs M08 (Subir Contrato, Contratos, Entregables, Pagos).
- Implementar modales: Nuevo Contrato, Nuevo Entregable, Registrar Pago.
- Implementar reglas de negocio: activo, vencido, total cobrado, progreso.
12.4 Fase C - M09 Operativo
- Implementar dominio
legal(types.ts, enums, validaciones). - Implementar wizard Diagnostico (4 pasos) y recomendacion de ruta.
- Implementar CRUD de casos legales.
- Implementar tab Casos con acciones de resolver/escalar.
- Implementar tab Escalada (pasos, checklist, estatus por caso).
- Implementar generador de escritos IA y persistencia.
- Implementar repositorio de plantillas predefinidas y accion copiar/exportar.
- Implementar tab Directorio con filtros de jurisdiccion/autoridad.
12.5 Fase D - M10 Operativo
- Implementar dominio
audits(types.ts, scoring, snapshots). - Implementar CRUD de simulaciones de auditoria.
- Implementar motor de scoring por seccion.
- Implementar tab Simulador con historial y detalle de resultados.
- Implementar agregador de expediente institucional (M5 + M8 + M9 + M7).
- Implementar tab Expediente con estados vacios/poblados y trazabilidad.
- Implementar KPIs de M10.
12.6 Fase E - Hardening
- Reglas de autorizacion por plan en rutas y APIs.
- Auditoria de cambios (logs funcionales por entidad critica).
- Manejo robusto de errores IA/OCR con mensajes accionables.
- Validacion de performance en listados y agregadores (paginacion/indices).
- Reforzar accesibilidad (labels, focus, teclado, contraste).
13. Task Backlog (Orden de Ejecucion)
13.1 Arquitectura y Persistencia
- Crear schema Prisma para M08 (contratos, entregables, pagos, documentos, extraccion).
- Crear schema Prisma para M09 (casos, diagnostico, escalada, documentos, directorio).
- Crear schema Prisma para M10 (simulaciones, respuestas, snapshots).
- Agregar indices y constraints de integridad.
- Generar y revisar migraciones.
- Ejecutar seeds base (directorio legal + catalogos).
13.2 Backend APIs
- Crear
src/app/api/contracts/*. - Crear
src/app/api/legal/*. - Crear
src/app/api/audits/*. - Implementar servicios en
src/lib/contracts,src/lib/legal,src/lib/audits. - Agregar validaciones de entrada/salida y manejo de errores uniforme.
13.3 Frontend M08
- Crear pantalla principal M08 con 4 KPIs y tabs.
- Implementar tab Contratos (cards, progreso, estado).
- Implementar tab Entregables (pendiente/vencido/completado).
- Implementar tab Pagos (registro e historial).
- Implementar tab Subir Contrato + drag/drop + estado de analisis IA.
- Conectar modales a APIs y refresco de dataset.
13.4 Frontend M09
- Crear pantalla principal M09 con KPIs y tabs.
- Implementar wizard Diagnostico con barra de progreso.
- Implementar tab Casos con filtros por severidad/estado.
- Implementar tab Escalada con timeline de pasos.
- Implementar tab Escritos (formulario IA + plantillas).
- Implementar tab Directorio (cards de entidades + acciones contacto).
13.5 Frontend M10
- Crear pantalla principal M10 con KPIs y tabs.
- Implementar tab Simulador (nueva simulacion, scoring y resultados).
- Implementar tab Expediente (contratos, PDFs, propuestas, casos, escritos).
- Implementar navegacion back/next M9 <-> M10 y Dashboard.
13.6 Integraciones Cross-Module
- Habilitar handoff M5 -> M8 para crear contrato desde propuesta adjudicada.
- Habilitar handoff M8 -> M9 para abrir caso legal contextual.
- Habilitar agregacion M8 + M9 en M10.
- Publicar alertas M8/M9 relevantes para M7 (vencimientos y riesgo legal).
14. Master Test Plan
14.1 Unit Tests
- Reglas de calculo KPI M08.
- Reglas de calculo KPI M09.
- Reglas de calculo KPI M10.
- Motor de scoring del simulador.
- Clasificacion de severidad y rutas legales.
- Normalizacion de extraccion IA de contrato.
14.2 Integration Tests
- Flujo M5 -> M8 (creacion de contrato desde propuesta).
- Flujo M08 completo (contrato -> entregable -> pago -> KPI).
- Flujo M8 -> M9 (apertura de caso legal).
- Flujo M9 -> M10 (caso/escrito visibles en expediente).
- Flujo M7 con alertas de entregables vencidos y casos severos.
14.3 UI/E2E
- Paridad visual de M08 (tabs, cards, modales, empty/data states).
- Paridad visual de M09 (diagnostico, casos, escalada, escritos, directorio).
- Paridad visual de M10 (simulador y expediente).
- Responsive movil/escritorio en M08/M09/M10.
- Accesibilidad basica de formularios y modales.
15. Release Gate (Definition of Done)
15.1 Calidad Tecnica
- Migraciones aplicadas sin errores en entorno objetivo.
- Seeds ejecutados y datos base disponibles.
- Sin errores TypeScript en build.
- Sin errores de lint bloqueantes.
- Tests unitarios/integracion/UI en verde.
15.2 Verificaciones por Comando (orden recomendado)
npm run prisma:generatenpm run prisma:migratenpm testnpm run lintnpm run build(FINAL CHECK OBLIGATORIO)
15.3 Aprobacion Funcional Final
- Demo E2E: M8 -> M9 -> M10 con datos reales de prueba.
- Validacion de KPIs contra datos de ejemplo.
- Validacion de guardado y recuperacion de evidencia/documentos.
- Sign-off final de producto.