deslopping
Contact usBook a demo
Private beta · taking design partners

Know your team understood the AI’s code before it merges

A GitHub App for engineering teams already shipping with Claude Code, Cursor or Copilot.

  • Design partners get the roadmap and a direct line to us
  • Read-only on your code. Coming next: rules for your AI agents, sent as pull requests by a second app you opt into.
  • EU-hosted. No per-person scores, by construction.
A sample question page: question 1 of 2 asks what happens to a webhook that has already failed four times, above the six highlighted lines of src/dispatcher.ts it is about. Below it, the reviewer's answer, the AI's code rated Mixed, and the check at 1 of 2 answered.
acme/payments-api #4127Sample data
Question 1 of 2Gated · risk 68Claude Code

In your own words, what happens to a webhook that has already failed four times?

src/dispatcher.ts+11−1
4040async function dispatch(evt: WebhookEvent) {
4141 const attempt = await store.attempts(evt.id);
This question
42 if (attempt >= MAX_ATTEMPTS) {
43 await store.park(evt.id, "exhausted");
44 metrics.inc("webhook.parked");
45 return;
46 }
47 const delay = BASE_MS * 2 ** attempt + jitter(attempt);
4248 try {
Answer · lines 42 to 47

After four attempts it stops retrying — it parks the event as “exhausted”, bumps webhook.parked and returns before posting, so the caller gets nothing back and no other system is told. The delay line below it never runs for that event.

How does the AI’s code read here?
Rates the code, not the person who wrote the prompt.
deslopping/comprehension — 1 of 2 answered
The problem

You are approving code nobody can be asked about

Approved in 40 seconds, 900 lines

The approval is real. The reading never happened. Your review data cannot tell the two apart, so neither can you.

Nobody can explain it a week later

The code worked, so it merged. Then it breaks at 2am and the person on call is reading it for the first time — including the person who approved it.

No idea which tool or module is doing it

You know the AI writes a large share of your code. You cannot say where it writes code your team cannot follow, or which tool it comes from.

None of this is a discipline problem. Code review was designed for code a human wrote and could be asked about. Nobody can be asked about this code, so review degraded into a rubber stamp — quietly, and everywhere at once.

Interactive, no sign-up

Answer one real question

A sample pull request, and a question of the kind the product asks about it. Nothing is sent anywhere — the whole thing runs in this tab.

Add retry with backoff to the webhook dispatcheracme/payments-api #4127Gated · risk 68Claude Code
src/dispatcher.ts+11−1
4040async function dispatch(evt: WebhookEvent) {
4141 const attempt = await store.attempts(evt.id);
This question
42 if (attempt >= MAX_ATTEMPTS) {
43 await store.park(evt.id, "exhausted");
44 metrics.inc("webhook.parked");
45 return;
46 }
47 const delay = BASE_MS * 2 ** attempt + jitter(attempt);
4248 try {
4349 await post(evt.url, evt.body, { timeoutMs: 5_000 });
44 await store.clear(evt.id);
50 await store.clear(evt.id, { keepAudit: true });
4551 } catch (err) {
Question · src/dispatcher.ts lines 42 to 47

In your own words, what happens to a webhook that has already failed four times?

0 wordsNo character minimum in the product either — the grader reads for meaning.
What a complete answer covers (in the product, shown after you answer)
  • That it is parked rather than retried, and what “exhausted” means here
  • That the function returns before anything is posted
  • That nothing else in the system is told, beyond one metric
How it works

Four steps, and only one of them touches your team

Installed on a repository, it is quiet until a pull request looks risky.

  1. 01

    Every pull request gets a risk score

    Which paths it touches, how far the change reaches, what kind of change it is, the files’ history and its size. A pull request under your threshold is never touched. Which AI tool wrote it is recorded, and never changes the score.

    You set the threshold, and which paths count as sensitive.

  2. 02

    Risky ones ask two or three questions

    Generated from the diff, about specific lines, not about the codebase in general. Answerable in a couple of minutes by someone who read the change.

    The check on the pull request links straight to them. No new tool to learn.

  3. 03

    The reviewer rates the AI

    Good, mixed or poor — on the AI’s output, in the reviewer’s own words if they want. This is the only rating in the product, and its subject is always the code.

    A hunk nobody can explain is a finding about the AI, and it is recorded as one.

  4. 04

    The required check turns green

    deslopping/comprehension passes and the merge proceeds. For when production is down, break-glass is one short reason away for the people allowed to use it; every use is logged, and the review is still owed within 24 hours.

    Fail-open or fail-closed during an outage is your setting, not ours.

How it works, told as one pull request →

AI performance

Where your AI writes code people can’t follow

Every rating is about a specific hunk of code, so they add up into something no review tool currently gives you: a map of your codebase by how well the AI writes in it.

By module
Which parts of your codebase the AI writes badly in.
By tool
Claude Code, Cursor, Copilot and the rest, on the same scale and the same kind of question, so the comparison means something.
Before and after a rule (coming next)
You write a line into your agent instructions, it reaches your repositories as a pull request, and the same chart shows what changed. Neutral colours: it shows the shape, it does not tell you it worked.

Aggregates only, and nothing renders below five reviewers. The row with no bar in this shot is the floor doing its job.

A sample AI performance view: how the ratings of the AI's code split into good, mixed and poor for four modules, with the tool that wrote each. A fifth module, sdk/public-api, shows only “Not enough reviews yet”.
deslopping.com/acme/ai-performanceSample data
Where the AI writes code people can’t followGoodMixedPoor
payments/webhooksClaude Code84
billing/invoicesCursor61
auth/sessionClaude Code47
sdk/public-apiCopilotNot enough reviews yet
infra/terraformClaude Code38
For the people using it

We score the AI, never your engineers

You have read that sentence on other products. Here is how it is enforced, so you can check rather than believe.

A separate database role

Every dashboard reads through a database role that is granted nothing outside the aggregates. It is not a policy someone can relax in a hurry — a query for one person’s words fails at the database.

-- from our first migration
-- private: per-person data:
--   attempts, answers,
--   escalations, disputes
-- deslopping_analytics_ro is
--   deliberately granted
--   nothing in app or private.

Nothing below five reviewers

Any figure built from fewer than five reviewers renders as “Not enough reviews yet”, including on the manager dashboards, including when the manager knows the team has four people.

Your answers are yours

You can read everything you have written, export it, or delete it early. Your lead sees module-level numbers, and your answers are not in their product at all. A rating note can reach it only inside a pattern built from five or more reviewers, with no name on it.

There is no score on you

No per-person score, ranking, streak or league table is computed, anywhere. Whether an answer covered its question is stored under your name, in a schema the dashboards’ role cannot read, and deleted on your organisation’s retention schedule.

In the dashboards a lead reads, the only name is on the break-glass log, because merging past a gate is a decision someone owns.

Objections, answered

The five things you are about to ask

Answered the way we would answer them on a call, including the parts that lose us the deal.

Will it slow our merges?

On a gated pull request, yes: a few minutes of someone actually reading the change. Only pull requests over your threshold are gated, and you choose the threshold, so how often that happens is a number you set rather than one we spring on you.

If your answer is “we cannot afford a few minutes”, that is a real answer, and this product is not for you yet.

Will engineers hate it?

Some will, at first. The complaint we design against is “this is busywork”, so questions are only ever about lines that changed in this diff: two or three per change, and a rephrased one after a miss. A question you cannot answer is treated as evidence about the AI’s code rather than about you. The two things that reliably cause revolt — individual scores and manager-visible answers — cannot be reached from any view a manager can open.

Show them the For engineers section. They will read the mechanics, not the promise.

What happens to our code?

Scoring runs on our servers in Germany and never calls a model. To write the questions and grade the answers, the model gets the changed lines with the code around them and the pull request’s title and description: at most 12,000 tokens, with secrets removed first, and never used for training. Never the whole repository or its history. We do not keep your repository: the lines a question is about are held encrypted and deleted after 90 days by default. The exception is a question somebody disputes, which we may keep, anonymised, to test the product against.

Which model, and is our code used for training?

Anthropic’s Claude, on our account, with training contractually disabled. The model reads the diff and writes the questions, and it is never told who is answering. Enterprise can paste its own Anthropic key, in which case the traffic runs on your contract; the key is stored encrypted and never shown again.

How is this different from AI code review bots?

They read the code for you and add another opinion to the thread. We do not read your code for you — we check that a person did, and record what the AI keeps getting wrong. Different job, different data: a bot produces findings, we produce a map of where your AI writes code humans cannot follow.

If what you want is more findings per pull request, buy one of those. The two do different jobs.

Proof

We are not going to fake this part

We have no customer logos to show you. Deslopping is in private beta with design partners, and until they have run it long enough to have an opinion worth quoting, we would rather show you nothing than a stock photo of a team high-fiving.

What we can show you is the work: the demo above is built from the product’s own components, and this page says how each promise is enforced. If you want the honest version of where the product is thin, book a demo and we will tell you.

Lazar StankovićLazar StankovićFounder · lazarstankovic.dev
Pricing

Priced per person who actually reviews

An active reviewer is anyone who completed an attestation that month, counted once. Accounts are free; reading dashboards is free.

TeamMost teams
€12per active reviewer / month

Per active reviewer, billed monthly, for at least three. €10 if you pay annually.

  • Public and private repositories, any number of reviewers
  • AI performance by module and tool
  • Coming next: divergence graph, module docs, rules library
  • Escalation, break-glass and its log
  • Answers kept for 14 to 90 days, as you set it
Book a demo
Enterprise
€18per active reviewer / month, from

From €18, annual, for 50 reviewers or more.

  • Your own Anthropic API key
  • SSO with SAML
  • Answer retention up to 365 days
  • A DPA written with you, and an uptime commitment
Contact us

Full comparison, the active-reviewer calculator and the pricing FAQ are on the pricing page.

The beta is small on purpose

We are taking a handful of teams at a time so the questions stay good. Tell us what you ship with and we will tell you honestly whether you are a fit.

Design partners get half off Team for their first year. Read-only on your code; rules for your AI agents come next, as pull requests from a second app you opt into.