d95487779 · accesos 23 de septiembre de 2026 4c6808ac5 · rama pablo-estrada/pantallas-fieles-al-productoLo que sostiene la revisión y en las consolas estorbaría: quién es quién, la matriz completa, lo por venir, los desvíos, lo público sin sesión y la leyenda del checklist.
El rol sale del cargo de TNI, no del perfil. Las cuatro fichas repiten, palabra por palabra, la tabla de reglas que Pablo fijó el 22-sep. Las cuentas son las del clon local: sin medir (falta salida/cuentas-por-rol.json).
tni_admin
cuentas: sin medirfranchise_owner
cuentas: sin medirfranchise_admin
cuentas: sin medirfranchise_user
cuentas: sin medirSin acceso. Cargos 9 (técnico) y 10 (otro), aunque tengan perfil de acceso en TNI: sin acceso.
El tipo Role todavía declara 6 roles; el producto usa cuatro. Los otros siguen en la matriz y por eso se cuentan aparte:
auditor · Auditor · sombra de sólo lectura del Admin TNI: ve lo mismo y no escribe nada · 51 pantallas en la matriz · cuentas: sin medircountry_admin · Director de país · director de país; nadie lo tiene y su retiro final es CAT-5165 · 54 pantallas en la matriz · cuentas: sin medirEl «gerente» de antes ya no existe en el tipo Role: hoy Gerente es franchise_admin, y los documentos que digan otra cosa están viejos.
SCREEN_ACCESS × RUTA_SCREENUna pantalla (Screen) es la unidad a la que la matriz le da o le niega el paso; una pantalla agrupa una o varias rutas. ✓ = declarada para el rol; — = no. Es lo que el código DECLARA, no lo que contesta: eso se mide abajo, rol por rol.
| pantalla | rutas | Admin TNI | Dueño | Gerente | Empleado |
|---|---|---|---|---|---|
admin_ai_quality | 1 | ✓ | — | — | — |
admin_audit | 2 | ✓ | — | — | — |
admin_cs_pipeline | 1 | ✓ | — | — | — |
admin_data | 1 | ✓ | — | — | — |
admin_enriquecimiento | 1 | ✓ | — | — | — |
admin_feature_flags | 1 | ✓ | — | — | — |
admin_finops | 1 | ✓ | — | — | — |
admin_franchises | 6 | ✓ | — | — | — |
admin_network | 1 | ✓ | — | — | — |
admin_observability | 1 | ✓ | — | — | — |
admin_policies | 1 | ✓ | — | — | — |
admin_prospeccion | 1 | ✓ | — | — | — |
admin_quotas | 1 | ✓ | — | ✓ | — |
admin_report_delivery | 2 | ✓ | — | — | — |
admin_subprocessors | 1 | ✓ | — | — | — |
admin_tablero | 1 | ✓ | — | — | — |
admin_users | 2 | ✓ | ✓ | ✓ | — |
admin_whatsapp_signup | 1 | ✓ | — | — | — |
billing | 4 | ✓ | ✓ | ✓ | ✓ |
campaigns | 3 | — | ✓ | ✓ | ✓ |
clients | 2 | — | ✓ | ✓ | ✓ |
cross_sell | 2 | ✓ | ✓ | ✓ | ✓ |
inbox | 2 | — | ✓ | ✓ | ✓ |
legal | 3 | ✓ | ✓ | ✓ | ✓ |
onboarding | 6 | ✓ | ✓ | ✓ | — |
pipeline | 6 | — | ✓ | ✓ | ✓ |
prospecting | 8 | — | ✓ | ✓ | ✓ |
reports | 18 | ✓ | ✓ | ✓ | — |
reports_dinero | 1 | ✓ | ✓ | ✓ | — |
reports_gasto | 1 | ✓ | — | — | — |
reports_motor | 1 | ✓ | — | — | — |
reports_precalculo | 1 | ✓ | — | — | — |
reports_red | 3 | ✓ | — | — | — |
reports_redVista | 1 | ✓ | ✓ | ✓ | — |
rocket | 2 | — | ✓ | ✓ | ✓ |
settings_agenda | 3 | — | ✓ | ✓ | ✓ |
settings_modelos_ia | 1 | ✓ | — | — | — |
settings_oficina | 16 | — | ✓ | ✓ | — |
settings_personal | 8 | ✓ | ✓ | ✓ | ✓ |
team | 1 | — | ✓ | ✓ | — |
today | 2 | ✓ | ✓ | ✓ | ✓ |
| pantallas declaradas | 121 | 74 | 81 | 82 | 37 |
planes: pendiente de medir.
Rutas que existen en el árbol para redirigir. «Declarado» es lo que dice su page.tsx; «medido» es a dónde mandó de verdad a cada rol.
| origen | declarado | Admin TNI | Dueño | Gerente | Empleado | sin sesión |
|---|---|---|---|---|---|---|
/ |
→ /login |
307 → /login | 307 → /login | 307 → /login | 307 → /login | 307 → /login?next=… |
/admin/network |
→ /reports/network |
307 → /reports/network | 307 → /reports/network | 307 → /reports/network | 307 → /reports/network | 307 → /login?next=… |
/admin/reports |
→ /reports |
307 → /reports | 307 → /reports | 307 → /reports | 307 → /reports | 307 → /login?next=… |
/ai-sales |
→ /sales/discover |
307 → /sales/discover | 307 → /sales/discover | 307 → /sales/discover | 307 → /sales/discover | 307 → /login?next=… |
/leads |
→ /pipeline |
307 → /pipeline | 307 → /pipeline | 307 → /pipeline | 307 → /pipeline | 307 → /login?next=… |
/sales |
→ /sales/discover |
307 → /sales/discover | 307 → /sales/discover | 307 → /sales/discover | 307 → /sales/discover | 307 → /login?next=… |
/sales/board |
→ /sales-board |
307 → /sales-board | 307 → /sales-board | 307 → /sales-board | 307 → /sales-board | 307 → /login?next=… |
/sales/search |
→ /sales/discover/sector |
307 → /sales/discover/sector | 307 → /sales/discover/sector | 307 → /sales/discover/sector | 307 → /sales/discover/sector | 307 → /login?next=… |
/settings/billing |
→ /billing |
307 → /settings | 307 → /billing | 307 → /billing | 307 → /settings | 307 → /login?next=… |
/settings/franchise/agenda |
→ /settings/franchise/equipo |
307 → /settings | 307 → /settings/franchise/equipo | 307 → /settings/franchise/equipo | 307 → /settings/franchise/equipo | 307 → /login?next=… |
/settings/reportes |
→ /reports/semanal |
307 → /reports/semanal | 307 → /reports/semanal | 307 → /reports/semanal | 307 → /reports/semanal | 307 → /login?next=… |
/today |
→ /dashboard |
200 ↪ /dashboard | 200 ↪ /dashboard | 200 ↪ /dashboard | 200 ↪ /dashboard | 307 → /login?next=… |
anonimoLo que contestó el producto a una petición sin cookie, y qué hace con quien ya entró.
| ruta | nombre | sin sesión | Admin TNI | Dueño | Gerente | Empleado |
|---|---|---|---|---|---|---|
/acceso-denegado |
sin rótulo | 200 | 200 | 200 | 200 | 200 |
/agendar/[oficina]abre con /agendar/679 |
sin rótulo | 200 | 200 | 200 | 200 | 200 |
/agendar/gestionar |
Cronostítulo de la página; sin entrada de menú | 200 | 200 | 200 | 200 | 200 |
/dev/cronos |
sin rótulo | 307 → /login?next=… | 200 | 200 | 200 | 200 |
/invitacion/[token] |
Activar tu cuenta · Truly Globaltítulo de la página; sin entrada de menú | sin medir | sin medir | sin medir | sin medir | sin medir |
/login |
Iniciar sesióntítulo de la página; sin entrada de menú | 200 | 307 → /dashboard | 307 → /dashboard | 307 → /dashboard | 307 → /dashboard |
/login/en |
Sign intítulo de la página; sin entrada de menú | 200 | 307 → /dashboard | 307 → /dashboard | 307 → /dashboard | 307 → /dashboard |
/login/mfa |
Verificación en dos pasos · Truly Globaltítulo de la página; sin entrada de menú | 307 → /login?next=… | 307 → /login?next=… | 307 → /login?next=… | 307 → /login?next=… | 307 → /login?next=… |
/login/mfa/setup |
Activar 2FA · Truly Globaltítulo de la página; sin entrada de menú | 307 → /login?next=… | 200 | 200 | 200 | 200 |
/login/restablecer |
Contraseña · Truly Globaltítulo de la página; sin entrada de menú | 200 | 200 | 200 | 200 | 200 |
/roadmap |
sin rótulo | 200 | 200 | 200 | 200 | 200 |
/session-expired |
Sesión expiradatítulo de la página; sin entrada de menú | 200 | 200 | 200 | 200 | 200 |
Cada número cicla pendiente → ok → defecto. El punto 1 arranca en defecto cuando la medición ya dijo que la pantalla no abre, y el 8 cuando la consola gritó en la foto. Lo que marcás queda en este navegador (las marcas se comparten entre todas las páginas del sitio); Exportar revisión en la portada baja un revision-pantallas.json que se guarda en el repo y el sitio lo vuelve a leer la próxima vez que se genere.
Última revisión guardada en el repo: ninguna todavía.