26 KiB
_MAP: MAI-006 - Calidad
Épica: MAI-006 Nombre: Calidad Fase: 1 - Alcance Inicial Presupuesto: $25,000 MXN Story Points: 45 SP Estado: 📝 A crear Sprint: Sprint 11-12 (Semanas 16.5-19) Prioridad: P1 Última actualización: 2025-12-06
📋 Propósito
Implementar sistema completo de gestión de calidad en obra con:
- Inspecciones de calidad con checklists configurables
- Reportes de no conformidad (RNC) con workflow de resolución
- Pruebas de laboratorio (concreto, suelos, materiales)
- Certificaciones y aprobaciones (clientes, supervisores externos)
- Integración con apps móviles MOB-003 (Supervisor) y MOB-004 (Capataz)
- Trazabilidad completa por vivienda/frente de obra
Justificación: El control de calidad es crítico para cumplimiento con normativas de construcción, certificación INFONAVIT, y garantía de entrega de viviendas sin defectos. Reduce costos de corrección y rework en postventa.
Reutilización GAMILIT: 10% (concepto básico de checklist, adaptado extensivamente)
📁 Contenido
Requerimientos Funcionales (5)
| ID | Archivo | Título | Estado |
|---|---|---|---|
| RF-QUA-001 | RF-QUA-001-inspecciones-calidad.md | Sistema de Inspecciones de Calidad | 📝 A crear |
| RF-QUA-002 | RF-QUA-002-no-conformidades.md | Reportes de No Conformidad (RNC) | 📝 A crear |
| RF-QUA-003 | RF-QUA-003-pruebas-laboratorio.md | Pruebas de Laboratorio | 📝 A crear |
| RF-QUA-004 | RF-QUA-004-certificaciones.md | Certificaciones y Aprobaciones | 📝 A crear |
| RF-QUA-005 | RF-QUA-005-trazabilidad-vivienda.md | Trazabilidad de Calidad por Vivienda | 📝 A crear |
Especificaciones Técnicas (5)
| ID | Archivo | Título | RF | Estado |
|---|---|---|---|---|
| ET-QUA-001 | ET-QUA-001-modelo-inspecciones.md | Modelo de Datos de Inspecciones | RF-QUA-001 | 📝 A crear |
| ET-QUA-002 | ET-QUA-002-workflow-rnc.md | Workflow de No Conformidades | RF-QUA-002 | 📝 A crear |
| ET-QUA-003 | ET-QUA-003-integracion-laboratorio.md | Integración con Laboratorio | RF-QUA-003 | 📝 A crear |
| ET-QUA-004 | ET-QUA-004-sistema-certificaciones.md | Sistema de Certificaciones | RF-QUA-004 | 📝 A crear |
| ET-QUA-005 | ET-QUA-005-integracion-apps-moviles.md | Integración MOB-003 y MOB-004 | RF-QUA-001, RF-QUA-002 | 📝 A crear |
Historias de Usuario (9)
| ID | Archivo | Título | SP | Estado |
|---|---|---|---|---|
| US-QUA-001 | US-QUA-001-crear-checklist-inspeccion.md | Crear Checklist de Inspección | 5 | 📝 A crear |
| US-QUA-002 | US-QUA-002-realizar-inspeccion-movil.md | Realizar Inspección desde App Móvil | 8 | 📝 A crear |
| US-QUA-003 | US-QUA-003-registrar-no-conformidad.md | Registrar Reporte de No Conformidad | 5 | 📝 A crear |
| US-QUA-004 | US-QUA-004-workflow-resolucion-rnc.md | Workflow de Resolución de RNC | 5 | 📝 A crear |
| US-QUA-005 | US-QUA-005-solicitar-prueba-laboratorio.md | Solicitar Prueba de Laboratorio | 3 | 📝 A crear |
| US-QUA-006 | US-QUA-006-registrar-resultados-laboratorio.md | Registrar Resultados de Laboratorio | 5 | 📝 A crear |
| US-QUA-007 | US-QUA-007-generar-certificacion.md | Generar Certificación de Calidad | 5 | 📝 A crear |
| US-QUA-008 | US-QUA-008-dashboard-calidad.md | Dashboard de Calidad y KPIs | 5 | 📝 A crear |
| US-QUA-009 | US-QUA-009-historial-calidad-vivienda.md | Historial de Calidad por Vivienda | 4 | 📝 A crear |
Total Story Points: 45 SP
Implementación
📊 Inventarios de trazabilidad:
- TRACEABILITY.yml - Matriz completa de trazabilidad
- DATABASE.yml - Objetos de base de datos
- BACKEND.yml - Módulos backend
- FRONTEND.yml - Componentes frontend
- MOBILE.yml - Integración con MOB-003 y MOB-004
Pruebas
📋 Documentación de testing:
- TEST-PLAN.md - Plan de pruebas
- TEST-CASES.md - Casos de prueba
- INTEGRATION-TESTS.md - Tests de integración con apps móviles
🔗 Referencias
- README: README.md - Descripción detallada de la épica
- Fase 1: ../README.md - Información de la fase completa
- Apps Móviles: ../../08-epicas/EPIC-MAI-019-mobile-apps.md - MOB-003 y MOB-004
- Control de Obra: ../MAI-005-control-obra-avances/README.md - Integración con avances
- Postventa: ../MAI-009-calidad-postventa/README.md - Continuidad en garantías
📊 Métricas
| Métrica | Valor |
|---|---|
| Presupuesto estimado | $25,000 MXN |
| Presupuesto target | $25,000 MXN ±5% |
| Story Points estimados | 45 SP |
| Duración estimada | 2.5 semanas (12.5 días) |
| Reutilización GAMILIT | 10% |
| Integraciones móviles | 2 (MOB-003, MOB-004) |
| RF a implementar | 5/5 |
| ET a implementar | 5/5 |
| US a completar | 9/9 |
🎯 Módulos Afectados
Base de Datos
- Schema:
quality - Tablas principales:
quality_checklists- Plantillas de checklistquality_checklist_items- Items de checklistquality_inspections- Inspecciones realizadasquality_inspection_results- Resultados de inspecciónquality_non_conformities- Reportes de No Conformidad (RNC)quality_nc_actions- Acciones correctivas/preventivasquality_lab_tests- Pruebas de laboratorioquality_lab_results- Resultados de laboratorioquality_certifications- Certificaciones emitidasquality_approval_history- Historial de aprobaciones
- Funciones: Cálculo de % cumplimiento, validaciones de inspección
- ENUMs:
inspection_type(structural, finishing, electrical, plumbing, general)inspection_status(pending, in_progress, passed, failed, conditional)nc_severity(critical, major, minor, observation)nc_status(open, in_progress, resolved, verified, closed, rejected)lab_test_type(concrete_compression, soil_compaction, steel_tensile, moisture)certification_type(infonavit, client, internal, regulatory)
Backend
- Módulo:
quality - Path:
apps/backend/src/modules/quality/ - Services:
ChecklistService- CRUD de checklistsInspectionService- Registro y gestión de inspeccionesNonConformityService- Gestión de RNCLabTestService- Solicitud y registro de pruebasCertificationService- Emisión de certificacionesQualityAnalyticsService- KPIs y reportes
- Controllers: QualityController, InspectionController, LabTestController
- Middlewares: QualityAuthGuard, ProjectAccessGuard
Frontend Web
- Features:
quality,inspections,lab-tests,certifications - Path:
apps/frontend/src/features/quality/ - Componentes:
- ChecklistBuilder - Constructor de checklists
- InspectionForm - Formulario de inspección
- NCReportForm - Reporte de no conformidad
- NCWorkflow - Estado y workflow de RNC
- LabTestRequest - Solicitud de prueba
- LabResultsViewer - Visualizador de resultados
- CertificationGenerator - Generador de certificaciones
- QualityDashboard - Dashboard con KPIs
- QualityHistory - Historial por vivienda
- Stores: qualityStore, inspectionStore, ncStore, labTestStore
App Móvil (React Native)
- Integración con MOB-003 (Supervisor de Obra):
- Realizar inspecciones con checklist offline
- Registrar RNC con fotos geoetiquetadas
- Solicitar pruebas de laboratorio desde campo
- Aprobar/rechazar avances con criterios de calidad
- Integración con MOB-004 (Capataz):
- Consultar checklists pendientes
- Ver RNC de su cuadrilla
- Marcar resolución de RNC
- Features compartidas:
- Scanner QR de elementos/viviendas
- Captura de fotos con marcas de calidad
- Modo offline con sincronización
- Notificaciones de RNC urgentes
🔄 Flujo de Trabajo de Calidad
1. Inspección de Calidad
flowchart TD
A[Ingeniero crea checklist] --> B[Asigna inspección a Supervisor]
B --> C{Supervisor en campo}
C -->|App MOB-003| D[Escanea QR de vivienda/área]
D --> E[Completa checklist item por item]
E --> F[Toma fotos de evidencia]
F --> G{¿Todos items OK?}
G -->|Sí| H[Marca inspección aprobada]
G -->|No| I[Genera RNC automático]
H --> J[Sincroniza a servidor]
I --> J
J --> K[Notifica a Residente/Ingeniero]
2. Reporte de No Conformidad (RNC)
flowchart TD
A[Detección de NC] --> B[Registro de RNC]
B --> C[Clasificación de severidad]
C --> D{Severidad}
D -->|Crítica| E[Notificación inmediata]
D -->|Mayor/Menor| F[Workflow normal]
E --> G[Asignación a responsable]
F --> G
G --> H[Análisis de causa raíz]
H --> I[Plan de acción correctiva]
I --> J[Ejecución de corrección]
J --> K[Verificación de resolución]
K --> L{¿Aceptada?}
L -->|Sí| M[Cierre de RNC]
L -->|No| N[Re-trabajo]
N --> J
M --> O[Actualización de KPIs]
3. Pruebas de Laboratorio
flowchart TD
A[Solicitud de prueba] --> B[Toma de muestra en campo]
B --> C{¿Laboratorio interno?}
C -->|Sí| D[Registro en sistema]
C -->|No| E[Envío a laboratorio externo]
D --> F[Ejecución de prueba]
E --> G[Espera de resultados]
F --> H[Captura de resultados]
G --> H
H --> I{¿Cumple especificación?}
I -->|Sí| J[Aprobación de material/proceso]
I -->|No| K[Generación de RNC]
J --> L[Actualización de trazabilidad]
K --> M[Workflow de corrección]
📱 Funcionalidades en Apps Móviles
MOB-003: App Supervisor de Obra
Funcionalidades de Calidad:
-
Inspecciones Digitales
- Lista de inspecciones pendientes
- Checklist interactivo con checkbox/radio/texto
- Captura de fotos con anotaciones
- Geolocalización automática
- Modo offline completo
-
Registro de RNC
- Formulario rápido de RNC
- Clasificación de severidad con colores
- Asignación de responsable
- Adjuntar fotos/videos
- Estado en tiempo real
-
Validación de Avances
- Criterios de calidad antes de aprobar avance
- Checklist de pre-entrega
- Bloqueo de avance si hay RNC críticas
MOB-004: App Capataz
Funcionalidades de Calidad:
-
Consulta de Estándares
- Ver checklists de calidad por actividad
- Especificaciones técnicas
- Fotos de referencia (buenas prácticas)
-
Gestión de RNC de Cuadrilla
- Ver RNC asignadas a su cuadrilla
- Marcar acciones completadas
- Solicitar re-inspección
- Comunicación con Supervisor
-
Auto-inspección
- Checklist simplificado antes de solicitar inspección oficial
- Reducir rechazo por errores obvios
📋 Tipos de Inspecciones
Inspecciones Estructurales
| Tipo | Frecuencia | Checklist Típico |
|---|---|---|
| Cimentación | Por vivienda | - Profundidad excavación - Nivel de desplante - Resistencia concreto - Armado de acero |
| Estructura | Por nivel | - Verticalidad muros - Niveles y plomadas - Resistencia elementos - Juntas constructivas |
| Losa | Por losa | - Espesor - Armado - Resistencia concreto - Nivelación |
Inspecciones de Acabados
| Tipo | Frecuencia | Checklist Típico |
|---|---|---|
| Instalaciones | Por vivienda | - Instalación eléctrica certificada - Instalación hidráulica sin fugas - Gas con dictamen - Drenaje funcional |
| Acabados | Por vivienda | - Aplanados sin fisuras - Pisos nivelados - Pintura uniforme - Cancelería funcional |
| Pre-entrega | Por vivienda | - Limpieza general - Servicios funcionando - Llaves y protecciones - Manual de usuario |
Inspecciones de Cumplimiento
| Tipo | Frecuencia | Responsable |
|---|---|---|
| INFONAVIT | Por proyecto | Verificador externo |
| Protección Civil | Por etapa | Autoridad municipal |
| Desarrollos Urbanos | Al finalizar | Municipio |
| Cliente Final | Pre-escritura | Derechohabiente + Notario |
🧪 Pruebas de Laboratorio
Pruebas de Concreto
| Prueba | Norma | Frecuencia | Especificación |
|---|---|---|---|
| Resistencia a compresión | NMX-C-083 | 1 cilindro/10m³ | f'c ≥ especificado (150, 200, 250 kg/cm²) |
| Revenimiento | NMX-C-156 | Por revoltura | 10±2 cm típico |
| Temperatura | NMX-C-435 | Por colado | ≤ 32°C |
Pruebas de Suelos
| Prueba | Norma | Frecuencia | Especificación |
|---|---|---|---|
| Compactación Proctor | ASTM D698 | Por capa | 95% PM mínimo |
| Capacidad de carga | ASTM D1194 | Por lote | Según proyecto estructural |
| Granulometría | ASTM C136 | Por banco | Según especificación |
Pruebas de Acero
| Prueba | Norma | Frecuencia | Especificación |
|---|---|---|---|
| Tensión | NMX-B-172 | Por lote | fy ≥ 4200 kg/cm² |
| Doblado | NMX-B-172 | Por lote | Sin fisuras |
📈 KPIs de Calidad
Indicadores Principales
| KPI | Fórmula | Meta | Frecuencia |
|---|---|---|---|
| % Cumplimiento Inspecciones | (Inspecciones aprobadas / Total inspecciones) × 100 | ≥ 90% | Semanal |
| Índice de No Conformidad | RNC / Viviendas inspeccionadas | ≤ 2.0 | Mensual |
| Tiempo Resolución RNC | Promedio días (apertura → cierre) | ≤ 7 días | Mensual |
| % RNC Críticas | RNC críticas / Total RNC × 100 | ≤ 10% | Mensual |
| % Pruebas Aprobadas | Pruebas aprobadas / Total pruebas × 100 | ≥ 95% | Mensual |
| Tasa de Re-trabajo | Viviendas con correcciones / Total viviendas × 100 | ≤ 15% | Mensual |
Dashboard de Calidad
Vista Director/Ingeniero:
┌─────────────────────────────────────────────────────────┐
│ DASHBOARD DE CALIDAD - Fraccionamiento Los Pinos │
│ Periodo: Noviembre 2025 │
├─────────────────────────────────────────────────────────┤
│ │
│ 📊 KPIs Principales │
│ ┌──────────────┬──────────────┬──────────────┐ │
│ │ Cumplimiento │ RNC Abiertas │ Tiempo Resol │ │
│ │ 92.5% │ 18 │ 5.2 días │ │
│ │ ✅ Meta │ ⚠️ Alto │ ✅ Meta │ │
│ └──────────────┴──────────────┴──────────────┘ │
│ │
│ 📋 Inspecciones (Última semana) │
│ • Realizadas: 45 / 50 programadas (90%) │
│ • Aprobadas: 38 (84%) │
│ • Rechazadas: 7 (16%) │
│ • Pendientes: 5 │
│ │
│ 🚨 RNC por Severidad │
│ • Críticas: 2 (URGENTE) │
│ • Mayores: 8 │
│ • Menores: 8 │
│ │
│ 🧪 Pruebas de Laboratorio │
│ • Pendientes: 3 │
│ • En proceso: 5 │
│ • Aprobadas: 28 (93%) │
│ • Rechazadas: 2 (7%) │
│ │
│ 📈 Tendencia Mensual │
│ • RNC: ↓ -15% vs mes anterior │
│ • Cumplimiento: ↑ +3% vs mes anterior │
│ │
└─────────────────────────────────────────────────────────┘
🔌 Integraciones
Con Módulo MAI-005 (Control de Obra)
Integración: Bloqueo de avances si hay RNC críticas pendientes
// Validación al registrar avance
async validateProgressQuality(conceptId: string, unitId: string) {
const criticalNCs = await this.ncService.findCriticalNCsByUnit(unitId, conceptId);
if (criticalNCs.length > 0) {
throw new QualityBlockException(
`No se puede registrar avance. Existen ${criticalNCs.length} RNC críticas pendientes.`,
criticalNCs
);
}
const requiredInspection = await this.inspectionService.isInspectionRequired(conceptId);
if (requiredInspection && !requiredInspection.passed) {
throw new QualityBlockException(
`Se requiere inspección de calidad aprobada antes de registrar avance.`
);
}
return { valid: true };
}
Con Módulo MAI-009 (Postventa)
Integración: Historial de calidad de vivienda pasa a postventa
- Todas las inspecciones realizadas
- RNC generadas y resueltas
- Pruebas de laboratorio
- Certificaciones emitidas
- Checklist de pre-entrega
Con Apps Móviles (MOB-003, MOB-004)
APIs Clave:
// Endpoints para app móvil
GET /api/mobile/quality/inspections/pending // Inspecciones pendientes
GET /api/mobile/quality/checklists/:id // Detalle de checklist
POST /api/mobile/quality/inspections/:id/complete // Completar inspección
POST /api/mobile/quality/nc/create // Crear RNC
PATCH /api/mobile/quality/nc/:id/resolve // Marcar resolución
GET /api/mobile/quality/nc/assigned // RNC asignadas (MOB-004)
POST /api/mobile/quality/photos/upload // Upload fotos
Sincronización Offline:
- Cache de checklists asignados (actualizado diariamente)
- Queue de inspecciones completadas
- Queue de RNC registradas
- Compresión de fotos antes de sincronizar
- Retry automático con backoff exponencial
🚨 Casos de Uso Críticos
Caso 1: Inspección de Cimentación con RNC Crítica
Escenario:
- Supervisor en campo para inspección de cimentación de lote 45
- Detecta que profundidad de desplante es 20cm menor a especificación
- Genera RNC crítica desde app MOB-003
- Sistema notifica inmediatamente a Ingeniero y Residente
- Se bloquea automáticamente siguiente actividad (armado) en ese lote
- Ingeniero analiza y determina acción: profundizar excavación
- Capataz ejecuta corrección
- Supervisor re-inspecciona y aprueba
- Se desbloquea actividad de armado
Flujo en Sistema:
MOB-003 → [RNC Crítica] → Backend → [Notificación Push] → Ingeniero
→ [Bloqueo Avance] → MAI-005
Ingeniero → [Plan Acción] → RNC → Capataz (MOB-004)
Capataz → [Marcar Resuelto] → RNC
Supervisor → [Re-inspección] → [Aprobar] → [Desbloqueo] → MAI-005
Caso 2: Prueba de Resistencia de Concreto Rechazada
Escenario:
- Se colaron 20 viviendas con concreto del mismo proveedor
- Prueba de cilindro a 28 días: 180 kg/cm² (especificación: 200 kg/cm²)
- Sistema genera RNC automática
- Se bloquean avances de las 20 viviendas afectadas
- Se solicita estudio estructural
- Ingeniero determina: refuerzo adicional en elementos
- Se ejecuta refuerzo
- Se solicita nueva prueba de concreto de refuerzo
- Nueva prueba: 220 kg/cm² - APROBADA
- Se cierran RNC y se desbloquean avances
Caso 3: Pre-entrega a INFONAVIT
Escenario:
- 50 viviendas listas para entrega
- Sistema genera checklist de pre-entrega por vivienda
- Supervisor realiza inspección final con MOB-003
- De 50 viviendas:
- 45 aprobadas
- 5 con observaciones menores (detalles de pintura)
- Se generan 5 RNC menores
- Capataz ejecuta correcciones en 2 días
- Supervisor re-inspecciona y aprueba
- Sistema genera certificación de calidad por vivienda
- Certificaciones se adjuntan a expediente de escrituración
🧪 Testing
Unit Tests (Backend)
describe('InspectionService', () => {
it('should create inspection from checklist template')
it('should calculate pass/fail based on critical items')
it('should block progress when critical NC exists')
it('should notify stakeholders on NC creation')
})
describe('NonConformityService', () => {
it('should classify NC by severity automatically')
it('should create workflow states correctly')
it('should calculate resolution time SLA')
it('should prevent closure without verification')
})
describe('LabTestService', () => {
it('should validate test results against specifications')
it('should generate NC when test fails')
it('should link test to affected units')
})
E2E Tests (App Móvil)
describe('Quality Inspection E2E', () => {
it('should complete full inspection flow offline')
it('should create NC with photos from field')
it('should sync inspection results when online')
it('should show pending inspections by priority')
})
Integration Tests
describe('Quality-Progress Integration', () => {
it('should block progress when critical NC exists')
it('should require inspection before progress')
it('should unlock progress after NC resolution')
})
🚨 Riesgos Específicos
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Usuarios omiten inspecciones | Alta | Alto | Validación automática, bloqueos de avance |
| RNC no se resuelven a tiempo | Media | Alto | SLA automáticos, alertas escalonadas |
| Pruebas de laboratorio tardadas | Alta | Medio | Buffer de tiempo, laboratorio interno |
| Rechazo masivo en inspección final | Media | Muy Alto | Inspecciones intermedias, auto-inspección |
| Pérdida de trazabilidad | Baja | Alto | Blockchain de inspecciones (futuro) |
📋 Checklist de Implementación
Backend
- Modelo de datos de checklists configurables
- CRUD de inspecciones con validaciones
- Workflow de estados de RNC
- Servicio de notificaciones por severidad
- Integración con MAI-005 (bloqueos de avance)
- API para apps móviles (MOB-003, MOB-004)
- Sistema de pruebas de laboratorio
- Generación de certificaciones PDF
- Dashboard con KPIs de calidad
App Móvil (MOB-003, MOB-004)
- Sincronización de checklists offline
- Formulario de inspección con checklist interactivo
- Captura de fotos con anotaciones
- Registro rápido de RNC
- Scanner QR de viviendas/elementos
- Modo offline completo
- Sincronización de inspecciones y RNC
- Notificaciones push de RNC urgentes
Frontend Web
- Constructor de checklists (drag & drop)
- Vista de inspecciones con filtros
- Dashboard de calidad con gráficos
- Workflow visual de RNC (Kanban)
- Gestión de pruebas de laboratorio
- Generador de certificaciones
- Historial de calidad por vivienda
- Reportes exportables (PDF/Excel)
Database
- Schemas y tablas
- Funciones de validación y cálculo
- Triggers de notificación
- Índices optimizados
- Views de reportes
Testing
- Unit tests >80% coverage
- E2E tests de flujos completos
- Integration tests con MAI-005
- Tests de app móvil (offline, sync)
- Load tests (1000 inspecciones/día)
Despliegue
- Variables de entorno
- Configuración de notificaciones
- Integración con storage de fotos
- Monitoreo de SLA de RNC
- Documentación de uso
💡 Lessons Learned (a documentar post-implementación)
- Checklists deben ser flexibles: No todas las obras tienen los mismos criterios
- Notificaciones críticas no deben saturar: Solo lo urgente es urgente
- Modo offline es obligatorio: Campo rara vez tiene buena conexión
- Fotos son evidencia legal: Almacenar con metadatos completos (GPS, timestamp, hash)
🎯 Siguiente Paso
Crear documentación de requerimientos funcionales (RF-QUA-001 a RF-QUA-005) y especificaciones técnicas (ET-QUA-001 a ET-QUA-005).
Prioridad de documentación:
- RF-QUA-001: Sistema de Inspecciones (core del módulo)
- RF-QUA-002: Reportes de No Conformidad (crítico para workflow)
- ET-QUA-005: Integración con apps móviles (alta dependencia)
Generado: 2025-12-06 Mantenedores: @tech-lead @backend-team @mobile-team @quality-team Estado: 📝 A crear Prioridad: P1 - Crítico para certificación y cumplimiento