- package.json: `gate` = `npm run lint && npm run check:gate && …`. La deuda
de formato era la razón para dejarlo fuera; el one-shot 468a9d113 la cerró.
- .git-blame-ignore-revs (nuevo) con 468a9d113. `git blame` lo usa con
`git config blame.ignoreRevsFile .git-blame-ignore-revs`; Gitea 1.18 no lo
lee.
- scripts/hooks/pre-push: el comentario decía «NOT ARMED until fase A is
green» y «lint is deliberately NOT in the gate yet»; ahora describe la
cadena real (lint → check:gate con src/ y scripts/ a cero → validadores →
apps:check → suite). Copiado a .git/hooks/pre-push, byte-idéntico.
- docs/testing-and-tooling.md: el bucle corto y §The gate dejan de decir que
lint no está y que scripts/ no se tipa, y nombran apps:check.
Verificación sobre este árbol: `npm run gate` exit 0 en 548 s (con un agente
de solo lectura corriendo en paralelo) — lint «All matched files use Prettier
code style!» · check:gate OK (89 de web/ en el ledger) · docs:check 0/0 en 820
· arts 0 · blocks 0 · packs 0 · rtl 0 · translations 0 errores · eidos:lint 0
inválidos · apps:check (1391 ficheros 0 errores, smoke boot 27/27 y 0 errores)
· suite 466/466 ficheros, 5445/5445 tests.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>