basquetWi + New ticket
movilba MOVILBA-499

El '0' de los identificadores es el valor del libro: sacarlo del reporte de contaminacion y dejar la regla escrita una sola vez

Done normal cmcoder02-mba-l-cc

Decision de Elazar, CLI 2026-09-18 (nqla 2a): en id_canbus, id_adas e id_mdvr el '0' ES el valor del libro. Se guarda y se exporta verbatim, y se DEJA DE reportarlo a Eugenia como contaminacion. EL DATO QUE LO DECIDE, y hay que leerlo antes de tocar nada: en esas columnas el libro NO TIENE NUNCA celda vacia - 0 vacias sobre 5319 filas con dominio, medido sobre el libro vigente. O sea que la rama 'celda vacia -> NULL' de la regla no tiene hoy ninguna fila que la ejerza, y la premisa original de MOVILBA-177 ('el libro tiene la celda VACIA y PROD guarda 0') era falsa: por eso la re-medicion dio 0/0/0. DOS TEXTOS QUE HOY SE CONTRADICEN, y esta decision los alinea: 1. docs/reference/rutap-transform-rules.md L86-92 dice copiar el '0' verbatim y que PROD ya cumple. GANA ESTE. 2. tools/rutap-snapshot-import.py L927-944 y L999-1000 clasifica el '0' de COLS_ID como 'relleno "0" (sin identificador cargado)' con familia 'AL LIBRO', o sea se lo reporta a Eugenia como suciedad: 9078 celdas sobre el libro vigente. Ese bloque SALE. TRABAJO: (a) sacar de clases_de() la clase de COLS_ID -es la unica rama que usa COLS_ID; COLS_CONTEO y es_cero siguen igual porque el 0 de un CONTEO es el numero cero y eso no cambia-; (b) reescribir el comentario largo de L925-943 para que quede la regla nueva y no la vieja, sin dejar el parrafo viejo como historia al lado, que es lo que produjo esta contradiccion; (c) amender rutap-transform-rules.md L86-92 para que diga EXPLICITO el corte por tipo de columna -IDENTIFICADOR: el libro manda, 0 se guarda y se exporta; CONTEO: el 0 es el numero cero, tampoco se pliega- y sacar el lenguaje 'UNTESTED' que dejo el hueco para que un segundo lector lo completara distinto. NO TOCAR: las columnas de CONTEO (camaras_adas, camaras_internas) ni es_cero(), que existe porque openpyxl devuelve floats y str(0.0) no es '0'. Y no se cambia ningun dato en ninguna base: esto es reporte y documentacion.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus assigned · 4w ago
    coder02-mba-l-cc
  • wi-cli-venus note · 4w ago
    PRECISION de audit, re-medida de los archivos, que angosta el trabajo: los DOS textos COINCIDEN en la medicion. rutap-transform-rules.md L86 y rutap-snapshot-import.py L861-864 dicen los dos '0 celdas vacias sobre 5319 filas con dominio'. Y el almacenamiento YA guarda el 0 verbatim: COLS_ID tiene UNA sola aparicion, en clases_de(), que es un clasificador de REPORTE y no toca el INSERT. O sea que NO hay que buscar ningun pliegue a NULL en el camino de datos porque no existe. Lo unico que retira la decision de Elazar es que el import le siga diciendo a Eugenia que esas 9078 celdas son contaminacion para revisar. Alcance real: borrar el bloque 'if col in COLS_ID and es_cero(valor)' de clases_de(), y reescribir el comentario largo para que quede solo la regla vigente, sacando el encuadre 'gana esta y no la anterior' en vez de dejarlo al lado del texto nuevo.
  • wi-cli-venus progress · 4w ago
    Code done, uncommitted in working tree: importer clases_de block removed, comments rewritten to one rule, rutap-transform-rules.md L86 rewritten, test-rutap-cero-relleno.py rewritten (fails vs HEAD importer, passes now). Re-measured from xlsx 2026-09-17-0942: 0 blanks / 5514 rows. Sent to audit-mba-l-cc; closing after their verdict.
  • wi-cli-venus completed · 4w ago
    Committed ddc1cad1 on dev (coder03), audited by audit-mba-l-cc via git show: 3 files, only 499 hunks. Re-measured 0 blanks in id_canbus/id_adas/id_mdvr over 5514 rows on the 2026-09-17-0942 book (xlsx) and PROD v_rutap_latest. No data changed in any base.
task
4w ago by wi-cli-venus
4w ago
2026-09-18 15:15