rebar
Un verificador para cualquier repositorio, un escáner de firmas conocidas de prompt injection, un portón que bloquea el commit cuando se ignora una regla, y un generador que ya empieza del lado correcto.
npx github:Navesz/rebar .El problema, medido en 161 commits
Análisis forense de seis repositorios, 25/08/2026: 3 sin CI, y esos mismos 3 con el lint roto. El que tenía más documentos de gobernanza — AGENTS.md, SECURITY.md, GOVERNANCE.md — tenía 35 errores de lint.
Una regla en markdown casi nunca se cumple
Aquel repositorio tenía un script check que encadenaba formato, lint, tipos, pruebas y build. Nada lo ejecutaba nunca. Si una regla puede bajar de la prosa a la máquina, que baje — y la máquina tiene que ser la más fiable de las dos.
El verificador: un marcador de cualquier repositorio
npx github:Navesz/rebar . — sin instalar nada y sin escribir una línea en el repositorio auditado. La regla que no aplica sale del denominador, porque un marcador que cuenta lo que no existe es un marcador que miente.
El portón: hook, CI en los dos sistemas y el servidor
Lo que ejecuta el CI es la misma secuencia que ejecutas tú antes, en un solo comando. Encima, un ruleset de GitHub con la lista de excepciones vacía — ni el dueño pasa. Debajo, el hook, en tu máquina.
El generador: esta página salió de él
npx github:Navesz/rebar new mi-sitio crea un Next estático con el portón ya dentro y un servidor MCP que sirve las reglas a la IA que abra el proyecto. Después pasa la raya por lo que acaba de crear.
Lo que todavía no está probado
rebar se impone en un repositorio: él mismo. La meta escrita eran dos hasta D+30, y va 1 de 2. Una regla sigue solo avisando porque cerca del 12% de lo que señala es ruido. Si no cambia, el criterio de abandono manda parar.
Modo de uso
Tres estados en lugar de dos, y el tercero es el que impide que el marcador mienta: lo que no aplica sale del denominador. Una carpeta vacía no saca buena nota.
El marcador de un repositorio
npx github:Navesz/rebar .rebar-check · prumo ✓ editorconfig has an .editorconfig ✓ dependabot automated dependency updates ✓ ci has CI ✗ ci-gates the CI reaches the verification the repository has the CI does not reach: lint – orphan-schema no orphan JSON Schema no .schema.json in the repository 14 of 17 · 1 not applicable · 2 warning(s)salida El guion es el tercer estado. Antes de existir, una carpeta vacía con un .git/ vacío sacaba 8 de 14 y empataba con el propio rebar. Es un recorte: cinco reglas y la línea final, de una ejecución real del 17/09/2026 contra otro repositorio mío. El verificador imprime en inglés.
Varios repositorios de una vez
npx github:Navesz/rebar ../a ../b ../cAl final sale un resumen comparable. Así se levantó el análisis forense de 161 commits en seis repositorios.
Una sola regla, para arreglar sin ruido
npx github:Navesz/rebar --rule=ci-gates .El recorte sirve para arreglar, no para aprobar: ejecútalo sin el filtro antes de hacer commit.
Salida estructurada, para el CI
npx github:Navesz/rebar --json .Cada regla sale con id, clase, nivel y estado. Es lo que consume el paso de CI.
Heurísticas que también tumban el build
npx github:Navesz/rebar --heuristics .Por defecto una heurística solo informa. Una regla automática equivocada cuesta más que una regla ausente — una de ellas se midió con siete apariciones y cero verdaderos positivos.