workspace-v1/projects/erp-construccion/docs/02-definicion-modulos/MAA-017-seguridad-hse/requerimientos/RF-MAA017-002-control-capacitaciones.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

20 KiB

RF-MAA017-002: Control de Capacitaciones

Épica: MAA-017 - Seguridad HSE Versión: 1.0 Fecha: 2025-12-06 Responsable: Requirements-Analyst


1. Descripción General

Sistema integral para la gestión de capacitaciones de seguridad industrial, salud ocupacional y medio ambiente. Permite programar, ejecutar, registrar asistencia y generar constancias oficiales (DC-3, DC-4) conforme a la normativa STPS.

Objetivos

  • Asegurar que el 100% del personal cuente con capacitación requerida
  • Cumplir con normativas STPS (NOM-030, NOM-017, NOM-009)
  • Generar constancias DC-3 válidas ante autoridades
  • Mantener trazabilidad de competencias del personal

2. Alcance Funcional

2.1 Catálogo de Capacitaciones

Tipos de Capacitación:

├── Inducción General
│   ├── Inducción empresa (obligatoria día 1)
│   ├── Inducción obra específica
│   └── Inducción subcontratistas
├── Seguridad Industrial
│   ├── Trabajos en altura (NOM-009)
│   ├── Espacios confinados (NOM-033)
│   ├── Trabajo en caliente
│   ├── Manejo de materiales peligrosos
│   ├── Bloqueo y etiquetado (LOTO)
│   └── Uso de EPP (NOM-017)
├── Primeros Auxilios
│   ├── RCP básico
│   ├── Primeros auxilios nivel 1
│   └── Brigadas de emergencia
├── Prevención de Riesgos
│   ├── Identificación de peligros (IPER)
│   ├── Análisis de seguridad en el trabajo (AST)
│   └── Reporte de condiciones inseguras
└── Medio Ambiente
    ├── Manejo de residuos
    ├── Ahorro de agua y energía
    └── Respuesta a derrames

Atributos de Capacitación:

- Código único (CAP-{tipo}-{consecutivo})
- Nombre
- Descripción
- Duración (horas)
- Modalidad: presencial, virtual, mixta
- Vigencia (meses)
- Normativa aplicable (NOM referencia)
- Requiere evaluación: sí/no
- Puntaje mínimo aprobatorio: 0-100
- Requiere práctica: sí/no
- Instructor requerido: interno/externo/certificado
- Costo estimado por persona
- Materiales requeridos

2.2 Programación de Capacitaciones

Matriz de Capacitación por Puesto:

┌──────────────────────────────────────────────────────────────────┐
│ Puesto              │ Inducción │ Altura │ EPP │ P.Aux │ Freq   │
├─────────────────────┼───────────┼────────┼─────┼───────┼────────┤
│ Residente de obra   │ ●         │ ●      │ ●   │ ●     │ Anual  │
│ Supervisor          │ ●         │ ●      │ ●   │ ●     │ Anual  │
│ Oficial albañil     │ ●         │ ●      │ ●   │ ○     │ Anual  │
│ Oficial electricista│ ●         │ ●      │ ●   │ ○     │ Anual  │
│ Ayudante general    │ ●         │ ○      │ ●   │ ○     │ Anual  │
│ Operador maquinaria │ ●         │ ○      │ ●   │ ●     │ Anual  │
│ Almacenista         │ ●         │ ○      │ ●   │ ○     │ Anual  │
└──────────────────────────────────────────────────────────────────┘
● Obligatoria   ○ Opcional/Recomendada

Programación de Sesiones:

Sesión de Capacitación:
- ID único
- Capacitación (FK)
- Fraccionamiento/Obra
- Fecha y hora inicio
- Fecha y hora fin
- Lugar (aula, obra, virtual)
- Instructor (interno/externo)
- Cupo máximo
- Cupo disponible
- Estado: programada, en_curso, completada, cancelada
- Costo real
- Observaciones

2.3 Registro de Asistencia

Proceso de Registro:

  1. Lista de asistencia digital (tablet/móvil)
  2. Firma electrónica del participante
  3. Foto de evidencia (opcional)
  4. Hora de entrada/salida
  5. Validación biométrica (opcional)

Estados de Participante:

  • Inscrito
  • Asistió
  • No asistió (justificado/injustificado)
  • Aprobado
  • Reprobado
  • Pendiente evaluación

2.4 Evaluación de Conocimientos

Tipos de Evaluación:

├── Examen teórico
│   ├── Opción múltiple (10-20 preguntas)
│   ├── Verdadero/Falso
│   └── Casos prácticos
├── Evaluación práctica
│   ├── Demostración de habilidades
│   ├── Simulacro
│   └── Checklist de competencias
└── Evaluación combinada
    └── Teoría (60%) + Práctica (40%)

Banco de Preguntas:

Pregunta:
- Capacitación (FK)
- Texto de pregunta
- Tipo: multiple, boolean, open
- Opciones (si aplica)
- Respuesta correcta
- Puntos
- Nivel: básico, intermedio, avanzado
- Activa: sí/no

2.5 Constancias DC-3

Formato DC-3 (STPS):

┌────────────────────────────────────────────────────────────────┐
│           CONSTANCIA DE COMPETENCIAS O HABILIDADES LABORALES   │
│                          FORMATO DC-3                          │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│ DATOS DEL TRABAJADOR                                          │
│ Nombre: ________________________________________________      │
│ CURP: __________________________________________________      │
│ Puesto: ________________________________________________      │
│ Empresa: _______________________________________________      │
│                                                                │
│ DATOS DE LA CAPACITACIÓN                                      │
│ Nombre del curso: ______________________________________      │
│ Duración: _______ horas                                       │
│ Período: Del __________ al __________                         │
│ Área temática: _________________________________________      │
│                                                                │
│ DATOS DEL INSTRUCTOR                                          │
│ Nombre: ________________________________________________      │
│ Registro STPS: _________________________________________      │
│                                                                │
│ DATOS DEL REPRESENTANTE LEGAL                                 │
│ Nombre: ________________________________________________      │
│ Cargo: _________________________________________________      │
│                                                                │
│ Lugar y fecha: _________________, a __ de _______ de 20__    │
│                                                                │
│                                                                │
│ _____________________          _____________________           │
│ Firma del Instructor           Firma Rep. Legal               │
│                                                                │
│ Folio: DC3-2025-XXXXX                                         │
└────────────────────────────────────────────────────────────────┘

Generación Automática:

  • Al aprobar capacitación
  • Datos pre-llenados del sistema
  • Folio único secuencial por año
  • PDF firmable electrónicamente
  • QR de verificación

2.6 Vencimientos y Renovaciones

Alertas Automáticas:

Días antes de vencimiento → Acción
90 días                   → Notificación preventiva
60 días                   → Alerta a supervisor
30 días                   → Alerta a RRHH + empleado
15 días                   → Escalamiento a gerencia
0 días                    → Bloqueo de acceso a obra (configurable)

Dashboard de Vencimientos:

┌────────────────────────────────────────────────────────────────┐
│ PRÓXIMOS VENCIMIENTOS - Diciembre 2025                        │
├────────────────────────────────────────────────────────────────┤
│ 🔴 Vencidos (5)                                               │
│    • Juan Pérez - Trabajo en altura - Venció 01/12/2025       │
│    • María López - EPP - Venció 28/11/2025                    │
│                                                                │
│ 🟡 Próximos 30 días (12)                                      │
│    • Carlos Ruiz - Primeros auxilios - Vence 15/12/2025       │
│    • Ana García - Espacios confinados - Vence 20/12/2025      │
│                                                                │
│ 🟢 Vigentes (145)                                             │
│    • 95% del personal al día                                  │
└────────────────────────────────────────────────────────────────┘

3. Modelo de Datos

// Tabla: hse.capacitaciones (catálogo)
{
  id: UUID,
  tenant_id: UUID,
  code: VARCHAR(20) UNIQUE,
  name: VARCHAR(200),
  description: TEXT,
  duration_hours: DECIMAL(4,1),
  modality: ENUM('presencial', 'virtual', 'mixta'),
  validity_months: INTEGER,
  norm_reference: VARCHAR(50), // NOM-009-STPS-2011
  requires_evaluation: BOOLEAN,
  min_passing_score: INTEGER, // 0-100
  requires_practice: BOOLEAN,
  instructor_type: ENUM('interno', 'externo', 'certificado'),
  estimated_cost: DECIMAL(10,2),
  materials: TEXT,
  is_mandatory: BOOLEAN,
  applicable_positions: TEXT[], // Array de puestos
  created_at: TIMESTAMP,
  created_by: UUID,
  updated_at: TIMESTAMP,
  is_active: BOOLEAN
}

// Tabla: hse.capacitacion_sesiones
{
  id: UUID,
  tenant_id: UUID,
  capacitacion_id: UUID FK,
  fraccionamiento_id: UUID FK,
  session_date: DATE,
  start_time: TIME,
  end_time: TIME,
  location: VARCHAR(200),
  location_type: ENUM('aula', 'obra', 'virtual'),
  instructor_id: UUID, // Puede ser empleado o externo
  instructor_name: VARCHAR(200),
  instructor_stps_registration: VARCHAR(50),
  max_capacity: INTEGER,
  current_enrollment: INTEGER,
  status: ENUM('programada', 'en_curso', 'completada', 'cancelada'),
  actual_cost: DECIMAL(10,2),
  notes: TEXT,
  created_at: TIMESTAMP,
  created_by: UUID
}

// Tabla: hse.capacitacion_asistentes
{
  id: UUID,
  tenant_id: UUID,
  sesion_id: UUID FK,
  employee_id: UUID FK,
  enrollment_date: TIMESTAMP,
  attendance_status: ENUM('inscrito', 'asistio', 'no_asistio', 'justificado'),
  check_in_time: TIMESTAMP,
  check_out_time: TIMESTAMP,
  signature_url: VARCHAR(500),
  photo_url: VARCHAR(500),
  evaluation_score: INTEGER,
  evaluation_status: ENUM('pendiente', 'aprobado', 'reprobado'),
  certificate_number: VARCHAR(30),
  certificate_date: DATE,
  valid_until: DATE,
  notes: TEXT,
  created_at: TIMESTAMP
}

// Tabla: hse.constancias_dc3
{
  id: UUID,
  tenant_id: UUID,
  asistente_id: UUID FK,
  folio: VARCHAR(20) UNIQUE, // DC3-2025-00001
  employee_name: VARCHAR(200),
  employee_curp: VARCHAR(18),
  employee_position: VARCHAR(100),
  course_name: VARCHAR(200),
  course_duration: DECIMAL(4,1),
  course_start_date: DATE,
  course_end_date: DATE,
  thematic_area: VARCHAR(100),
  instructor_name: VARCHAR(200),
  instructor_stps_reg: VARCHAR(50),
  legal_rep_name: VARCHAR(200),
  legal_rep_position: VARCHAR(100),
  issue_place: VARCHAR(100),
  issue_date: DATE,
  pdf_url: VARCHAR(500),
  qr_verification_code: VARCHAR(50),
  is_valid: BOOLEAN,
  invalidation_reason: TEXT,
  created_at: TIMESTAMP,
  created_by: UUID
}

// Tabla: hse.evaluacion_preguntas
{
  id: UUID,
  tenant_id: UUID,
  capacitacion_id: UUID FK,
  question_text: TEXT,
  question_type: ENUM('multiple', 'boolean', 'open'),
  options: JSONB, // [{text, is_correct}, ...]
  correct_answer: TEXT,
  points: INTEGER,
  difficulty: ENUM('basico', 'intermedio', 'avanzado'),
  is_active: BOOLEAN,
  created_at: TIMESTAMP
}

// Tabla: hse.evaluacion_respuestas
{
  id: UUID,
  tenant_id: UUID,
  asistente_id: UUID FK,
  pregunta_id: UUID FK,
  answer_given: TEXT,
  is_correct: BOOLEAN,
  points_earned: INTEGER,
  answered_at: TIMESTAMP
}

4. Casos de Uso

CU-001: Programar Sesión de Capacitación

Actor: Coordinador HSE Flujo:

  1. Accede a "Programar Capacitación"
  2. Selecciona capacitación del catálogo
  3. Define:
    • Obra/Fraccionamiento
    • Fecha y hora
    • Lugar (aula o virtual)
    • Instructor
    • Cupo máximo
  4. Sistema valida disponibilidad de instructor
  5. Guarda sesión con estado "Programada"
  6. Notifica a supervisores de obra

CU-002: Registrar Asistencia

Actor: Instructor / Supervisor Flujo:

  1. Abre sesión en tablet
  2. Lista de inscritos aparece
  3. Por cada asistente:
    • Marca presente/ausente
    • Captura firma digital
    • Registra hora de entrada
  4. Al finalizar:
    • Registra hora de salida de todos
    • Captura foto grupal (evidencia)
  5. Cierra registro de asistencia

CU-003: Aplicar Evaluación

Actor: Instructor Flujo:

  1. Inicia evaluación de sesión
  2. Sistema genera examen:
    • Selecciona preguntas aleatorias del banco
    • 10 preguntas de opción múltiple
  3. Participantes responden en tablet/móvil
  4. Al terminar:
    • Sistema califica automáticamente
    • Muestra resultados
    • Marca aprobados/reprobados
  5. Genera constancias DC-3 para aprobados

CU-004: Generar Constancia DC-3

Actor: Sistema (automático) Flujo:

  1. Participante aprueba evaluación
  2. Sistema genera:
    • Folio único: DC3-2025-00001
    • PDF con datos completos
    • Código QR de verificación
  3. Almacena en repositorio
  4. Envía por email al participante
  5. Notifica a RRHH

CU-005: Consultar Vencimientos

Actor: Gerente RRHH Flujo:

  1. Accede a "Dashboard de Capacitación"
  2. Visualiza:
    • Capacitaciones vencidas (rojo)
    • Por vencer 30 días (amarillo)
    • Vigentes (verde)
  3. Filtra por:
    • Obra
    • Tipo de capacitación
    • Supervisor
  4. Exporta reporte Excel
  5. Programa sesiones de renovación

5. Interfaces de Usuario

Vista: Catálogo de Capacitaciones

┌──────────────────────────────────────────────────────────────────┐
│ Catálogo de Capacitaciones                    [+ Nueva] [⚙]     │
├──────────────────────────────────────────────────────────────────┤
│ 🔍 Buscar: [________________________] [🔎]                      │
│ Tipo: [Todos ▼]  Modalidad: [Todos ▼]  Estado: [Activas ▼]     │
├──────────────────────────────────────────────────────────────────┤
│ Código     │ Nombre                    │ Horas │ Vigencia │ ⋮  │
├────────────┼───────────────────────────┼───────┼──────────┼────┤
│ CAP-IND-01 │ Inducción General         │ 4h    │ 12 meses │ ⋮  │
│ CAP-ALT-01 │ Trabajo en Altura NOM-009 │ 8h    │ 12 meses │ ⋮  │
│ CAP-EPP-01 │ Uso de EPP NOM-017        │ 2h    │ 12 meses │ ⋮  │
│ CAP-PAU-01 │ Primeros Auxilios Básico  │ 8h    │ 24 meses │ ⋮  │
│ CAP-ESP-01 │ Espacios Confinados       │ 8h    │ 12 meses │ ⋮  │
└──────────────────────────────────────────────────────────────────┘

Vista: Registro de Asistencia (Tablet)

┌──────────────────────────────────────────────────────────────────┐
│ Trabajo en Altura NOM-009           Fecha: 06/12/2025  14:00    │
│ Instructor: Ing. Roberto Sánchez    Obra: Fracc. Los Pinos     │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ┌────┬─────────────────────────┬──────────┬─────────┬────────┐ │
│ │ #  │ Nombre                  │ Puesto   │ Entrada │ Firma  │ │
│ ├────┼─────────────────────────┼──────────┼─────────┼────────┤ │
│ │ 1  │ Juan Pérez García       │ Oficial  │ 14:02   │ ✓      │ │
│ │ 2  │ María López Ruiz        │ Ayudante │ 14:05   │ ✓      │ │
│ │ 3  │ Carlos Hernández        │ Oficial  │ --:--   │ -      │ │
│ │ 4  │ Ana Martínez            │ Superv.  │ 14:01   │ ✓      │ │
│ └────┴─────────────────────────┴──────────┴─────────┴────────┘ │
│                                                                  │
│ Asistencia: 3/4 (75%)                                           │
│                                                                  │
│ [Agregar Participante]         [Cerrar Asistencia]              │
└──────────────────────────────────────────────────────────────────┘

6. Reglas de Negocio

  1. Inducción obligatoria: Todo trabajador nuevo debe completar inducción antes de ingresar a obra
  2. Vigencia estricta: Personal con capacitación vencida no puede realizar trabajos de alto riesgo
  3. Instructor certificado: Capacitaciones de NOM requieren instructor con registro STPS
  4. Evaluación requerida: Capacitaciones de seguridad requieren evaluación con mínimo 80%
  5. DC-3 único: Un trabajador solo puede tener una DC-3 vigente por capacitación
  6. Asistencia mínima: Se requiere 90% de asistencia para aprobar

7. Criterios de Aceptación

  • Catálogo de capacitaciones con todos los atributos
  • Programación de sesiones con validación de disponibilidad
  • Registro de asistencia digital con firma
  • Evaluación automática de conocimientos
  • Generación de constancias DC-3 en PDF
  • Dashboard de vencimientos con alertas
  • Matriz de capacitación por puesto
  • Reportes de cumplimiento por obra
  • Integración con módulo RRHH (empleados)
  • Notificaciones automáticas de vencimiento

8. Métricas de Éxito

  • Cobertura: 100% del personal con inducción completada
  • Cumplimiento: >95% de capacitaciones al día
  • Eficiencia: Generación de DC-3 en <5 minutos
  • Trazabilidad: 100% de capacitaciones con evidencia

Estado: Ready for Development