---
asset_id: MIN-EL-Jesus-20260629-v01
version: v02
tipo: MIN — Minuta del día
owner: Jesús
sherpa: Jess
ratificador: Jesús
fecha: 2026-06-29
intellibank: IB-EL-EmpowerLabs
subbank: EQ-EL-Equipo
proyecto: tribus-rrhh · mejora de performance
---
# Minuta del día — Jesús · 2026-06-29
## Qué se hizo
- Arrancó el room bajo WORX con `/arrancaroom` — contexto y perfil del operador cargados.
- **Análisis de auditoría de performance** (`Auditoria-home.md`) del proyecto `tribus-rrhh`:
- Revisión de `app-routing.module.ts` (50 rutas, todas eager, cero NgModules por página).
- Revisión de `angular.json` (budgets en 135 MB inútiles, faltan `vendorChunk` y `buildOptimizer`).
- Revisión de `index.html` (sin preconnect a genniux.net, sin skeleton, Stripe síncrono, bug con dos ``).
- Revisión de `inicio.component.ts` (6 llamadas API en constructor, no en ngOnInit).
- Revisión de `ngsw-config.json` (un solo grupo, timeout 30s, poco granular).
- Identificado `congras.gif` (506 KB) activo en `registro-comprador.component.html`.
- Creado `data/auditoria/Analisis-factibilidad-home.md` con evaluación completa por ítem.
- **Análisis comparativo con rebelocity-club** (`Factibilidad-home.md`):
- Verificado qué de la Fase 1 y 2 ya existe en rebelocity-club.
- Confirmado plan 100% replicable: mismo stack, mismo API, mismos problemas.
- Actualizado `Analisis-factibilidad-home.md` con comparativa y plan de réplica.
- **Fase 1 implementada en tribus-rrhh** (7 cambios aplicados, ver detalle abajo):
- **Iteración servicio de banners:** resuelto bug que impedía la correcta visualización en dispositivos móviles.
- **Junta con Ángeles y Gustavo:** revisión de avances y nuevos ajustes sobre la plataforma de Rebelocity Club.
- **Análisis de notificaciones** (`src/app/custom/top-bar` + `src/app/services/notifications.service.ts`):
- 12 issues documentados en `data/auditoria/Analisis-notificaciones.md`.
- 4 issues de severidad alta: `connect()` sin guard (listeners acumulados), crash por `notifData.last` undefined, `BreakpointObserver` sin `takeUntil`, y `location.replace()` que rompe el modelo SPA.
- Issues medios: `playAudio()` crea Audio nuevo por notificación, `validRoutesF()` lanza 4 HTTP calls en cada invocación, 15 subscriptions HTTP sin `takeUntil`.
- Issues bajos/mínimos: `window.addEventListener` sin cleanup, `BroadcastChannel` no cerrado, `destroyed$` sin `.complete()`, código muerto del bloque `isBroadcast`, `console.error` en producción.
- **Fase 2 implementada en tribus-rrhh**:
- `index.html`: preconnect + dns-prefetch a genniux.net, orden fonts corregido, skeleton screen con shimmer (`#342d78`), bug doble `` eliminado, script Stripe restaurado (se había eliminado por error).
- `angular.json`: `vendorChunk: true`, `buildOptimizer: true`, `optimization: true`, budgets reales (10 MB warning / 15 MB error).
- `src/app/directives/lazy-image.directive.ts`: creada `LazyImageDirective` + declarada en `app.module.ts` — aplica `loading="lazy" decoding="async"` a todas las `
` sin atributo loading.
- `congras.gif` convertido a WebM con ffmpeg (506 KB → 172 KB, −66%); `registro-comprador.component.html` usa `