Skip to content
  • Diego Islas's avatar
    ci(lookandfeel): bloquea en GRAVE, filtrando por linea, + hook pre-commit · 39406a8c
    Diego Islas authored
    
    
    El job validate_lookandfeel existia pero corria en modo aviso, y ademas el
    checker era CIEGO a lo que de verdad rompio el look & feel de RH esta semana.
    Se comprobo con un canario que junta las cinco violaciones que costaron cuatro
    pasadas de homologacion:
    
        bg-white border-gray-200 rounded-[20px]
        text-gray-500 uppercase        <- el sidebar de RH
        fill: "#7a869a"                <- el eje lavado en modo claro
        fill="#94a3b8"                 <- las barras grises
    
    Antes: 4 hallazgos, todos LEVE, ninguno el problema real (se quejaba de que
    faltaba maxBarSize). Ahora: 6 GRAVE + 1 MEDIO, señalando exactamente la causa.
    
    REGLAS NUEVAS
    - TW-GRIS (GRAVE): las clases `gray`/`slate` de Tailwind. Son las UNICAS
      familias que el tailwind.config no remapea a la marca —rose, amber, blue,
      emerald y violet si—, asi que `text-gray-500` es el gris de Tailwind
      (#6b7280), no --text-muted (#8a93a3), y no cambia con el tema. Es lo que
      hacia que Citatorios se leyera mas frio que el resto de RH.
    - TEMA (GRAVE): `bg-white`/`text-black` sin ninguna variante `dark:` en la
      linea. Es lo que dejaba los tooltips BLANCOS en modo oscuro.
    - RADIO (MEDIO): `rounded-[Npx]` con N > 4 (<=4 es radio de barra de Recharts).
      El canon usa solo la escala de Tailwind; asi fue como RH acabo con tarjetas
      de 20px donde Finanzas usa 12.
    - NAV (MEDIO): `uppercase` en el item del sidebar. Solo en archivos de
      navegacion y sobre el fuente SIN comentarios: la primera version se marcaba
      a si misma con el comentario que explica "Sin uppercase: ...".
    
    FILTRO POR LINEA — es lo que hace viable bloquear
    `--diff` miraba el ARCHIVO completo (git diff --name-only), asi que tocar un
    archivo con historia te frenaba por deuda que no escribiste. Medido sobre
    frontend/app/parametros/page.tsx agregandole UNA linea mala:
    
        sin filtro:  386 hallazgos   <- deuda ajena, bloqueo injusto
        con filtro:    2 hallazgos   <- solo la linea agregada
    
    Se agrega `--solo-lineas-nuevas` (parsea los hunks de git diff --unified=0) y
    `--staged` (git diff --cached) para el hook.
    
    CI
    El paso 2 pierde --warn-only y el job pierde allow_failure: un GRAVE en linea
    nueva bloquea el MR. El paso 1 sigue informativo con el archivo completo, como
    contexto para quien revisa.
    
    HOOK
    `.githooks/pre-commit`, versionado. Se activa con
    `git config core.hooksPath .githooks` (una vez por persona) y esta documentado
    en CONTRIBUTING.md junto con la tabla de reemplazos. Probado de punta a punta:
    bloquea el commit con la violacion, lo deja pasar corregido, y `// lf-ok: razon`
    en la misma linea exime.
    
    Deuda que esto DESTAPA: el repo pasa de 1,014 hallazgos a 6,424 (TW-GRIS 4,788,
    TEMA 575, RADIO 47). No frena a nadie: con el filtro por linea, un MR que no
    agrega codigo nuevo sale en verde. Se limpia por donde se vaya tocando.
    
    Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    39406a8c
After you've reviewed these contribution guidelines, you'll be all set to contribute to this project.
Loading