Admin Redesign v5 · "El objetivo manda"

El mapa de las 40 pantallas y cómo aterrizarlas por fases

P1 (el shell) está hecho: la nueva sidebar 2-modos, el switcher ⌘O, el estado de mes y ⌘K envuelven el admin — pero las páginas por dentro siguen siendo las viejas. Este es el inventario de cada pantalla: qué hace hoy, cómo se re-piensa su flow + UI + UX bajo el objetivo, cuánto pesa, y en qué orden entra.

P1 shell — hecho 40 pantallas mapeadas 6 fases · cada una se mergea sola P2 "Hoy" es lo siguiente
★ El PLAN MAESTRO (grounded, ejecutable) → Los 7 journeys → La realidad hoy

01 Estrategia de merge

El shell es no-breaking: re-parenta las páginas que ya existen, así que siguen funcionando sin cambios. No hay que rediseñar las 40 pantallas antes de mergear.

recomendado Incremental

Mergeas el shell + lo ya rediseñado, y luego página por página en main, cada una con su demo. Rompe la maldición de los 4 intentos previos (una branch gigante que divergió semanas y nunca aterrizó). Valor desde el día 1, branches chicas, feedback continuo. Cada merge deja el admin 100% funcional.

✓ evita la branch que nunca llega

Big-bang

No mergeas hasta que todo esté rediseñado. Coherencia total al "lanzar", pero la branch crece y diverge de main — exactamente el modo de falla que estamos evitando.

✗ el patrón que ya falló 4 veces

02 El mapa — cada pantalla, por sección

Fuente de verdad: el modelo de nav (sidebarModel.ts, 40 PageIds). El v5 no solo rediseña — consolida: varias páginas de hoy se vuelven tabs dentro de un padre.

GlobalCuando no hay cliente elegido
NavPáginas hoyForma v5
homehecho real·validado — falta bento + attention strip
clientsclient-setupcampaignsdirectorio + rebuild de onboarding
partnerspartner-profilepartner-onboardinglink-generatorlista + perfil 6-tabs + Deal
paymentstabla densa (pendientes = engine vivo, ya)
assetsmantener, polish ligero
aifuera de scope
systemcontrol-centerpipelinescommission-paritybudget-engine-runsumbrella, mantener
admin-fraudticketsuserssettingsmantener, polish
ClienteAl elegir un cliente (ej. Samsung)
NavPáginas hoyForma v5
client-overviewP2 bento 8 KPIs + tabla maestra
client-campaignscampaign-detailcampaign-launchtabla densa + detalle 6-tabs
client-partnersclient-media-sourcesclient-qualityabsorbe media sources + calidad
client-ordersclient-leadsclient-fraudclient-pixel-analytics4 páginas → 1 tabla, renombrada por objetivo
client-plannerPlanner v3 ✓ (v4 live-chain después)
client-reconciliationclient-slaconsola ledger ✓ (fuera de scope) + tab SLA
client-rulesclient-attributionabsorbidas por el Deal
client-integrationsclient-tracking-sourcesclient-funnelstabs
client-fraud-rulesclient-alertstabs
client-settingsclient-audiencesclient-usersclient-setup-edittabs

03 Fundaciones — se construyen una vez, todo las usa

Prerrequisitos que desbloquean el vocabulario por objetivo en todos lados. Se hacen al arrancar P2, no son una página.

FND · 1

useClientProfile()

Resuelve objetivo(s), fuente(s), hasBase, hasSprints, modelo de billing, ticket estimado, tasa de validación. Reemplaza el branching ad-hoc de tracking_type en 12+ archivos.

FND · 2

Vocabulario por objetivo

Un solo lugar que mapea objetivo → nombres de KPI, "Órdenes/Leads/Conversiones", modelo de comisión, niveles de la tabla. "Revenue/Orders" se renombra solo por cliente.

FND · 3

Contrato de data

🟢 completa · 🟡 estimada (badge + "calculado con…") · 🔴 falta config (sin gráfica falsa, pide el input). El sistema nunca inventa un número que no puede sostener.

FND · 4

2 campos nuevos de config

Modelo de billing del cliente (%rev / $venta / $lead / $click / CPM) + ticket estimado. Migración + captura en onboarding. Hoy solo Samsung los tiene.

04 Las fases

Cada una se mergea sola; el admin sigue funcionando durante todo el proceso.

P1

Shell

hecho✓ listo

Sidebar 2-modos, switcher ⌘O (DB-driven), estado de mes, un solo modelo de nav, breadcrumbs, ⌘K agrupado, borré el shell V3 muerto. Más (esta sesión) real·validado en Inicio + Hoy y el fix de orders-distinto en el backbone.

P2

"Hoy" — el centro de comando

lo siguienteL

El cliente aterriza en un centro de comando real, no en una página de tarjetas. El mayor valor.

  • Las 4 fundaciones de arriba.
  • Bento de 8 KPIs (solo campañas activas): Revenue generado · Órdenes/Conversiones · Nos cuesta · Nos queda (días de runway) · Relo gana (+margen) · ROAS · Proyección cierre · Atención. Todo aritmética sobre agregados existentes — sin engine nuevo.
  • La tabla maestra — UNA tabla con "Agrupar por": Deals · Campaña · Segmento · Partner. Default inteligente por cliente. Filas se expanden por objetivo. Acciones inline ⏸ ➕ ✏️.
Re-think UXHoy = tarjetas estáticas + secciones separadas. v5 = centro denso donde UNA tabla reemplaza 4 "vistas", y los KPIs hablan el idioma del objetivo.
P3

Campañas — lista + detalle

L

La campaña se vuelve la unidad que escaneas y en la que entras.

  • Lista = tabla densa estilo Ads Manager: columna ⭐ default, badges Objetivo·Fuente, Resultado + Costo/resultado en el idioma del objetivo, barra Gastado/cap, Pace, filtros + búsqueda.
  • Detalle: el nombre es un switcher (⭐ default). 6 tabs: Resumen · Partners y deals · Conversiones · Creativos y links · Reglas · Ajustes (absorbe los 7 tabs de hoy).
  • Barrido de vocabulario aterriza aquí (usa useClientProfile).
Re-think UXLas campañas hoy están dispersas; v5 hace que la campaña sea lo que escaneas + drilleas, con el objetivo renombrando todo.
P4

Partner profile + Deal + consolidación de Órdenes

XL

La consolidación más grande — y donde muere el dolor #1 de partners.

  • Partner profile = 6 tabs: Resumen · Deal · Pagos · Media sources · Mensajes y tickets · Cuenta. Header con acciones (✉️ 👁 ⏸).
  • Deal (partner × cliente, el contrato completo): fila de atribución + una tabla por segmento (Base → Override → Efectiva → Gastado/cap → Queda → Runway → ⏸✏️) + Simulador (engine real en dry-run). Absorbe Reglas + Atribución.
  • Órdenes = una tabla renombrada por objetivo, absorbiendo Leads + Fraude review + Pixel analytics.
Re-think UXEl dolor #1 del audit — "3 números que no cuadran" — muere aquí: Hoy (agrupado por partner), la rebanada de campaña y el Deal leen las mismas capas del engine. Editas en un lado, se refleja en todos.
P5

Flujos — onboarding vivo + drawers con live-recalc

L

El dinero se edita con las consecuencias visibles y honestas.

  • Onboarding termina VIVO: Step 2 = Objetivo + Fuente con la fuente verificada dentro del wizard; pantalla final = Checklist de vida (anillo de progreso, DATOS FLUYENDO / DINERO / OPCIONAL, acciones inline); async, nunca bloquea. Mata la pantalla "creado pero muerto".
  • Drawers de budget / tarifa / pausa: abren desde cualquier fila, recalculan en vivo, la bolsa (barra apilada), tarjeta de ecuación, línea de transparencia, el piso de margen es el único bloqueo.
Re-think UXEl drawer es el mismo en todos lados; tocas un número, ves la consecuencia antes de aplicar.
P6

Polish + la cola larga

M

Agrupar lo disperso, aplicar el lenguaje visual, limpiar.

  • Clusters de config en tabs: Fuentes y píxel, Fraude y alertas, Ajustes.
  • Platform pages (Sistema, Fraude global, Tickets, Equipo, Org, Assets) — mantener + lenguaje visual.
  • Pagos (por-cliente), poda de redirects, barrido de i18n, Planner v4 live-chain (reusa el motor del drawer).
Re-think UXParalelizable y de bajo riesgo — la coherencia final sin bloquear nada.

05 Fuera de scope v5 — NO rediseñar ahora

Partner portal (fase aparte; hereda el lenguaje después)
AI Copilot (recién construido)
Consola de ledger / validación (recién construida)
Generalidad del backbone (salvo los 2 campos de config)

06 3 decisiones tuyas para arrancar P2

Con esto le hago a P2 su plan de implementación detallado (como el de P1) + demo antes de cualquier merge a prod.

1
¿Mergeo incremental?
Shell ya, resto página por página. Mi recomendación fuerte — evita la branch gigante que mató los 4 intentos.
2
Idioma del vocabulario
¿Hoy o Today? ¿Dinero o Money? ¿Órdenes o Orders? Los mockups mezclaban ES/EN; la regla de UI dice inglés. Se decide al arrancar P2.
3
¿Qué sigue después de "Hoy"?
Campañas (dolor de escaneo diario) o Partner + Deal (dolor del dinero que no cuadra). Ambos alto-impacto.
docs/superpowers/plans/2026-07-04-admin-redesign-full-inventory-phasing.md · spec: 2026-07-03-admin-redesign-v5-design.md · audit: platform-audit-2026-07-03.md