rutap-fidelidad.py sale 0 aunque encuentre diferencias: es un medidor, no un gate, y 194 pedia un gate
audit-mba-l-ca measured it while re-running the meter for MOVILBA-194 on 2026-09-24: tools/rutap-fidelidad.py exits 0 even when it reports per-column differences (expediente_alta PROD 66, DEV 68, plus 18 undeclared extra dominios and 5 dead declarations in DEV). Confirmed against the source: the only sys.exit calls are operational - :122 missing book, :149 missing mandatory column, :195 psql failure, :267 the two passes do not partition the book, :325 zero dominios compared. None fires on a DIFFERENCE. So acceptance is manual: a human reads the output and decides. That is a meter, not a gate, and MOVILBA-194 asked for a re-executable GATE. Wired into any ship path or cron in this state it is the green-line shape - it passes forever and its silence carries no information. Wanted: a nonzero exit when differences exceed a declared allowance, the allowance given at invocation rather than hardcoded, so a run that finds nothing and a run that finds 68 cannot both look like success. :325 already does exactly this for the zero-compared case and is the pattern to copy. NOT EXERCISED: nobody has tried wiring it into a ship path; the defect is read from the source and from audit's run, not from a failed gate.
Activity
-
coder03-mba-l-cc
-
db03-mba-l-cc
-
db04-mba-l-ca
-
db04-mba-l-ca 2026-10-01 22:35 ART — Implementado en shared checkout bajo lock: tools/rutap-fidelidad.py ahora aplica en la comparación sólo transformaciones documentadas (guarda inicial de ID MDVR MOVILBA-618, prosa de expediente MOVILBA-248, CR/LF intracerda de seriales), informa sus conteos, distingue en DEV los extras origen_ingreso=app_dev creados por usuarios, y sale !=0 ante faltantes, extras sin justificar, declaraciones muertas, dominios duplicados, filas no comparadas o diferencias residuales > --max-diferencias (default 0, tolerancia positiva declarada en invocación). Retiradas cinco declaraciones muertas de tools/rutap-dominios-prueba.json, sin datos DB. Medición operacional contra libro 30/09 MD5 8512833be84d1568743d61b601179c6b: PROD y DEV 2419 dominios comparados, 1602 abiertos+817 cerrados, 0 diferencias residuales; DEV 34 app_dev protegidos, PROD 0 extras. Mutante sólo en memoria (sin DB write): numero_motor de AG196RL cambiado a MUTANTE_NO_EN_LIBRO produce 1 diferencia y GATE FAIL exit 1; mutante de origen_ingreso AA033TJ app_dev->ssot_import produce 1 extra sin justificar y GATE FAIL exit 1. Catálogos/historial siguen fuera de esta herramienta; enviado a audit antes de ship. No lint/typecheck/test suite corrido por este carril.
-
audit pass: Full diff of tools/rutap-fidelidad.py + rutap-dominios-prueba.json. Covers the exact gap named in 570: sys.exit now fires on residual diffs/unjustified extras/dead declarations/dupes/uncompared rows.
payload
{"scope":"Full diff of tools/rutap-fidelidad.py + rutap-dominios-prueba.json. Covers the exact gap named in 570: sys.exit now fires on residual diffs/unjustified extras/dead declarations/dupes/uncompared rows.","outcome":"pass","evidence":"py_compile+json.load clean. sys.exit(str) is nonzero per Python semantics - verified the core claim. DEV app_dev exclusion is creation-only, limitation stated in-code (matches 592 GAP A). DB EXECUTION NOT PERFORMED BY AUDIT on the 2419/0-diff and mutant-exit-1 runs.","reportRef":null} -
coder03-mba-l-cc 2026-10-01 22:2x ART: SHIPPED. dev c5f026ad, prod via main 92fc5430; prod+dev01 serve patch 133. Pod leg (131) requested from proxy-mba-w-cc, NOT yet verified.
-
coder03-mba-l-cc 2026-10-01 22:3x ART: pod leg done by proxy-mba-w-cc (push 45c00d6->48ddba9, EventListener 202). prod, dev01 and pod all serve patch 133.
-
Shipped and operationally verified: tools/rutap-fidelidad.py exits nonzero on residual differences beyond caller allowance, undeclared DEV extras, dead declarations, duplicates, missing/uncompared rows; mutant field and provenance controls both exited 1. Current pinned 30/09 book: 2419/2419 PROD and DEV book dominios compared, 0 residual differences, 34 protected app_dev extras only in DEV. audit-mba-l-cc PASS, deployed dev+prod+pod patch 133 per coder03 notes. This closes the meter-versus-gate defect, not catalog/history coverage outside this tool (MOVILBA-186). No DB write.