Review the change, not the diff.
Agents write more code than anyone can read, so we need abstractions to stay in control.
- Python
- Go
- TypeScript
- JavaScript
- Java
- Svelte
- React
Big diff, small change.
Abstraction decomposes a pull request into the changes that matter.
Prorates to the day using the subscription's cycle length, and now returns fractional seats.
Returns how many seats were added. Downgrades clamp to zero.
Small diff, big impact.
Abstraction follows a change into everything that calls it.
- lifecycle-emails sendPaymentReminders
Payment reminders stop.
- seats billSeatChanges
Seats get billed to a declined card.
- usage-export countPayingAccounts
Past-due accounts count as paying.
- entitlements canUsePremium
Premium stays on after the card fails.
- seats canAddSeat
Past-due accounts can still add seats.
- api-gateway rateLimitFor
Unpaid accounts keep paid rate limits.
- usage-export churnedAccounts
Churn misses accounts that stopped paying.
- lifecycle-emails sendWinBackOffer
Win-back offers skip past-due accounts.
Catch bugs at every level of abstraction.
The small ones are precise; the expensive ones take reasoning.
Checks capacity and inserts in two queries. Two sign-ups at once overbook.
Opens its own transaction inside closeInvoice's. A rollback leaves the credit applied.
Now returns nil for closed accounts. All three callers dereference it unchecked.
Now returns 20 instead of 0.2. Checkout still multiplies the total by it.
Skips the ledger, so revenue reports keep counting refunded orders.
Frees the seat but not the member's API tokens, so they keep access.
Left out of the default review: formatting, naming and style. Your linter covers those, and a check can cover house rules.
A review you'll tune up, not turn down.
Every codebase is different. With Abstraction, your reviews are customized to your team's needs.
Personal data reaches a log line in one place today. I drafted a check for it.
- api/invites.ts email Email
- → mail/queue.ts job.payload
- → log/logger.ts info(job) Logger
- Abstraction · Entrypoints reach an auth check
- Abstraction · Money is never a float
- Abstraction · Jobs are dispatched via the queue
- Abstraction · Refunds go through the ledger
- Abstraction · Webhooks verify their signature
- Abstraction · No secrets in logs
- Abstraction · Database access goes through repositories
- Abstraction · Public responses use the shared envelope
- Abstraction · Tests stay isolated
Each check is its own GitHub check run, so branch protection can require it.
Tags, checks and templatesA reviewer you can talk to.
Discuss findings with our agent at any time.
The comprehension layer for your codebase.
The semantic model behind every review also answers your team's questions and documents your system.
Agent
Ask anything about your codebase in the app, in Slack, on a pull request or from your coding agent. It queries the semantic model instead of grepping files.
System map
Architecture diagrams compiled from source, from services down to functions, always current.
Process graphs
Business logic as diagrams, compiled from the control flow of the code, so they cannot drift.
In our evals, a coding agent with Abstraction answered questions about code structure several times faster, at a fraction of the cost. How we measured it
Frequently Asked Questions
Learn more about Abstraction and how it works.
Most review agents read the changed lines and guess at the rest. Abstraction reviews each change against a semantic model of your whole codebase: every changed function together with its callers, callees and the data it touches. You can talk any finding through with our agent and add checks of your own.
Algorithmically. Every pull request is split into its changed functions, each reviewed on its own, so the review scales to any size of PR, with no cap.
Yes. A workspace compiles all its repositories into one model, so a pull request in one repo is reviewed against the callers and types in the others. Calls between services over HTTP or gRPC are not linked yet.
Your code and its analysis are stored in the EU. Model providers process it under zero data retention, and we never train on it. Sign-in goes through GitHub or Google, nobody sees code they don't have access to, everything is encrypted at rest and in transit, and admins get audit logs. On-premise deployment is available for teams that need full control.
We're onboarding teams in waves. Request access and we'll reach out when your spot opens.
Review your next pull request with Abstraction.
We are onboarding teams in waves. Request access and we will reach out when your spot opens.
ABSTRACTION
2026
Abstr AB · Karlavägen 50, Stockholm