[L02.3](estados-listados-l02-3.md), [rutas](rutas-del-cliente.md) y
[listados](patron-de-listados-de-entidades.md).
## 1. Resumen ejecutivo
Los pilotos añaden ordenación y página a su consulta navegable. Personas incorpora también
búsqueda y Solo contactos a la URL, conservando su fallback local cuando está embebida fuera
de una ruta propia. El tamaño de página y la visibilidad mantienen sus preferencias existentes.
El retorno utiliza coordenadas e identidad de foco en la entrada de `history.state`, sin DTO,
referencias DOM persistidas ni otra caché remota.
Activos conserva su ficha completa; Recursos conserva selección URL y panel/diálogo contextual.
No se añaden rutas, endpoints, dependencias, cambios de backend o modificaciones vendor.
Los archivos previos del usuario en `docs/auditorias/` se conservan sin modificación.
## 2. Auditoría del estado anterior
| Consumidor inspeccionado | URL antes de L03.1 | Estado local / persistido | Desmontaje, retorno y acceso directo anteriores |
| --- | --- | --- | --- |
| Activos | `q`, `template`; ficha con esos parámetros | Sort/página en `useEntityTable`; selección contextual local; tamaño global y columnas en localStorage | Ficha completa desmonta listado. Atrás recuperaba filtros, pero sort ascendente/página 1/foco BODY; horizontal se perdía. |
| Recursos | `q`, `template`, selección en pathname | Sort/página locales; apertura de panel y diálogo explícito temporales; tamaño persistido | Seleccionar no desmonta tabla. Cierre compacto usa historial; cierre inline oculta panel conservando selección/ruta. Recarga mantenía filtros, pero no sort/página. |
| Personas | Selección en pathname | Búsqueda y Solo contactos en componente padre; sort/página en tabla; tamaño persistido | Detalle sustituye tabla. Padre podía conservar filtros, pero se perdían al reconstruirse; sort/página se reiniciaban. |
| Puestos | Ficha en pathname | Búsqueda y editor locales; sort/página locales; tamaño persistido | Hay ficha completa; la reconstrucción pierde el estado local. Pendiente L04. |
| Perfiles | `q`, `archived`, perfil/configuración en pathname | Sort/página locales; diálogos locales; tamaño persistido | Entorno/configuración sustituye vista. URL reproduce filtros/destino, no todo el contexto. Pendiente L04. |
| Compañías | `q`, `activeOnly`, `companyId` | Tabla/controlador y selección local según consumidor; tamaño persistido | Cambiar espacio reconstruye directorio. Filtros URL sobreviven; sort/página/scroll no tienen contrato completo. |
| Catálogo de activos | `q`, `tab` | Sort/página y editor/detalle/historial locales | Los diálogos no cambian ruta; cambiar catálogo/sección puede desmontar. URL no representa sort/página. |
| Sublistado de puestos de una persona | Ninguna consulta propia navegable | Datos de queries compartidas; controles locales del sublistado | Se desmonta con la ficha. No debe heredar la página/orden del listado de Personas. |
Los datos remotos proceden de TanStack Query: inventarios/catálogos de Activos y Recursos,
compañía y referencias de puestos/perfiles. No son preferencias ni contexto de navegación.
Un panel/diálogo no equivale a abandonar la página; no se cambia ese contrato para uniformar.
Esta matriz combina inspección del código y L01. Los consumidores ajenos a los tres pilotos
no se presentan como una nueva validación visual con listados poblados.
La nueva reproducción previa, con 15 compañías y 50 personas/51 activos/66 recursos, conserva
las medidas históricas de L01. En esta instalación hay 40 portátiles con `q=AUDIT-ASSET`:
| Dimensión | Antes de abrir ficha | Atrás anterior, 1440×900 | Atrás anterior, 390×844 |
refetch retenido, carga inicial retenida al recargar, compañía distinta, Escape sin navegación,
campo dinámico retirado y errores simulados de Activos/Compañía. No escribe entidades.
Los comandos y resultados reales finales se recogen junto a las evidencias; no se equiparan
las comprobaciones dirigidas correctas con las suites globales que mantienen deuda previa.
### Ejecuciones y resultados
| Comprobación ejecutada | Resultado real |
| --- | --- |
| Typecheck dirigido de `@repo/rdx-ui`, `@metis/core`, `@metis/assets`, `@metis/resources`, `@metis/companies` | Los cinco correctos; Compañías repetido tras el ajuste final de canonicalización. |
| `pnpm --filter @metis/companies test` | 40/41 archivos correctos. Falla `companies-page.test.tsx`, con las dos expectativas SSR ya documentadas en L02.3: `Personas (1)` y mensaje de acceso de persona. Rutas del workspace pasa. |
| Biome y ESLint dirigidos a los 28 archivos TypeScript modificados/nuevos | Correctos, sin fixes ni supresiones; repetidos tras el último ajuste. |
| `pnpm typecheck` | Falla en vendor `calendar.tsx:165`, TS2375 sobre `locale` y `exactOptionalPropertyTypes`, ya documentado. No se modifica vendor. |
| `pnpm lint` | Falla: 15 errores, un warning y cuatro infos, como L02.3. |
| `pnpm check` | Falla: 167 errores, un warning y cuatro infos; L02.3 registraba 168 errores. Los archivos propios del cambio pasan la comprobación dirigida. |
| `pnpm test` | 7/8 tareas correctas; falla únicamente la tarea de Compañías anterior. Se ejecuta contra otra MariaDB temporal `metis_desk_test`, aislada de la instalación del navegador. |
| `pnpm build` | 2/2 tareas correctas; permanece el aviso de chunks superiores a 500 kB. |
| Playwright L03.1 | 14 métodos distintos comprobados: ejecución principal 12/12, revisión 4/4 (incluye el nuevo caso 13) y revisión de Personas 3/3 (incluye el nuevo caso 14). Los métodos repetidos no se cuentan dos veces. |
[L04.1](adopcion-listados-l04-1.md) adopta URL de orden/página, preferencias explícitas de
columnas y retorno de scroll/foco en Puestos, Perfiles y directorio de Compañías. Conserva
la búsqueda normalizada y los campos de cada entidad, los filtros de archivados/activas
y el ámbito. La limpieza controlada agrupa criterios y página en un único replace.
Las medidas y limitaciones anteriores se conservan; los resultados nuevos se registran
en el informe L04.1. Restan L04.2–L04.4 y no se declara V05 ni L04 resueltos universalmente.
## Seguimiento L04.2
[L04.2](adopcion-listados-l04-2.md) extiende los contratos existentes a catálogos navegables
y Procesos. Configuraciones puramente modales mantienen consulta local identificada por
su ámbito obligatorio. Las fuentes propietarias del contenedor aportan `layoutReady`
para evitar restaurar antes de retirar mensajes externos que alteren su geometría.
Core/History no cambia; se conserva la medición histórica anterior. L04.3/L04.4 permanecen
pendientes y no se declara restauración universal.
## Seguimiento L04.3
[L04.3](adopcion-listados-l04-3.md) añade estado de lectura por colección de ficha, separado de los parámetros del listado padre. Reutiliza History/useListReturn con registros de listado y detalle independientes, tabla de origen, FormBody o workspace-scroll y comprobación de consultas de composición. Las preferencias y el borrador de selección conservan su duración previa. Se registran las pruebas ejecutadas y los límites por consumidor; no se declara continuidad universal ni se adelanta L04.4.