Registro #65 completo: la sesión del 12-ago aparece — Pedro releva a Erika como PM y el primer POST a BIND falla con 500

Transcript de la sesión del 12-ago localizado y archivado en fuentes/.
Reemplaza el stub que quedó abierto en el commit anterior.

Lo que resuelve:
- Noé anuncia que Erika deja de ser la PM y el seguimiento pasa a Pedro.
  El anuncio fue solo verbal; nunca se comunicó por escrito.
- Se decide que la cotización la genera la PLATAFORMA, no el comercial
  (venta nueva). Cierra la contradicción abierta desde el 6-jul.
- El molde que Noé encargó a Araceli nunca existió: Pedro construyó un
  formulario nuevo en vivo, apoyado en el Excel enviado esa mañana.
- El catálogo de BIND está sucio (servicios duplicados, nombres de personas,
  periodos en el nombre). Se acuerda depurarlo y homologar los combos de
  Jira con los de BIND: de ahí salen las 17 categorías de Pedro.
- La primera escritura real a BIND devolvió ERROR 500: faltan campos que el
  portal manda en ceros y la lista de precios. No se creó cotización.
  Corrige la lectura del #64, que quedaba en 73/73 de dry-run.

Reglas abiertas que dejó la sesión: edición vs historial de cotizaciones,
récord de cancelaciones sin ejecutarlas, quitar SLA a los tickets de
cotización, grabaciones de BIND que Pedro no envió, y la herramienta de
seguimiento del proyecto (Jira de paga vs SharePoint vs Drive).

Azure no se tocó pese a estar en la agenda; queda con Pedro.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Johann
2026-08-20 23:29:47 -06:00
parent 5d846ecfe5
commit a03f81f461
3 changed files with 637 additions and 20 deletions
+17 -6
View File
@@ -7,16 +7,27 @@ _Última actualización: **2026-08-20, noche.** Cruce completo del buzón contra
## 🔥🔥 SESIÓN VIERNES 21-AGO, 7:00 AM — Noé, Araceli y Pedro
- [ ] 🔥 **Johann — inspeccionar `FAC-106` por API esta noche.** Pedro avisó que **la licencia bloquea la UI** y ofreció pantallazo; no hace falta: el **token PAF corre sobre la cuenta de Pedro**, que sí tiene licencia, y así se sondeó el sitio el 6-ago y el 11-ago. Lo que hay que sacar: **qué campos nuevos trae el formulario modificado**, si aparece algo que sirva de **conceptos/partidas**, y si `Monto sin IVA` sigue siendo `customfield_11556`. **Sin esto se llega a ciegas.** Ver [REGISTRO #67](REGISTRO.md).
- [ ] 🔥 **Johann — preparar el caso de escritura sobre `FAC-106`** (comprometido con Pedro el 19-ago). La capa ya existe y corre contra cualquier ticket FAC ([#64](REGISTRO.md)); ajustar el mapeo a los campos nuevos que revele el sondeo.
- [ ] 🔥🔴 **Johann — resolver el ERROR 500 del POST de cotización antes de mañana.** El 12-ago la primera escritura real contra BIND **falló** ([REGISTRO #65](REGISTRO.md) §6): faltaban campos que el portal manda en ceros y, sobre todo, **la lista de precios**. Definición de Araceli: *"nosotros realmente no tenemos una lista de precios… ese lo podríamos agarrar del **monto sin IVA** del [ticket]. Ese sería nuestra lista de precios"* — y el precio se captura **directo, como campo abierto**, sin cantidad × tarifa. **Ajustar el shape del POST a eso y probar en local antes de la sesión.** Es el segundo intento de emitir la primera cotización real.
- [ ] 🔥 **Johann — preparar el caso de escritura sobre `FAC-106`** (comprometido con Pedro el 19-ago). La capa ya existe y corre contra cualquier ticket FAC ([#64](REGISTRO.md)); ajustar el mapeo a los campos del **nuevo formulario** (Empresa origen · Summary · Descripción *(ahora combo)* · Nombre del cliente *(combo)* · Tipo de moneda · Monto sin IVA · Fecha de vencimiento). ⚠️ El 12-ago **el cliente no se detectó** porque el mapeo salía del `summary`/`description`: verificar que ahora venga de campo estructurado.
- [ ] 🔥 **Johann — en la sesión: encender `Bind:Mode=Write` solo para emitir y regresarlo a ReadOnly antes de cerrar.**
- [ ] ⚠️🔥 **Johann — anunciar al abrir la sesión el destino de la cotización real** (cancelarla al terminar vs. cliente de prueba) y que la prefactura pertenece a una sesión posterior. **Pendiente arrastrado del 12-ago; sigue sin resolverse.**
- [ ] 🔴 **Validar las 17 categorías con Noé y Ara.** Pedro redujo el catálogo de servicios de **67 → 17** pero lo condicionó: *"tengo que verlas con Noé y Ara antes"*. **Es el momento de cerrar el hueco de conceptos/partidas** que bloquea B7 desde el [#62](REGISTRO.md).
- [ ] ☁️ **Azure — reabrir el tema.** Noé ofreció el 11-ago explorarlo *"con una cuenta que estamos creando para este uso"*; no consta qué pasó el 12-ago. Llevar los requisitos del 28-jul: grupo de recursos + **Contributor** (app + BD + Key Vault), sin Global Admin.
- [ ] 👤 **Confirmar en la sesión quién es el responsable del proyecto.** Desde el 18-ago todo se coordina con **Pedro**; Erika no aparece desde el 29-jul. Johann recuerda una junta donde se anunció el relevo — sin registrar. Ver [REGISTRO #65](REGISTRO.md).
- [ ] ☁️ **Azure — insistir; lleva 3 semanas sin avanzar.** El 11-ago Noé ofreció explorarlo en la sesión *"con una cuenta que estamos creando para este uso"*; **el 12-ago no se tocó** — Noé solo dijo *"eso lo resuelvo con Pedro"* ([REGISTRO #65](REGISTRO.md) §8). Ahora que Pedro es el responsable, es su pendiente directo. Requisitos ya comunicados el 28-jul: grupo de recursos + **Contributor** (app + BD + Key Vault), sin Global Admin. **Sin esto la transición automática no existe** y todo queda en disparo manual.
- [x] ~~👤 **Confirmar quién es el responsable del proyecto.**~~ → **CONFIRMADO: Pedro.** Noé lo anunció el 12-ago: *"Erika ya no va a ser la PM de este proyecto. El seguimiento del proyecto lo va a traer Pedro."* ⚠️ **Nunca se comunicó por escrito** — el anuncio existe solo en la grabación. Ver [REGISTRO #65](REGISTRO.md) §1.
## 🆕 Abierto por la sesión del 12-ago ([REGISTRO #65](REGISTRO.md))
- [ ] 🔴 **Balam — definir la regla de EDICIÓN de cotizaciones.** Araceli las modifica seguido (*"siempre hay ajustes"*) y verificó en vivo que **BIND conserva el mismo número al editar**. La plataforma no implementa edición. Disyuntiva planteada por Noé y dejada a Balam: **historial de cotizaciones** (ticket nuevo o regenerar) vs. **modificar la misma**. Araceli se inclina por conservar historial. **Impacta el diseño de B7** — preguntarlo mañana.
- [ ] ⚠️ **Cancelaciones: la plataforma NO cancela, pero SÍ lleva el récord.** Acordado el 12-ago. Antes del timbrado se cancela libremente; después requiere acuerdo con el cliente por correo → cancelación en el ERP → despacho ante el SAT → **el cliente acepta en una liga del SAT**. Falta modelar el récord (*"esta factura se canceló y fue sustituida por esta"*).
- [ ] **Balam/Pedro — quitar el SLA a los tickets de cotización** para que no impacten métricas (acordado con Araceli en la sesión).
- [ ] 📼 **Pedro — enviar las grabaciones de BIND** (altas de proveedor/clientes, facturación y una tercera). Ofrecidas al cierre del 12-ago; **no consta que hayan llegado** — no aparecen en el buzón al 20-ago.
- [ ] 🗂️ **Balam — resolver la herramienta de seguimiento del proyecto.** El tablero de Jira para las actividades de Johann *"muy próximo iba a necesitar que sea de paga por el tipo de licencia"*; se barajaron **SharePoint** y **Google Drive**; Noé prefiere Jira pero falta permiso de admin para crear spaces. Mientras tanto sigue vigente lo del [#58](REGISTRO.md): **el Excel de horas ES el sistema de seguimiento**.
- [ ] 💰 **Definir a quién se le reportan horas, avances y facturación ahora.** Todo el circuito administrativo iba por **Erika**: cortes de horas, Excel de avance, recordatorios de factura ([#45](REGISTRO.md), [#51](REGISTRO.md), [#58](REGISTRO.md), [#59](REGISTRO.md)). Con el relevo del 12-ago **nadie dijo qué pasa con esa vía** — y el relevo ni siquiera se comunicó por escrito. **Preguntarlo mañana**: si el seguimiento es con Pedro, ¿los cortes de horas también, o siguen con Erika/Paola?
- [ ] 🔒 **Johann — avisar a Pedro antes de cada escritura** (cotización o prefactura), ofrecido en la sesión. Noé reafirmó el candado: *"no hacer más pruebas de lo que definiéramos, para evitar errores o cosas en producción"*.
## 🚨 Huecos de registro abiertos (detectados en el cruce del 20-ago)
- [ ] 🚨 **Capturar la minuta de la sesión del 12-ago** ([REGISTRO #65](REGISTRO.md)). No hay notas ni transcripción. Cuatro preguntas por responder: ¿se emitió cotización real en BIND (folio, se canceló)?, ¿qué pasó con Azure?, ¿fue ahí donde se nombró a Pedro responsable?, ¿se capturó el molde de Araceli?
- [x] ~~🚨 **Capturar la minuta de la sesión del 12-ago**~~ → **HECHO (20-ago):** transcript localizado y registrado en [REGISTRO #65](REGISTRO.md) (`../fuentes/2026-08-12 - Transcript - Sesion prueba de escritura Jira-BIND.txt`). Las cuatro preguntas quedaron respondidas: **no** se emitió cotización (error 500); **Azure no se tocó** y quedó con Pedro; **sí**, ahí Noé anunció a Pedro como responsable del seguimiento; y **el molde de Araceli nunca existió** — Pedro construyó un formulario nuevo en vivo.
- [ ] 📌 **Versionar `Cotizacion-BIND-campos-y-catalogos.xlsx`** — está en la raíz del repo sin trackear y ya es el insumo que Balam usó para rehacer el formulario de Jira ([#66](REGISTRO.md)).
- [ ] 📄 **Leer los procedimientos de carga de facturas** ya descargados en `../fuentes/` ([#46a](REGISTRO.md)): 5 portales — Cemex, Acuntia, **ATC Consolidados**, DYLO y **Victec**. ⚠️ **Dos clientes que el Discovery nunca mencionó** y Axie no aparece: el universo de destinos de envío **no está cerrado**.
- [ ] 🗺️ **Contrastar el diagrama del flujo de facturación de Jira** (`../fuentes/2026-07-22 - Correo - Flujo facturacion JIRA BALAM.png`, [#57a](REGISTRO.md)) contra el disparador acordado y lo observado por API.
@@ -28,11 +39,11 @@ _Última actualización: **2026-08-20, noche.** Cruce completo del buzón contra
- [x] ~~🔥 **Johann — responder el correo del hilo de Jira**~~ → **Enviado el 10-ago.** Pide ticket de ejemplo, propone mié 12 / jue 13 a las 7:00 am, fija el alcance en la cotización y recuerda Azure. Texto en [REGISTRO #62](REGISTRO.md).
- [x] ~~🔥 **Araceli — levantar el TICKET DE EJEMPLO capturado "como debería ser"** (ruteado por Noé el 11-ago; la noche del 11 no existía)~~ → **Lo resolvió PEDRO el 20-ago con `FAC-106`**, tras rehacer el formulario de Jira contra el Excel de campos de BIND ([#66](REGISTRO.md), [#67](REGISTRO.md)). ⚠️ **No consta que Araceli haya capturado el molde** que Noé le pidió: el camino fue otro — Balam modificó el formulario y Pedro levantó el ticket. Los planes B y C (captura en vivo / `FAC-100`) quedan sin usar.
- [x] ~~🔥 **Balam/Noé — confirmar la sesión** (mié 12 o jue 13, 7:00 am)~~ → **CONFIRMADA por Noé (11-ago, 10:41 am): miércoles 12-ago, 7:00 am.** Además, **Azure se explora en la misma sesión** con una cuenta nueva creada para este uso. Ver [REGISTRO #63](REGISTRO.md).
- [ ] 🔴 **Conceptos/partidas — se resuelve MAÑANA, con `FAC-106` y las 17 categorías.** El acuerdo del 4-ago resolvió el monto (`customfield_11556`) pero **no existe campo de conceptos en todo el sitio de Jira**. Si en el molde el desglose no cabe en ningún campo, hay que agregar uno; si no, la cotización va de una sola línea. **Sigue siendo el único bloqueo real para cerrar B7.**
- [ ] 🔴 **Conceptos/partidas — la vía quedó definida el 12-ago: DEPURAR EL CATÁLOGO, no agregar un campo.** Araceli mostró que el combo de servicios de BIND está sucio (`040` y `029` son el mismo servicio; entradas con nombres de personas, "monitor Samsung", periodos en el nombre) y se acordó dejar **solo opciones genéricas**, volver **combo** la descripción del ticket y **homologar los combos de Jira con los de BIND**. Pedro ejecutó la depuración: **67 → 17 categorías**, pendientes de validar **mañana** con Noé y Ara. Dato fiscal: horas de consultoría = unidad SAT **`E48`**. Ver [REGISTRO #65](REGISTRO.md) §5, [#67](REGISTRO.md).
- [ ] 🔴 **ACUNTIA — se resuelve con el segundo ticket de ejemplo.** `FAC-100` trae **un solo** `Monto sin IVA` (7,594.00 USD) para el ticket que históricamente representa 40–48 facturas. ¿Un ticket → una cotización? Ver [REGISTRO #55](REGISTRO.md) punto 6.
- [ ] ⚠️ **Tickets de `Automation for Jira` — convertido en SUPUESTO, ya no bloquea.** 10 de 69 no tienen request type ni un solo campo (incluido `FAC-91`, vivo en validación nacional). En el correo del 10-ago se asienta que **siguen tramitándose a mano** y que la automatización cubre solo los que entran por el portal. Si Balam objeta, la regla de Automation tendría que propagar los campos (trabajo de ellos). El molde capturado a mano no puede resolver esto.
- [ ] ⚠️🔥 **Johann — decidir el destino de la cotización de la prueba en BIND.** El ejercicio escribe una **cotización real en BIND producción**. Dos salidas: cancelarla al terminar o apuntarla a un cliente de prueba. **Decidir esta noche y anunciarlo al abrir la sesión del 12, antes de ejecutar.**
- [ ] 🔴 **¿El comercial ya genera la cotización en BIND, o la genera la plataforma?** Contradicción abierta: el 6-jul Ara dijo que **el comercial la genera y la plataforma la convierte** a prefactura ([REGISTRO #27](REGISTRO.md)); el 4-ago Arturo dijo que **la plataforma la genera**; y el formulario de Jira sigue exigiendo **adjuntar la cotización**. Si ambas cosas ocurren, **quedan dos cotizaciones por ticket**. Se resuelve viendo qué adjunto pone Arturo en el ticket de ejemplo: cotización de BIND ya existente (→ convertir) o documento comercial (→ crear).
- [x] ~~🔴 **¿El comercial ya genera la cotización en BIND, o la genera la plataforma?**~~ → **RESUELTO en la sesión del 12-ago: la genera la PLATAFORMA.** Noé le preguntó a Araceli si le serviría que Jira hiciera la cotización y evitarle el primer paso → *"Sí, sí me serviría"* → *"vamos a hacer ese ejercicio, Johann"*. El paso comercial de cotizar a mano desaparece para **venta nueva**; la **recurrente** sigue fuera de alcance (comercial solo avisa el periodo y administración prefactura). Ver [REGISTRO #65](REGISTRO.md) §3.
- [x] ~~**Alcance del ejercicio en vivo: ¿cotización o prefactura?**~~ → **Decidido (10-ago): termina en la COTIZACIÓN.** Es lo que contestó Arturo el 4-ago; la aprobación de Araceli va entre `En proceso de facturación` y `Facturado`, así que la prefactura pertenece después; Arturo pidió gradualismo explícito; y la cotización se cancela sin efecto fiscal mientras la prefactura es un registro en `Invoices` con `UUID = null`. La prefactura queda para la segunda sesión. Candados acordados: **cotización → prefactura → aprobación humana → timbrado** ([REGISTRO #55](REGISTRO.md)).
- [ ] ⚠️ **La transición automática depende de Azure.** En la prueba del miércoles el disparo es **manual** (pipeline `Draft→DryRun→Confirmed` de ADR-001 con flags apagados). Para que corra automática hace falta el ambiente publicado y corriendo continuo — otro argumento para insistir en el acceso a Azure.
- [x] ~~🔥 **Johann — preparar el flujo contra el ticket de ejemplo**~~ → **CONSTRUIDO (11-ago, noche):** contrato `Quotes_NewQuote` obtenido del portal público, `CreateQuoteAsync` con guardas, `POST /api/emision/cotizacion` (dry-run/confirmación auditadas en `WriteOperations`), pantalla `solicitudes/:id/cotizar` y vínculo ticket→cotización. 73/73 pruebas. **Corre contra cualquier ticket FAC** — el molde solo mejora los datos. La escritura real sigue gateada a `Bind:Mode=Write`, que se enciende SOLO en la sesión. Ver [REGISTRO #64](REGISTRO.md).