# cropper — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto) - **Familia**: media/controls (recorte; capa zoom-pan compartida con image-picker) · **Método**: solo análisis · demos fuera - **Capas leídas**: [morfo](../../../src/uix/morfo/components/cropper.ts) (148 líneas; eventos :31-73; **censo `apg:` = 0**) · pack ✓ - **Máquina**: PASS limpio · tests ✓ · README ×2 ✓ — **PERO ver F-2/F-3: dos cosas que no cazó** ## Dimensiones (evidencia leída) | # | Dimensión | Estado | Evidencia | | ----- | -------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 2 | Naming | hallazgo SYS-1 | **F-1: 8 hooks-clase** — el MAYOR ofensor del catálogo (button 6, image-picker 6) | | 3 | Coherencia semántica | ✓ con desajuste | `handle-drag`/`handle-resize`/`handle-zoom` (:31-63 ✓ censo handle) + commit affirm (:64-69); **F-2**: el evento se llama `commit-crop` pero su verb es `'apply'` (:64-67) — el nombre rompe `{familia}-{verbo}` (sería commit-apply) y la regla A-3.6 no lo flagueó (cuarto agujero de regla) | | 8 | Contrato morfo | hallazgo | **F-3**: sin cita `apg:` (censo = 0) con PASS — el A-1.4 tampoco lo cazó; caso "sin patrón oficial" | | 12 | Runtime | pendiente familia | Candidato del censo D13 (write-then-read): sus gestos miden el box — verificar `dom.measure` en provider al ejecutar | | resto | | ✓ | Gestos, aspect locks, teclado de nudge; pack ✓; tests ✓ | ## Hallazgos y propuestas | ID | Hallazgo | Propuesta | | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | | **F-1** | 8 hooks-clase | Codemod SYS-1 | | ~~F-2~~ | _(RETIRADO en P1: `apply` ES canónico — extensión de autor, verbs.ts :97 — y `commit-crop` es etiqueta de dominio autorizada por el libro cap. 8 §1; vocab-check lo lista como warn de descubribilidad, no violación. Rename a `commit-apply-crop` = pulido opcional)_ | — | | **F-3** | Sin APG (regla no cazó) | Regla "apg: none — rationale" + fix del script | ## Escalan al sistema SYS-1 (top) · censos A-3.6/A-1.4 (agujeros del script ×4 ya) · censo D13 (candidato) · censo handle. ## Veredictos _(pendiente — checkpoint post-barrido)_