# media-player — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto) - **Familia**: media (genérico, sin baseline APG per registro 06-29) · **Método**: solo análisis · demos fuera - **Capas leídas**: [morfo](../../../src/uix/morfo/components/media-player.ts) (525 líneas — el más grande del catálogo; **12 eventos** con `family-default` declarado, apg=0) - **Máquina**: NEEDS-WORK — `A-3.6` (4 nombres fuera de gramática: `enter-fullscreen`, `exit-fullscreen`, `enter-pip`, `exit-pip`) · `A-1.4` *(D-\* demo fuera)* · tests ✓ ## Dimensiones (evidencia leída) | # | Dimensión | Estado | Evidencia | |---|---|---|---| | 3 | Coherencia semántica | ✓ declarado con 2 hallazgos | 12 eventos (el contrato interactivo más rico) + family-default ESCRITO; **F-1**: 4 nombres violan `{familia}-{verbo}` (los únicos A-3.6 confirmados del catálogo junto al commit-crop de cropper) · **F-2**: family-default para play/pause/seek/volume — SYS-3 candidato mayor (12 eventos con carácter genérico) | | 8 | Contrato morfo | hallazgo documentado | Sin APG — decisión REGISTRADA (06-29: no existe patrón de media player) pero el morfo no la lleva → la regla "apg: none — rationale" nació de este caso | | 12 | Gap registrado | | **F-4**: Slider sin buffered-range (la pista de buffer) — diseño en fase de fixes (slider WIP usuario) | ## Hallazgos y propuestas | ID | Hallazgo | Propuesta | |---|---|---| | **F-1** | 4 nombres fuera de gramática (A-3.6) | Renombrar (p.ej. `shift-fullscreen-enter` o par `shift.mode`) — decisión de vocabulario en checkpoint | | **F-2** | 12 eventos a default | SYS-3 (pack tras F-1) | | **F-3** | APG "none" sin campo | La regla nueva + anotar la referencia de diseño usada | | **F-4** | Buffered-range del Slider | Con el pass del slider post-WIP | ## Escalan al sistema SYS-3 · censo A-3.6 (con cropper) · la regla "sin patrón APG" (caso fundador). ## Veredictos *(pendiente — checkpoint post-barrido)*