SlopGradeby Maxor Global LLC
Se connecterDémarrer
Gate CI · code écrit par l'IA

L'IA écrit ton code.
slopGrade décide : ça passe ou ça bloque.

Un gate déterministe sur chaque PR. Le slop et les fuites cross-tenant n'atteignent jamais main — pas de note, pas de débat.

Client open-source — audite chaque ligne. 11 classes open-source bloquent gratuitement pour toujours, sans carte. Active les 124 complètes quand tu fais confiance au gate.
0 egressOIDC sans cléinstalle en 2 min
PR #128acme/billing-apigate en direct
Poussé · le gate lit le diff
export async function listInvoices(orgId){- return db.from('invoices').select('*') }
!Bloquérequête sans filtre d'org · fuite cross-tenant
correctif poussé
Re-poussé · le gate re-tourne
export async function listInvoices(orgId){+ return db.from('invoices').select('*').eq('org_id', orgId) }
Passefiltre org_id ajouté · prêt à merger
Fusion désactivée tant que le check slop est rouge
Lecture seule sur tes diffs N'écrit qu'un statut de check 0 egress — le code ne quitte jamais ton runnergate en direct
01Le problème

Ton équipe merge du code qu'aucun humain n'a écrit.

Les agents IA ouvrent des PR plus vite que la revue ne suit. Le slop passe, les requêtes oublient le filtre d'org, une clé fuit dans un log. Au volume, la revue humaine n'attrape plus rien — il faut un gate déterministe, pas un avis.

02Comment ça marche

Une boucle : détecte → bloque → vérifie

Le gate vit dans ton CI GitHub Actions. Il lit le diff de chaque PR, décide, et écrit son verdict comme un check requis. Aucun code ne quitte ton runner.

détectebloquevérifie
01 · installe

Copie le snippet

Un workflow GitHub Actions collé dans ton repo. OIDC sans clé — rien à stocker.

- uses: slopgrade/ci@v0.3.1
02 · détecte

La PR ouvre

Le gate lit le diff côté runner et le classe contre {gates} classes de slop et de fuite tenant.

$ slop scan --diff origin/main…HEAD
03 · bloque

Verdict passe / bloque

Un check requis, vrai ou faux. Rouge → la fusion est désactivée par le ruleset de branche.

slop · blocked → merge disabled
04 · vérifie

Le correctif repasse vert

L'agent corrige, re-pousse, le gate re-tourne. Vert → la PR redevient mergeable.

slop · pass → ready to merge
sans risqueCommence en advisory sur tous tes repos — il signale les rouges sans rien bloquer. Regarde ce qu'il attrape sur tes vraies PR, puis passe en bloquant quand tu fais confiance au gate.
03Le firewall

124 classes de gate. 5 couches. 0 faux-positif.

La fuite cross-tenant — une requête sans filtre d'org — c'est la classe que CodeQL et la revue humaine ratent, et c'est notre #1. Le moat n'est pas le mécanisme : c'est le rulepack curé, turnkey, calibré à zéro faux-positif sur 5 000+ dépôts réels avant chaque mise en service. Tu l'actives ; tu ne l'écris pas.

Gratuit · open-source · pour toujours
11 classes open-source
Les catastrophes non-ambiguës — advisory sur tous tes repos, bloquant gratuit sur un repo privé et chaque repo public. Audite le client, forke-le.
SQLiInjection cmdXSSSSRFXXEDésérialisationPath traversalSecrets en durCrypto casséeCORS
Firewall · bloquant
124 classes
Les 113 autres classes closed-source + taint inter-procédural + breadth Go/.NET/Java + calibration zéro-FP. Le gate qui bloque vraiment la fusion.
Couverture du rulepack11 gratuites · 124 au bloquant
11 classes open-source — bloquent gratuitement124 classes — au bloquant, payant
Classes par catégoriecatalogue live
Injection6149%
Crypto2621%
Auth1512%
Infra1512%
Accès54%
Supply-chain22%
L1

Isolation tenant

Chaque requête org-scoped doit porter son filtre. La fuite cross-tenant #1 en prod, attrapée avant merge.

L2

Secrets & injection

Clés en dur, SQL/commande/XXE/SSRF, désérialisation — le gros du catalogue.

L3

Crypto & auth

Algorithmes faibles, clés courtes, padding RSA, CORS reflété, contrôle d'accès manquant.

L4

Slop déterministe

Chiffres inventés, gardes mortes, contrôles natifs hand-rollés — la formule, jamais un LLM.

L5

Split physique, 0 egress

L'extraction reste sur ton runner ; seul un verdict sort. Le code ne voyage pas.

04Le catalogue

Chaque classe, avec le code qu'elle bloque.

Un échantillon des 124 classes — par catégorie, chacune avec le motif exact qu'elle attrape avant qu'il n'atteigne main. La détection tourne sur ton runner ; voici ce qu'elle cherche.

Accès5
Cross-tenant · access-control
db.from('invoices').select('*')
Une requête sans filtre d'org — les lignes de chaque tenant fuient en prod.
RLS · SECURITY DEFINER
create view billing as select * … security definer
Une vue definer qui contourne la sécurité au niveau ligne.
Mass-assignment
User.create(req.body) // is_admin passes through
Le corps de requête lié direct au modèle — les champs de privilège passent.
Injection61
SQL injection
db.query('select * from u where id = ' + req.params.id)
De l'entrée utilisateur concaténée dans une chaîne SQL.
Command / code
exec('convert ' + req.query.file)
De l'entrée utilisateur qui atteint une commande shell.
SSRF
fetch(req.query.url) // hits 169.254.169.254
Un fetch serveur vers une URL contrôlée par l'utilisateur — atteint l'endpoint métadonnées.
XXE
libxml.parseXml(body, { noent: true })
Du XML parsé avec les entités externes activées.
Auth15
JWT alg-none / bypass
jwt.verify(t, key, { algorithms: ['none'] })
Un token accepté avec l'algorithme « none » — falsifiable.
Hardcoded secrets
const stripe = 'sk_live_4eC39Hq…'
Une clé live committée dans le code (et l'historique git à jamais).
CSRF disabled
app.use(csrf({ ignoreMethods: ['POST'] }))
La protection CSRF désactivée sur une route mutante.
Crypto26
Weak crypto
crypto.createHash('md5').update(password)
MD5 / SHA-1 là où il faut un hash de mot de passe.
TLS-verify off
new https.Agent({ rejectUnauthorized: false })
La vérification du certificat désactivée sur un appel sortant.
Static / hardcoded IV
createCipheriv('aes-256-cbc', key, ZERO_IV)
Un IV réutilisé / à zéro — le même clair chiffre à l'identique.
Supply-chain2
CI/CD mutable pins
uses: some/action@main # not a SHA
Une action CI épinglée à une branche, pas un SHA — remplaçable en silence.
Mutable deps · slopsquat
"lodahs": "*" // typo'd name, floating range
Une plage flottante sur un nom de package typo-squatté.
Infra15
IaC open-ingress
cidr_blocks = ["0.0.0.0/0"] # port 22
Un security group ouvert à 0.0.0.0/0 sur SSH.
Docker unpinned
FROM node:latest
Une image de base en :latest — non reproductible, elle dérive.
Debug mode in production
DEBUG = True
Le mode debug laissé actif en production.

Voir les 124 classes →

05Vs les alternatives

Pas un scanner de plus. Un gate clé-en-main.

CodeQL et Semgrep sont des moteurs que tu configures et calibres. La revue humaine ne suit pas le rythme des PR d'agents. slopGrade est le rulepack curé que tu actives — 124 classes calibrées à zéro faux-positif sur 5 000+ repos réels, dont la fuite cross-tenant que tu écrirais et calibrerais toi-même sinon.

slopGrade
CodeQL
Semgrep
Revue humaine
Installation
Un snippet de workflow · OIDC sans clé · 2 min
Écris tes propres requêtes
Rédige et calibre les règles
Recrute et planifie des relecteurs
Fuite cross-tenant (#1)
Curée & calibrée — la classe phare
Écris et calibre la requête
Rédige la règle
Invisible à l'œil
Faux positifs
Calibré à 0 sur 5 000+ repos
À calibrer par repo
Notoirement bruyant
Fatigue au volume
Verdict
Passe / bloque — un check requis
Liste SARIF
Liste de findings
Un fil de commentaires
Ton code quitte le runner
Jamais — 0 egress, split IP
Local au runner
Cloud ou local
s.o.
Tient le rythme des PR d'agents
Déterministe, chaque PR
Oui, si maintenu
Oui, si maintenu
Non
06La preuve
124
classes de gate
Dérivé du catalogue live — 6 catégories, croît chaque semaine.
5,000+
repos de calibration
Chaque classe atteint 0 faux-positif sur le corpus avant mise en service.
0 egress
le code ne sort pas
Split IP : extraction sur ton runner, classifieur fermé côté serveur.
2 min
à l'installation
OIDC sans clé, un snippet de workflow, protège main.

Déterministe par conception · client open-source, auditable · on le fait tourner sur slopGrade lui-même avant qu'il ne t'arrive.

07Tarifs

Advisory gratuit pour toujours. À partir de $24 le repo, dégressif.

Tu paies pour ce que tu protèges, pas par tête. Un repo dormant coûte $0 — et plus tu en protèges, moins chaque repo coûte. Utilisateurs illimités, toujours.

Comparer les plansVois chaque fuite gratuitement. Bloque la fusion quand tu es prêt.
Free · advisory$0 / toujours
Le produitFirewall · bloquantà partir de$24 / repo / mois
Classes couvertes
11 critiques
124 classes
Mode
Advisory — signale les rouges
Bloquant — ruleset de branche
Repos
Tous les repos · 1 privé + tous publics bloquants
N repos privés (slots)
Analyse taint
Intra-fonction
Inter-procédural + cross-file
Breadth langages
Base
+ Go / .NET / Java
Isolation tenant
Signalée
Enforced
Client open-source
auditable
auditable
Calibration 0-FP
5 000+ repos
Prix par repo · dégressif au volume
1–4$24 /repo
5–10$15 /repo
le plus courant11–20$11 /repo
Jusqu'à 20 repos privés sur la courbe graduée — dès $11 $/repo. 20 repos = $296 $/mois. Au-delà de 20, Team est à $299 $/mois forfaitaire, illimité. Un repo dormant reste à $0.
Au-delà du per-repo
Team — 299 $/mois forfaitaire · repos privés & utilisateurs illimités · les 124 classes
Enterprise — négocié · SSO-SAML, moteur self-hosted air-gap, packs custom, SLA
14 jours gratuits
Sans carte. Jusqu'à 5 repos. Rien débité ; sans carte au jour 14, l'essai s'arrête.
Après l'essai
Garde les repos que tu veux — ou retombe en advisory gratuit. Aucune interruption, aucune facture surprise.
Une fuite attrapée
Une seule fuite cross-tenant arrêtée avant la fusion = des années d'abonnement. Le gate se rembourse une fois.
08FAQ

Réponses directes.

QQu'est-ce que slopGrade ?

Un gate CI déterministe pour le code écrit par l'IA : sur chaque pull request GitHub, il décide passe ou bloque avant que le code n'atteigne main. Pas de note, pas de débat.

QLe code quitte-t-il mon CI ?

Non — 0 egress. L'extraction reste sur ton runner GitHub Actions ; seul un verdict sort. Le code ne voyage pas (split physique).

QCombien ça coûte ?

L'advisory (scan sans blocage) est gratuit pour toujours sur tous tes repos. Le mode bloquant coûte $24 par repo et par mois, dégressif jusqu'à $11 au volume.

QY a-t-il un essai gratuit ?

Oui : 14 jours gratuits, jusqu'à 5 repos, sans carte de crédit. À la fin, tu gardes les repos que tu veux ou tu retombes en advisory gratuit.

QQu'est-ce que le firewall détecte ?

Les 11 classes les plus critiques bloquent gratuitement (client open-source) ; le firewall complet couvre 124 classes sur six catégories — injection, crypto, infra, auth, accès, supply-chain — dont la fuite cross-tenant #1. Calibré à 0 faux-positif sur 5 000+ dépôts réels.

Mets un gate entre l'IA et ta branche main.

Crée un compte, colle le snippet, protège ton premier repo en deux minutes. 14 jours gratuits, jusqu'à 5 repos, sans carte.