La IA escribe tu código.
slopGrade decide: pasa o bloquea.
Una GitHub Action que bloquea las PR que añaden una fuga cross-tenant o un XSS por echo/print de PHP antes de llegar a main. Los secretos y las demás inyecciones se notifican sin bloquear. Solo juzga lo que añade la PR: el código existente nunca la pone en rojo.
Pega un repo público. Mira lo que encuentran los detectores.
Los mismos detectores gratuitos que la Action de GitHub ejecuta en cada pull request — inyección SQL y de comandos, XSS, SSRF, path traversal, XXE, deserialización insegura, cripto débil, CORS y fugas cross-tenant — en cualquier repo público de GitHub, en un segundo aproximadamente.
Solo código público · no se guarda nada · nunca se reportan secretos · detectores del plan gratuito (el Firewall de pago ejecuta el catálogo completo).
Tu equipo mergea código que ningún humano escribió.
Los agentes de IA abren PRs más rápido de lo que la revisión aguanta. El slop pasa, las consultas olvidan el filtro de org, una clave se filtra en un log. A escala, la revisión humana no atrapa nada — necesitas un gate determinista, no una opinión.
Un bucle: detecta → bloquea → verifica
El gate vive en tu CI de GitHub Actions. Lee el diff de cada PR, decide, y escribe su veredicto como un check requerido. En un repo privado, solo una huella sale de tu runner, salvo que actives el deep scan (heisen-slop) en un repo de pago. En un repo público, el deep scan corre por defecto.
Copia el snippet
Un workflow de GitHub Actions pegado en tu repo. OIDC sin clave — nada que guardar.
- uses: maxor-tech/slopgrade-firewall@f18a953e15e84ff0f9e457da4a056ddea3548d46 # v0.13.6La PR se abre
El gate lee el diff en el runner y lo revisa contra fugas cross-tenant y las clases de seguridad de tu plan.
$ node isolation-gate.mjs --print-payloadVeredicto pasa / bloquea
Un check requerido, verdadero o falso. Rojo → el merge se desactiva por el ruleset de rama.
slop · blocked → merge disabledLa corrección pasa a verde
El agente corrige, reenvía, el gate se re-ejecuta. Verde → la PR vuelve a ser mergeable.
slop · pass → ready to merge125 clases detectadas. 5 capas. El bloqueo exige pruebas a ciegas.
La fuga cross-tenant — una consulta sin filtro de organización — es nuestra clase principal. Una clase, o una forma concreta dentro de ella, solo bloquea tras alcanzar al menos un 80 % de precisión en al menos 10 casos de bloqueo etiquetados a ciegas, con pruebas públicas. Hasta entonces, informa sin bloquear. Activas las reglas; no las escribes.
Aislamiento tenant
Cada consulta org-scoped debe llevar su filtro. La fuga cross-tenant #1 en prod, atrapada antes del merge.
Secretos e inyección
Claves hardcodeadas, SQL/comando/XXE/SSRF, deserialización — el grueso del catálogo.
Cripto y auth
Algoritmos débiles, claves cortas, padding RSA, CORS reflejado, control de acceso faltante.
Deep scan
Flujo de datos entre archivos (heisen-slop) en 6 lenguajes, por defecto en repos públicos, con opt-in en repos privados de pago — informativo por defecto, bloqueante solo si lo eliges.
Huella por defecto
En un repo privado, por defecto solo se envía una huella estructural — rutas de archivo, {file, line, kind} y los nombres de tablas y columnas que necesita el control cross-tenant — nunca el contenido de los archivos. El deep scan (heisen-slop), activo por defecto en repos públicos y opt-in en repos privados, envía como máximo 80 archivos que contienen un sink, analizados en memoria y descartados. Enterprise puede ejecutar ese motor en tu red.
Cada clase, con el código que detecta.
Una muestra de las 125 clases — por categoría, cada una con el patrón exacto que atrapa antes de que llegue a main. La detección corre en tu runner; esto es lo que busca.
✗ db.from('invoices').select('*')✗ create view billing as select * … security definer✗ User.create(req.body) // is_admin passes through✗ db.query('select * from u where id = ' + req.params.id)✗ exec('convert ' + req.query.file)✗ fetch(req.query.url) // hits 169.254.169.254✗ libxml.parseXml(body, { noent: true })✗ jwt.verify(t, key, { algorithms: ['none'] })✗ const stripe = 'sk_live_4eC39Hq…'✗ app.use(csrf({ ignoreMethods: ['POST'] }))✗ crypto.createHash('md5').update(password)✗ new https.Agent({ rejectUnauthorized: false })✗ createCipheriv('aes-256-cbc', key, ZERO_IV)✗ uses: some/action@main # not a SHA✗ "lodahs": "*" // typo'd name, floating range✗ cidr_blocks = ["0.0.0.0/0"] # port 22✗ FROM node:latest✗ DEBUG = TrueNo es otro escáner. Un gate llave en mano.
CodeQL y Semgrep son motores que configuras y ajustas. La revisión humana no sigue el ritmo de las PR de agentes. slopGrade ofrece reglas listas para activar — 125 clases detectadas, de las que 3 bloquean en los repos de pago tras superar el umbral de pruebas públicas a ciegas. Las demás informan sin bloquear.
Determinista por diseño · cliente open-source, auditable · lo corremos sobre slopGrade mismo antes de que te llegue.
Advisory gratis para siempre. Solo 49 $/mes para ti, Team 299 $/mes para tu equipo — ambos bloquean el merge y prueban el fallo.
Un precio por plan, nunca por persona. Solo: 10 repos privados, una persona. Team: 50 repos privados, usuarios ilimitados. Ambos bloquean ante 3 clases, y Deep Scan sigue el valor desde la petición hasta el sink. Los agentes, las claves API y los clientes MCP nunca cuentan como asientos.
El gate reconoce el fallo. Deep Scan prueba el camino.
Sigue un valor desde la petición hasta el sink — variables, llamadas, archivos importados — y solo informa los flujos que prueba, cada paso con su file:line.
- Flujos probados
- source → sink, paso a paso, en cada PR de tus repos Team.
- Modo librería
- los parámetros públicos como fuentes — candidatos para revisar, nunca un veredicto.
- Oráculo de prueba
- /api/verify: envía la alerta de cualquier herramienta, recibe una prueba reproducible o una abstención honesta.
Respuestas directas.
Q¿Qué es slopGrade?
Un gate CI determinista para código escrito por IA: en cada pull request de GitHub decide pasa o bloquea antes de que el código llegue a main. Sin nota, sin debate.
Q¿El código sale de mi CI?
No por defecto. El cliente lee tus archivos en tu runner de GitHub Actions y solo envía una huella estructural — rutas de archivos, {file, line, kind} y los nombres de tablas y columnas que necesita el control cross-tenant, para la clasificación. --print-payload muestra los bytes exactos. Las excepciones son el Deep Scan (heisen-slop) en un repo público, activo por defecto, y el Deep Scan opt-in en un repo privado de pago: 80 archivos con un sink como máximo, analizados en memoria y descartados, informativo salvo que actives deep-scan-block. Un repo privado gratis nunca envía código.
Q¿Cuánto cuesta?
El advisory (escaneo sin bloqueo) es gratis para siempre en todos tus repos, y el bloqueo es gratis en los repos públicos y un repo privado. Team cuesta 299 $ al mes — repos privados incluidos: 50, Deep Scan en cada PR, usuarios ilimitados — luego 4 $ por repo hasta 100 y 3 $ más allá. Enterprise es un contrato negociado.
Q¿Hay una prueba gratis?
Sí: Team es gratis durante 14 días en tu primer plan Team, sin tarjeta de crédito. Sin tarjeta el día 14, la cuenta se pausa — repos, ajustes e historial se conservan — hasta que pagues.
Q¿Qué detecta el firewall?
Las fugas cross-tenant y los XSS por echo/print de PHP bloquean en todos los repos públicos y 1 repo privado. En XSS, solo bloquea un echo/print de PHP que muestra sin escapar datos de la petición ($_GET / $_POST / $_REQUEST / $_COOKIE). Los 22 paquetes de detectores de código abierto siguen ejecutándose en todos los repos; los demás hallazgos se notifican sin bloquear. Los repos de pago detectan 125 clases. 3 clases bloquean en los repos de pago: las fugas cross-tenant, los XSS por echo/print de PHP que muestra sin escapar datos de la petición y las comparaciones de HMAC o firmas con == si una petición puede alcanzar la comparación. Las demás formas de XSS (sinks del DOM, XSS reflejado en Node, análisis de taint) y todas las demás clases informan sin bloquear. El bloqueo exige al menos un 80 % de precisión en al menos 10 casos de bloqueo etiquetados a ciegas, con pruebas públicas medidas por clase o por forma.
Pon un gate entre la IA y tu rama main.
Crea una cuenta, pega el snippet, protege tu primer repo en dos minutos. Team: 14 días gratis, sin tarjeta.