SlopGradeby Maxor Global LLC
Iniciar sesiónEmpieza la prueba gratis de 14 días
Gate CI · código escrito por IA

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.

Team: 14 días gratis, sin tarjeta. Las fugas cross-tenant y los XSS por echo/print de PHP bloquean gratis en los repos públicos y 1 repo privado; los demás detectores informan sin bloquear. 3 clases bloquean en los repos de pago (125 detectadas), con Deep Scan en cada PR de Team.
solo la huella en repos privadosOIDC sin clavese instala en 2 min
PR #128acme/billing-apigate en vivo
Enviado · el gate lee el diff
export async function listInvoices(orgId){- return db.from('invoices').select('*') }
!Bloqueadoconsulta sin filtro de org · fuga cross-tenant
corrección enviada ↓
Reenviado · el gate se re-ejecuta
export async function listInvoices(orgId){+ return db.from('invoices').select('*').eq('org_id', orgId) }
✓Pasafiltro org_id añadido · listo para merge
Merge desactivado mientras el check slop está en rojo
Solo lectura de tus diffs Escribe un check, hallazgos inline y SARIF En repos privados, por defecto solo se envía una huella estructural — `--print-payload` muestra los bytesgate en vivo
Vista previa del gate · repo público de GitHub

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.

Prueba:

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).

01El problema

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.

02Cómo funciona

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.

detectabloqueaverifica
01 · instala

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.6
02 · detecta

La 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-payload
03 · bloquea

Veredicto pasa / bloquea

Un check requerido, verdadero o falso. Rojo → el merge se desactiva por el ruleset de rama.

slop · blocked → merge disabled
04 · verifica

La 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 merge
sin riesgoEmpieza en advisory en todos tus repos — señala los rojos sin bloquear nada. Mira lo que atrapa en tus PRs reales, y pasa a bloqueante cuando confíes en el gate.
03El firewall

125 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.

Gratis · open-source · para siempre
Cross-tenant + XSS por echo/print de PHP
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. Audita el cliente, crea tu propia versión.
SQLiInyección cmdXSSSSRFXXEDeserializaciónPath traversalSecretos hardcodeadosCripto rotaCORS
De pago · detección y bloqueo
125 clases detectadas
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.
Cobertura del rulepackCross-tenant + XSS por echo/print de PHP bloquean gratis · 3 clases bloqueantes en los repos de pago
Cross-tenant + XSS por echo/print de PHP — bloqueo gratuito125 clases detectadas · 3 bloqueantes, de pago
Clases por categoríacatálogo live
Inyección6250%
Cripto2621%
Auth1512%
Infra1512%
Acceso54%
Supply-chain22%
L1

Aislamiento tenant

Cada consulta org-scoped debe llevar su filtro. La fuga cross-tenant #1 en prod, atrapada antes del merge.

L2

Secretos e inyección

Claves hardcodeadas, SQL/comando/XXE/SSRF, deserialización — el grueso del catálogo.

L3

Cripto y auth

Algoritmos débiles, claves cortas, padding RSA, CORS reflejado, control de acceso faltante.

L4

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.

L5

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.

04El catálogo

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.

Acceso5
Cross-tenant · access-control
✗ db.from('invoices').select('*')
Una consulta sin filtro de org — las filas de cada tenant se filtran en prod.
RLS · SECURITY DEFINER
✗ create view billing as select * … security definer
Una vista definer que salta la seguridad a nivel de fila.
Mass-assignment
✗ User.create(req.body) // is_admin passes through
El cuerpo de la petición ligado directo al modelo — los campos de privilegio pasan.
Inyección62
SQL injection
✗ db.query('select * from u where id = ' + req.params.id)
Entrada de usuario concatenada en una cadena SQL.
Command / code
✗ exec('convert ' + req.query.file)
Entrada de usuario que llega a un comando de shell.
SSRF
✗ fetch(req.query.url) // hits 169.254.169.254
Un fetch del servidor a una URL controlada por el usuario — alcanza el endpoint de metadatos.
XXE
✗ libxml.parseXml(body, { noent: true })
XML parseado con entidades externas activadas.
Auth15
JWT alg-none / bypass
✗ jwt.verify(t, key, { algorithms: ['none'] })
Un token aceptado con el algoritmo «none» — falsificable.
Hardcoded secrets
✗ const stripe = 'sk_live_4eC39Hq…'
Una clave live commiteada en el código (y el historial git para siempre).
CSRF disabled
✗ app.use(csrf({ ignoreMethods: ['POST'] }))
La protección CSRF desactivada en una ruta mutante.
Cripto26
Weak crypto
✗ crypto.createHash('md5').update(password)
MD5 / SHA-1 donde hace falta un hash de contraseña.
TLS-verify off
✗ new https.Agent({ rejectUnauthorized: false })
La verificación del certificado desactivada en una llamada saliente.
Static / hardcoded IV
✗ createCipheriv('aes-256-cbc', key, ZERO_IV)
Un IV reusado / a cero — el mismo texto cifra idéntico.
Supply-chain2
CI/CD mutable pins
✗ uses: some/action@main # not a SHA
Una acción CI fijada a una rama, no a un SHA — reemplazable en silencio.
Mutable deps · slopsquat
✗ "lodahs": "*" // typo'd name, floating range
Un rango flotante sobre un nombre de paquete typo-squatteado.
Infra15
IaC open-ingress
✗ cidr_blocks = ["0.0.0.0/0"] # port 22
Un security group abierto a 0.0.0.0/0 en SSH.
Docker unpinned
✗ FROM node:latest
Una imagen base en :latest — no reproducible, deriva.
Debug mode in production
✗ DEBUG = True
El modo debug dejado activo en producción.

Ver las 125 clases →

05Vs las alternativas

No 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.

slopGrade
CodeQL
Semgrep
Revisión humana
Instalación
Un snippet de workflow · OIDC sin clave · 2 min
Escribe tus propias queries
Redacta y calibra las reglas
Contrata y agenda revisores
Fuga cross-tenant (#1)
Curada y calibrada — la clase estrella
Escribe y calibra la query
Redacta la regla
Invisible al ojo
Falsos positivos
Pruebas públicas a ciegas antes de bloquear; primero, solo avisos. Reejecución histórica anterior a este umbral: 59 PR bloqueadas de 52 089 PR ordinarias de código abierto
Calibrar por repo
Depende de tus reglas
Fatiga a volumen
Veredicto
Pasa / bloquea — un check requerido
Lista SARIF
Lista de findings
Un hilo de comentarios
Tu código sale del runner
Código privado: no, salvo opt-in (de pago). Código público: deep scan por defecto.
Local al runner
Cloud o local
n/a
Aguanta el ritmo de PR de agentes
Determinista, cada PR
Sí, si se mantiene
Sí, si se mantiene
No
06La prueba
125
clases de gate
Derivado del catálogo live — 6 categorías, crece cada semana.
3
clases bloquean hoy
Reejecución histórica, anterior al umbral de pruebas a ciegas: de 52 089 pull requests ordinarias de código abierto, el gate bloqueó 59 (0,11 %). Este resultado no mide las clases bloqueantes actuales. Ahora una clase debe alcanzar al menos un 80 % de precisión en al menos 10 casos de bloqueo etiquetados a ciegas, con pruebas públicas. Las demás clases informan sin bloquear.
0
líneas de código almacenadas
El motor alojado no almacena nada: el código se analiza en memoria y se descarta.
2 min
para instalar
OIDC sin clave, un snippet de workflow, protege main.

Determinista por diseño · cliente open-source, auditable · lo corremos sobre slopGrade mismo antes de que te llegue.

07Precios

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.

Comparar planesMira cada fuga gratis. Bloquea el merge — y prueba el camino — cuando estés listo.
Free · advisory0 $ / para siempre
Solo49 $ / meso 490 $ / año — 2 meses gratisPara una persona
Para un equipoTeam299 $ / meso 2990 $ / año — 2 meses gratisUsuarios ilimitados
Clases
Cross-tenant + XSS por echo/print de PHP bloquean · 22 paquetes de código abierto activos; demás hallazgos informativos
3 bloquean · 125 detectadas
3 bloquean · 125 detectadas
Bloqueo
Repos públicos + 1 privado
10 repos privados incluidos, luego 4 $ / repo, hasta 50
Repos privados incluidos: 50, luego 4 $ / repo hasta 100 y 3 $ más allá, sin tope
Advisory
Todos los repos; los hallazgos de código abierto nunca bloquean
Cada repo
Todos los repos
Deep Scan (heisen-slop)
No incluido
API 2500 archivos / mes
En cada PR, no contado · API 5000 archivos / mes, luego 10 $ por bloque de 1000
Personas
Ilimitados
1 persona · los agentes y las claves API nunca cuentan
Ilimitados — nunca por asiento
Lenguajes
JS/TS · Python · Go · .NET
+ Java
+ Java
Cliente open source
✓auditable
✓auditable
✓auditable
Calibración
✓
✓antes de que una clase bloquee
✓antes de que una clase bloquee
Deep Scan · por heisen-slop, nuestro motor de flujo

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.
Deep Scan informa por defecto. Puedes hacer que un hallazgo nuevo bloquee el build (deep-scan-block) — en código real de CVE sus bloqueos aciertan al menos 3 de cada 4 veces; sobre 52 089 pull requests open source ordinarios bloqueó 245, 46 de ellos por una falla real, así que queda desactivado salvo que lo elijas. « Ningún flujo probado » no es una garantía de seguridad. En un repo privado tu código sale del runner solo si activas Deep Scan; en un repo público está activo por defecto.
En la CI · repos Teamcada PR · no contado
API + oráculo · Solo2500 archivos / mes
API + oráculo · Team5000 archivos / mes
Más allá, si lo activasplan de pago + tarjeta · factura el día 110 $ / 1000 archivostope de 2000 $ / mes
Crear una clave Deep Scan
Enterprise — negociado, contrato anual: precio por volumen más allá de la curva de Team, Deep Scan más allá de 200.000 archivos / mes, packs de detectores a medida, SLA y DPA no-retention. SSO y despliegue en tu infraestructura están acotados y fechados en el contrato.
Reservar una llamada de 30 min
14 días gratis
Sin tarjeta en tu primer plan Solo o Team, una vez por cuenta. No se cobra nada antes de que añadas una.
El día 14
Sin tarjeta, la suscripción se pausa — repos, ajustes e historial se conservan — y se reanuda en cuanto pagas.
Una fuga evitada
Una sola fuga cross-tenant frenada antes del merge = años de suscripción. El gate se paga una vez.
08FAQ

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.