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 sí 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,.docxni.pdfgenerado 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:
- 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.
- 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.
bps.jornada.semanalno tiene ACL que conceda lectura a ningún grupo, pese a existir como modelo.- 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í:
- Worktree separado del repositorio, en el commit
4073760e, sin tocar el árbol de trabajo de nadie. - Base de datos nueva, instalación de los 17 módulos con
--without-demo. - Compañía colombiana, catálogo DANE mínimo y seis trabajadores sintéticos, sembrados por guion.
- Seis usuarios de demostración, uno por configuración de rol.
- 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.