Saltar a contenido

Informe de cobertura — BPSNOMINA 1.0

Ficha de verificación

BPSNOMINA 1.0 · Emitido el 2026-08-17 · Código 4073760e880a9c089f2fd75033207d2a72c91772 (dev-fase3 de xdiegob/PayrollBPS) · Cifras obtenidas por análisis del árbol congelado y por recorrido de una instalación limpia sobre ese mismo commit.

Este informe existe para que nadie confunda lo documentado con lo que existe. Está escrito para poder usarse en contra de esta wiki.

1. Pantallas

Medida Valor
Elementos de menú bajo Nómina BPS 202
De ellos, contenedores sin acción propia 32
Acciones distintas (pantallas reales) 170
Modelos distintos detrás de esas acciones 167
De ellas, asistentes 26
Pantallas con captura propia en este release 17
Cobertura de capturas 10 %

Cada pantalla capturada lo está en dos anchos (1280 y 480 px), con el rol que corresponde: 34 archivos en total.

El 90 % de las pantallas no tiene captura

Es el hueco más grande de este release y no se disimula. Lo capturado cubre el arranque (acceso, roles, alta de trabajador) y la entrada del ciclo mensual. No están capturadas: PILA (19 opciones), retención, prestaciones, DSNE, firmante, contabilidad, banco, conciliación, reportes, riesgo jurídico ni implantación.

La razón es de tiempo, no de imposibilidad: la instancia limpia funciona, los roles existen y el método de captura está automatizado y es reejecutable. Lo que falta es recorrerlas.

Pantallas capturadas

Frente Pantallas Rol usado
Acceso y roles 3 Sin rol BPS · Solo rol BPS · Operador + RR. HH.
Empleados y contratos 4 Operador + RR. HH.
Tiempos y novedades 3 Operador + RR. HH.
Liquidación 4 Operador + RR. HH. · Administrador
Configuración 1 Administrador
Auditoría 1 Auditor + RR. HH.

De esas 17, cuatro son gates negativos (denegaciones reales, no simuladas) y una es una lista de diagnóstico con sus motivos.

2. Mensajes de bloqueo

Medida Valor
raise con texto literal en los 17 módulos 2 517
En código productivo (fuera de pruebas) 2 515
Mensajes distintos 2 411
Modelos que lanzan bloqueos 269
Catalogados y buscables 1 820
Cobertura del catálogo sobre lo alcanzable 100 %
Con explicación redactada (causa y remedio) 6

Se catalogan los mensajes que puede provocar una persona operando: botón, acción, creación, modificación, borrado o validación automática. Quedan fuera 691 que solo se disparan dentro de procesos internos, y 10 cuyo texto se arma en ejecución y no puede leerse del código.

Buscable no es lo mismo que explicado

Los 1 820 son localizables pegando el mensaje en el buscador, y cada fila dice qué operación lo lanzó y en qué archivo y línea está. Pero solo 6 tienen hoy una explicación redactada de causa y remedio: los cuatro de la primera configuración y los dos de permisos.

No se rellenó el resto con texto genérico. Una explicación inventada sería peor que la ausencia, porque parecería verificada.

3. Verificación funcional realizada

Lo que se ejecutó en una instalación limpia sobre el commit congelado:

Comprobación Resultado
Instalación de los 17 módulos, base nueva, sin datos demo Correcta: 285 s, 0 errores, 3 avisos del entorno
Configuración de compañía colombiana Correcta, con NIT de dígito verificador válido
Alta de 6 trabajadores (fijo, variable, integral, aprendiz, incapacidad, extras) Los 6 quedaron aptos
Gate de aptitud, 13 condiciones Reproducido en positivo y en negativo
Matriz de acceso de 4 roles + 2 casos sin rol Comprobada por check_access y en pantalla
Idioma de la interfaz es_CO instalado; traducciones de los 17 módulos recargadas
Desbordamiento horizontal a 480 px 0 pantallas con desbordamiento en las 17 capturadas

Lo que no se ejecutó:

  • No se liquidó una nómina completa de punta a punta. El asistente de ejecución se abrió y se documentó, pero no se confirmó la operación ni se verificó el resultado del cálculo.
  • No se generó ningún recibo, comprobante, archivo PILA, documento DSNE ni archivo bancario.
  • No se probó ningún flujo de aprobación (horas, novedades, excepciones).
  • No se probó multiempresa: la instancia tiene una sola compañía.
  • No se abrió ningún artefacto .xlsx, .docx ni .pdf generado por el producto.

La vara del encargo no está alcanzada

El criterio era: «una persona que nunca vio el producto liquida una nómina completa siguiendo solo la guía». Con esta wiki todavía no puede, porque el tramo desde la ejecución del cálculo hasta el comprobante entregado no está verificado en pantalla ni capturado. Lo que sí puede hacer hoy es llegar preparado hasta ese punto: instalar, configurar la compañía, entender los roles, dar de alta trabajadores aptos y saber qué significa cada bloqueo que encuentre.

4. Estado de las secciones del encargo

Sección Estado
A. Empezar aquí Reanclada al commit congelado; capturas nuevas de acceso y roles
B. Guías por rol No construida. La matriz de acceso está verificada y publicada en Roles y seguridad, pero no hay una guía por rol
C. El mes de nómina paso a paso Parcial: entrada y ejecución documentadas; el tramo posterior no
D. Tareas puntuales Parcial: alta de trabajador sí; retiro, vacaciones, prima, cesantías, liquidación definitiva y certificado laboral, no
E. Catálogo de mensajes de bloqueo Construida: 1 820 mensajes, 7 páginas, buscables
F. Parametrización y normativa Construida, con valores y fuentes reales del producto
G. Nómina electrónica (DSNE) No intervenida en este release. La guía existente conserva su ancla anterior
H. Actualizaciones y ciclo de vida No construida
I. Límites honestos Existía y se conserva; reforzada en las páginas nuevas

5. Contradicciones encontradas y resueltas

Durante la verificación aparecieron afirmaciones de la wiki anterior que el commit congelado desmiente. Se corrigieron, no se disimularon:

Afirmación anterior Realidad en 4073760e Dónde se corrigió
«No existe ningún botón, asistente, acción de servidor ni tarea programada que ejecute preliquidar» Existe el asistente Ejecutar nómina mensual BPS (F5-F6), comprobado en pantalla Calcular y revisar una nómina
«Rol Operador de nómina o superior» basta para ver los campos colombianos No basta: hace falta además un rol de RR. HH. de Odoo Roles y seguridad
La aplicación expone 176 opciones de menú Son 202 en el commit congelado Versión y ancla

La wiki anterior estaba anclada al commit 4b0f549d. Entre ese commit y el congelado hay 109 commits de diferencia.

6. Hallazgos para el carril de producto

No son defectos de la wiki y no se pueden arreglar escribiendo. Se dejan registrados:

  1. El catálogo de municipios llega sin códigos DANE. Ningún empleado puede crearse hasta cargarlos a mano. Es el primer bloqueo de toda implantación.
  2. Ningún rol BPS implica un rol de RR. HH. El producto es inoperable con solo su propio rol, y nada en la interfaz lo advierte.
  3. bps.jornada.semanal no tiene ACL que conceda lectura a ningún grupo, pese a existir como modelo.
  4. El SMMLV de 2026 cargado es transitorio y está sujeto a sentencia de nulidad. El producto lo declara correctamente en la fuente del parámetro; conviene que quien cierre el ejercicio lo sepa.

7. Reproducibilidad

Todo lo afirmado aquí se puede volver a comprobar. La instancia se construyó así:

  1. Worktree separado del repositorio, en el commit 4073760e, sin tocar el árbol de trabajo de nadie.
  2. Base de datos nueva, instalación de los 17 módulos con --without-demo.
  3. Compañía colombiana, catálogo DANE mínimo y seis trabajadores sintéticos, sembrados por guion.
  4. Seis usuarios de demostración, uno por configuración de rol.
  5. Capturas con Chrome real conducido por guion, autenticando por sesión HTTP contra 127.0.0.1.

Las credenciales de los usuarios sintéticos no están en este repositorio.

La procedencia de cada imagen —commit, entorno, rol, viewport, tipo de datos y medida de desbordamiento— está en evidence/bpsnomina-1.0-manifiesto-capturas.csv.

El manifiesto no se versiona

La carpeta evidence/ está excluida del control de versiones por una decisión previa del repositorio. El manifiesto existe en disco pero no viaja con los commits. Un manifiesto de procedencia que no se versiona pierde buena parte de su valor; conviene decidir si se exceptúa el .csv.