You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.7 KiB
8.7 KiB
range-calendar — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- Familia: calendar (prestatario nº1: 79 tokens de calendar) · Método: solo análisis; evidencia por dimensión · demos fuera
- Capas leídas: morfo (324 líneas; eventos :18-56, Cell :242-268, Day :282-317) · estructura contrastada con el donante calendar
- Máquina: NEEDS-WORK —
E-2.3(falta README eidos) ·R-1.3(data-readonlysin estilo) · tests ✓ · pack ✗
Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
|---|---|---|---|
| 1 | Composición | ✓ | Estructura del donante (Provider/Header/Prev/Next/Grid/Cell/Day) + no-archetype de Day con razón propia (:284 bespoke [data-range-calendar-day]) |
| 3 | Coherencia semántica | ✓ contrato de referencia con gap de carácter | La gradación de rango que faltaba en los field-ranges está AQUÍ: commit-select-start (affirm :18-23) → commit-select-range (fulfill :28-33 — el sellado del par ES el momento fulfill) → commit-reset (neutral :38-43) + shift-navigate. Es EL precedente interno para date-range-field/time-range-field F-1 (citarlo en su veredicto). F-1: toda esa riqueza suena a family-default (:8) — sin pack, el fulfill del rango completo no se distingue del default genérico |
| 6 | Sema | gap | Sin pack (censo: CERO packs en la familia calendar salvo el donante) → SYS-3 con el mejor argumento: eventos ricos YA declarados sin carácter |
| 8 | Contrato morfo | ✓ con herencias | data-range-start/data-range-end en Cell (:253-254) y Day (:294-295) + data-selected para el tramo — vocabulario de rango coherente; F-2: role='application' (:64) heredado sin razón (censo familia — 4 morfos) · F-3: Day role='button' (:289) + aria-selected (:317) — el MISMO ARIA inválido del donante (calendar F-2); Cell (:268) la lleva legítimamente |
| 9 | A11y | con F-2/F-3 | Teclado del donante (grid APG) |
| 11 | Composición interna | borrower | 79 tokens --calendar-* consumidos informalmente + privados de acento re-declarados (8 ✓); marcas holiday/event muertas tras B.2 (el token vive en [data-calendar]) → SYS-8, caso TRIVIAL (privados ya declarados) |
| 12 | Estados | hallazgo máquina | R-1.3 readonly sin materializar (patrón familia) |
| 14 | Docs+tests | gap | Sin README eidos (E-2.3); tests ✓ |
| resto | ✓ / hereda donante | Incluida la cuestión weekend-por-locale (calendar F-4) si comparte la derivación |
Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
|---|---|---|
| F-1 | Semántica de rango ejemplar SIN pack (fulfill suena genérico) | SYS-3: si la familia gana packs, este es EL candidato (start affirm suave → range fulfill pleno → reset neutral) |
| F-2 | role='application' heredado sin razón documentada |
Resolver JUNTO con calendar F-1 (decisión única de familia) |
| F-3 | aria-selected sobre Day role='button' (:317) — ARIA inválido, duplicado del Cell |
Mismo fix que calendar F-2 (familia entera en un pase) |
| F-4 | Marcas holiday/event muertas (borrow roto) | SYS-8 (capa calendar-surface) |
| F-5 | readonly sin estilo (R-1.3) | Patrón familia (con date-picker) |
| F-6 | README eidos ausente | SYS-4 |
Escalan al sistema
SYS-3 (mejor evidencia del catálogo) · SYS-4 · SYS-8 (prestatario ancla) · censo role='application' ×4 · censo ARIA-inválido Day ×2 · precedente commit-select-start/range para los field-ranges (cruce de familias).
Veredictos
(pendiente — checkpoint post-barrido)