Flujo de revisión y roles¶
Cada solicitud de liberación avanza por cuatro etapas. El seguimiento muestra el porcentaje y el siguiente paso sin recargar la página.
| Etapa | % | Quién | Dónde |
|---|---|---|---|
| Revisión preliminar | 25 → 40 | SCM responsable | Mi bandeja SCM → «1. Revisión SCM» |
| Checklist SCM | 40 → 60 | SCM responsable | «2. Checklist»: cada cambio deja evidencia y al cerrar se genera el paquete |
| Peer Review | 60 → 80 | Revisor asignado | Mi bandeja Peer Review → «3. Peer Review» (ve el reporte de evidencias) |
| VoBo final | 80 → 100 | SCM responsable | Mi bandeja SCM → «4. VoBo» (el documento incluye el paquete de evidencias) |
sequenceDiagram
actor SCM
participant Portal
actor Revisor
SCM->>Portal: Aprueba la revisión preliminar
SCM->>Portal: Completa el checklist (evidencia + paquete)
SCM->>Portal: Envía a Peer Review con el correo del revisor
Revisor->>Portal: Abre la solicitud desde su bandeja
Revisor->>Portal: Revisa el reporte de evidencias e inicia
Revisor->>Portal: Aprueba, observa o rechaza
SCM->>Portal: Genera el VoBo final (100 %)
Separación de funciones¶
El portal se ejecuta con la cuenta de quien lo abre, y cada regla se valida en el servidor, no solo en la interfaz:
- Solo el revisor asignado puede iniciar, aprobar, observar o rechazar el Peer Review, y debe ser distinto del SCM responsable.
- Solo el SCM responsable genera el VoBo. Se valida antes de crear el documento, así que un intento no autorizado no deja archivos sueltos.
- La bandeja del revisor usa siempre la cuenta de la sesión: nadie puede pedir la bandeja de otro enviando un correo distinto desde el navegador.
- El revisor puede abrir la solicitud que se le asignó, pero esta no aparece en la bandeja SCM.
- Los roles (
SCM,PEER,DEV,admin/lead) se leen de una pestaña de configuración de la Sheet.
Lecciones del desarrollo¶
google.script.run no transporta fechas
Una respuesta del servidor que contiene un objeto Date llega al navegador
como null. El síntoma fue que todas las solicitudes mostraban el mismo
porcentaje y el flujo "no avanzaba" hasta recargar. Ahora todas las
respuestas pasan por una serialización que convierte las fechas a texto,
y el arnés local reproduce esa regla para detectarlo antes de desplegar.
Columnas equivalentes en la hoja
La plantilla conserva nombres de columna viejos y nuevos para el mismo dato. El mapeo leía la primera columna existente aunque estuviera vacía. Ahora lee el primer valor no vacío y escribe en todas las equivalentes.
Probar el flujo completo, no las piezas
Revisión, checklist, Peer Review y VoBo pasaban cada uno por separado, pero el recorrido completo tenía ocho fallos encadenados (estados fuera de catálogo, bloqueos que se activaban de más, una función inexistente en el VoBo). La prueba de CI recorre ahora el flujo de punta a punta, simulando las dos cuentas.