Files
balam/planeacion/Guion-sesion-2026-08-21.md

7.1 KiB
Raw Permalink Blame History

Guion — sesión del viernes 21-ago-2026, 7:00 am (Noé, Araceli, Pedro)

Objetivo: emitir la primera cotización real en BIND desde FAC-106 y validar las 17 categorías. Alcance: termina en la cotización (sin prefactura, sin timbrado, sin tocar Jira). Sondeo y diagnóstico de anoche: Sondeo-FAC-106-y-payload-2026-08-20.md.


0 · Esta noche (5 min)

  • Avisar a Pedro por WhatsApp — cumple el compromiso del 12-ago de avisar antes de cada escritura, y corrige el shape que se compartió entonces (llevaba VATRate: 16; el correcto es 0.16). Borrador:

Pedro, ya quedó listo el caso sobre FAC-106: la plataforma ya lee el formulario nuevo (cliente, servicio, cantidad, IVA) y encontré la causa del error de la sesión pasada — la tasa de IVA iba en porcentaje y BIND la espera como fracción (0.16), ya corregido y probado en simulación. Mañana muestro la vista previa y, con su ok, emitimos la cotización real y Araceli la cancela al terminar. Nos vemos a las 7.

1 · Antes de las 7:00 (6:35–6:55)

  • docker compose up -d (Postgres ya suele estar arriba) · levantar API y frontend.
  • Verificar que el modo diga ReadOnly al entrar a la pantalla de emisión (quedó así anoche; el candado se abre solo en el paso 4).
  • Re-sondeo exprés de FAC-106 (Pedro anduvo moviendo formularios): abrir la solicitud en la plataforma y confirmar que siga prellenando CEMEX / Servicio de Enlace / 1 / 16% / 1234 / MXN. Si algo cambió, el fallback manual sigue funcionando — se captura a mano en la misma pantalla.
  • Terminal lista con los dos comandos del candado (paso 4 y cierre).
  • Abrir el sondeo en una pestaña (plan B §4 y preguntas).

2 · Al abrir la sesión — ANUNCIAR ANTES DE EJECUTAR (pendiente arrastrado del 12-ago)

  1. Destino de la cotización: se emite real sobre CEMEX con los datos de FAC-106; al terminar, Araceli la cancela en vivo (ella confirmó el 12-ago: sin timbrar, se cancela sin efecto). Así el ejercicio además demuestra la reversa.
  2. La prefactura pertenece a otra sesión (candados: cotización → prefactura → aprobación humana → timbrado).
  3. Qué se corrigió del 500: escala de la tasa, IVA de partida como monto, lista de precios omitida.

3 · Demo en ReadOnly (el camino feliz, sin riesgo)

Abrir bandeja → FAC-106 → Cotizar: la partida se prellena sola desde el formulario nuevo y la vista previa (dry-run) se genera automática — enseñar el body exacto. Aquí se valida con Araceli que los datos son los que ella capturaría.

4 · Emisión real (una sola vez)

dotnet user-secrets set "Bind:Mode" "Write" --project src/Balam.Api   # + reiniciar API

Confirmar → folio y total en pantalla → "véanlo en su BIND" (Ventas → Cotizaciones) → Araceli cancela → candado de vuelta:

dotnet user-secrets set "Bind:Mode" "ReadOnly" --project src/Balam.Api

Si BIND rechaza: el body del error se lee en pantalla (ya no es 500 ciego). Orden de ataque: (1) agregar PriceListID de una cotización reciente del cliente; (2) mandar el GUID del servicio en ID; (3) probar Type. Y si no sale en vivo, Araceli ya dijo la vez pasada: "haz la prueba y podemos agendar otra sesión" — el dry-run mostrado ya es entregable.

5 · Preguntas que SOLO se resuelven con ellos (en orden de impacto)

  1. 🔴 Empresa origen = Balam / RegioTurk / Helmstone — ¿cuentas de BIND distintas? Hay un solo token; si cada empresa factura en su cuenta, cambia el alcance.
  2. 🔴 El combo IVA no tiene 0% y hay clientes de exportación en el combo (ACUNTIA S.A.U., VictTec, IAMCFORWARDER). ¿Se agrega la opción?
  3. 🔴 "Servicio de Enlace" existe 5 veces en BIND con unidad SAT y ChargeVAT distintos — ¿quién depura BIND y cuál es el mapeo etiqueta→ítem? (segunda mitad de lo que pidió Araceli el 12-ago).
  4. Validar las 17 categorías (Pedro las condicionó a Noé+Ara — es esta junta).
  5. Regla de edición: ¿historial de cotizaciones o modificar la misma? (quedó como "regla de negocio de Balam" el 12-ago).
  6. ☁️ Azure — tercera semana; Noé dijo "lo resuelvo con Pedro" y Pedro ahora es el responsable. Requisitos: grupo de recursos + Contributor (app+BD+Key Vault), sin Global Admin.
  7. 👤 Con el relevo a Pedro: ¿a quién se reportan horas/avances/facturación ahora? (todo el circuito iba por Erika).
  8. Recordatorios menores: fijar que manda el combo Cliente (11598) sobre el texto libre (11596); quitar el SLA a estos tickets (Pedro lo dijo, confirmar que se hizo); grabaciones de BIND que Pedro ofreció el 12-ago.

6 · Protocolo si la emisión FALLA (decidido en frío, la noche anterior)

Primeros 30 segundos — narrar, no disculparse. Leer el error de BIND en voz alta desde la pantalla: "BIND lo rechazó con este mensaje — exactamente para esto era la prueba acompañada." El 12-ago el 500 fue ciego; que hoy el diagnóstico se lea en vivo ES la mejora. No silencio, no disculpa larga, no cerrar la ventana.

Regla de intentos: máximo 2 reintentos, ~10 minutos. Solo los del plan B y en orden (PriceListID → GUID en ID → Type) — nada de mutaciones improvisadas: cada reintento es un intento de escritura y el acuerdo con Noé es no probar más de lo definido. Antes de cada reintento, verificar por lectura que el intento anterior NO haya creado la cotización (un 500 puede escribir de todos modos) — evita duplicados y de paso demuestra el control.

Al parar (guion literal): "Ya tengo el diagnóstico exacto en el mensaje de BIND. Lo corrijo hoy mismo y la emisión son 15 minutos — les propongo repetir solo ese paso mañana o el lunes; les confirmo a Pedro en cuanto esté." Compromiso corto y específico; nada de "lo reviso y les aviso" vago. Araceli ya ofreció ese formato el 12-ago ("haz la prueba y podemos agendar otra sesión").

Pivotear la hora a lo que vale más que el POST: las preguntas del §5 (17 categorías, Empresa origen/token, IVA 0%, mapeo, Azure). Si la sesión cierra esas definiciones, fue una buena sesión aunque no haya folio. El dry-run mostrado ya es entregable: el flujo Jira→plataforma quedó demostrado; lo que falló es la última milla contra BIND.

Higienes aunque falle: regresar Bind:Mode a ReadOnly antes de cerrar (decirlo en voz alta: "y regreso el candado a solo-lectura") · mencionar que cada intento quedó auditado en WriteOperations (es argumento de confianza, no de vergüenza) · mismo día: resultado por WhatsApp a Pedro + entrada en la bitácora.

Qué NO decir: no culpar al formulario ni a BIND ni a Pedro; no abrir prefactura/timbrado "para compensar"; no aceptar en caliente compromisos de fecha más allá del re-intento de 15 min.

Qué NO hacer

  • ❌ Emitir antes de la sesión o sin anunciar el destino (candado de Noé, REGISTRO #65 §8).
  • ❌ Dejar Bind:Mode=Write al cerrar.
  • ❌ Abrir el tema de prefactura/timbrado aunque salga bien a la primera — gradualismo explícito de Arturo.