CI check Corre en el repo · no en Marketplace
La capa que aguanta cuando el hook nunca se instaló
Tres capas, cada una recogiendo el fallo de la anterior: el contexto aconseja, el hook local deniega en el momento, y ésta recalcula el diff entero en el pull request. Existe por el único fallo que las otras dos no pueden ver.
El fallo para el que existe
El hook local es el punto de enforcement, y es honesto sobre su techo: sólo puede denegar llamadas en las que está presente. Alguien que nunca ejecutó cycle init, un agente en un harness todavía sin adaptador, una máquina donde se quitó el plugin — en todos esos casos el hook no se equivoca, simplemente no está, y una ausencia es invisible desde dentro.
Así que la última capa corre donde no se puede desinstalar nada: en el pull request. Lee el mismozones.yml, recalcula qué zones toca de verdad el diff, y lo compara con lo que declaró la task. Mismo modelo, otro punto de vista.
Qué reporta
- Declarado frente a tocado — las zones que nombró la task, contra las que el diff demuestra que cambió
- Trabajo que llegó sin task — el caso que sólo CI ve
- Overrides, con nombre — un bypass aquí es legal, queda registrado, nunca es silencioso
Estado honesto
El check corre hoy sobre este repositorio y habla rulesets de GitHub de forma nativa.No está publicado en GitHub Marketplace — el paquete es privado y sigue en0.0.0 — así que hoy llega viviendo dentro del repositorio, no instalándose desde una ficha. Una página que dijera «instala nuestra Action» estaría vendiendo algo que nadie puede instalar.
Un límite más, en la misma frase: en un plan personal privado gratuito la protección de ramas responde 403, así que esta capa corre en modo aviso y lo dice en voz alta, en lugar de reportar un enforcement que no ejecutó.
Cómo se reparten el trabajo las tres capas está enla documentación (en inglés), y el mapa que leen las tres es el mapa de zones.