# month-grid — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto) - **Familia**: calendar (prestatario: 65 tokens) · **Método**: solo análisis; evidencia por dimensión · demos fuera - **Capas leídas**: [morfo](../../../src/uix/morfo/components/month-grid.ts) (213 líneas; eventos :17-38, Cell :181-200) - **Máquina**: PASS limpio · tests **0** · README ×2 ✓ · pack **✗** ## Dimensiones (evidencia leída) | # | Dimensión | Estado | Evidencia | |---|---|---|---| | 1 | Composición | ✓ | Provider/Header/Heading/Prev/Next/Grid/Cell — SIN Day interno: el Cell `role='gridcell'` (:187) es el objetivo directo con `data-focused` (:194) → roving sobre gridcells, APG-válido, y **`aria-selected` AQUÍ SÍ es legal** (:200 sobre gridcell) — la estructura de 2 niveles del calendar (Cell+Day button) no se replicó y eso EVITA el ARIA inválido ✓ | | 2 | Naming | ✓ | `data-current` (:192 — el "hoy" de meses) + data-value/selected/disabled/focused | | 3 | Coherencia semántica | ✓ | `commit-set` (affirm :17-22 — fija mes, coherente con date-field) + `shift-navigate-step` (:31-34, cualificador legal de la gramática) | | 6 | Sema | gap | Sin pack → SYS-3 (censo familia: 0 packs salvo donante) | | 8 | Contrato morfo | con censo | **F-1**: `role='application'` (:47) heredado sin razón — censo familia ×4 | | 14 | Docs+tests | gap | **Cero tests** (navegación de grid, select, rangos disabled) → SYS-2 | | 11 | Composición interna | **borrower doble-roto** | 65 `--calendar-*` + `event-shadow` SIN declarar siquiera el privado de acento (0 declaraciones — B.2): marcas doblemente muertas → SYS-8 | | resto | | ✓ | Espejo estructural del donante en grid de meses | ## Hallazgos y propuestas | ID | Hallazgo | Propuesta | |---|---|---| | **F-1** | `role='application'` sin razón | Decisión única de familia (con calendar F-1) | | **F-2** | Marcas de evento doblemente muertas (borrow + privado ausente) | SYS-8: con la capa formal recibe marcas Y acentos | | **F-3** | Cero tests | SYS-2 | | **Nota ✓** | La estructura Cell-directo (sin Day button) evita el ARIA inválido del donante | Citar en el fix de calendar F-2 como referencia interna | ## Escalan al sistema SYS-2 · SYS-3 · SYS-8 · censo `role='application'`. ## Veredictos *(pendiente — checkpoint post-barrido)*