# Edición de Uso de cuentas — 27/10/2026 En el formulario existente Editar → Uso se habilitan Personal, Compartida y Técnica. El dominio acepta los cambios compatibles conservando UUID, estado y relaciones, y registra la revisión con el valor previo. Repetir la edición sin cambios no añade revisiones. Sistema y entorno siguen fijos. No se necesita migración ni cambia el contrato de guardado. La conversión Compartida → Personal comprueba solapamientos de titulares, incluidos los históricos, mediante la política de periodos existente. Cambiar entre Técnica y Personal/Compartida se rechaza si hay relaciones con personas, incluso cerradas: responsabilidad técnica y acceso tienen contratos distintos. El error traducido ACCOUNT_USAGE_CONFLICT conserva el borrador y permite seleccionar un uso compatible. Archivos principales: - `modules/companies/src/web/access/shared/helpers/access-fields.ts` - `modules/companies/src/api/domain/access/access-item.entity.ts` - `modules/companies/src/api/domain/access/access-policy.ts` - `modules/companies/src/api/domain/access/access-workspace.aggregate.ts` - `modules/companies/src/api/domain/access/access.test.ts` - `scripts/account-usage-ui-checks.py` ## Comprobaciones ejecutadas Correctas: - `pnpm --filter @metis/companies typecheck` y `pnpm --filter @metis/server typecheck`. - `TSX_TSCONFIG_PATH=tsconfig.json node --import tsx --test modules/companies/src/api/domain/access/access.test.ts modules/companies/src/web/access/shared/access.test.tsx`. - Prueba MariaDB `apps/server/src/account-deletion.integration.test.ts` con NODE_ENV=test y DB_NAME=metis_desk_test: cambio Personal → Compartida, relectura y conservación del historial, además de su cobertura de borrado. - Biome dirigido a los diez archivos TypeScript/JSON cambiados: sin errores ni advertencias. ESLint dirigido: correcto. `git diff --check`: correcto. - `pnpm build`: correcto, con el aviso existente de tamaño de chunks. - `python3 scripts/visual-audit.py --account-deletion --check`: 8 comprobaciones específicas de Uso y 17 de regresión de eliminación mediante Playwright MCP Docker stdio. Edición real, selector habilitado, sistema bloqueado, selección por teclado, guardado persistido, mismo UUID/historial, cancelación sin guardar, error por relación incompatible conservando el borrador y recuperación con Compartida. - Diálogo a 1440, 390 y 320 px sin desbordamiento horizontal. Abiertas e inspeccionadas las capturas de 320 px y error incompatible. El cuerpo mantiene desplazamiento y pie visible. - Volumen sintético: 15 compañías; principal con 50 personas, 51 activos, 66 recursos, 50 perfiles, 50 puestos y 62 cuentas creadas durante el recorrido. Solo metis_desk_test desechable. Entorno retirado y sesión eliminada. Se ejecutaron también `pnpm typecheck`, `pnpm lint`, `pnpm test` y `pnpm check` globales. Mantienen fallos ajenos a este cambio: locale en el calendario vendor, dos pruebas de textos en companies-page.test.tsx y diagnósticos de lint/formato de otros archivos. No se modificaron vendor ni esos archivos para ocultarlos. Logs de esta ejecución en este directorio. No se han cambiado cuentas reales durante las pruebas. ## Skills y límites Consultadas `rdx-solid`, `ux-inputs-and-forms`, `shadcn` y las reglas React ya revisadas para este formulario. Influyeron en la validación de relaciones en dominio, el campo con etiqueta persistente, el uso de las primitivas existentes y la conservación del borrador sin duplicar estado remoto. No están disponibles los auditores ux-*-audit; no se invocaron ni instalaron. No se afirma validación WCAG completa, lector de pantalla, contraste global o tema oscuro. [Informe MCP](../playwright/authenticated-g5yiyswy/account-usage-report.json) [Captura de edición a 320 px](../playwright/authenticated-g5yiyswy/account-usage-320.png) [Error recuperable por relaciones incompatibles](../playwright/authenticated-g5yiyswy/account-usage-incompatible.png)