Code review is an agent you define

Deploy a review agent in YAML: it reacts on every head advance of a pull request, reviews only the commits it has not seen, and runs the suite before it comments. Any coding agent can write slop; yours is the one that catches it before merge.

Install on GitHub
Documentation
Comments posted by severity
Last 30 days · splitshift-hq · 1,068 comments
Median review 2m
4003002001000
58
196
372
318
124
Blocking
High
Medium
Low
Trivial
01

Write the review standard into the agent

The prompt, the model, the repositories it watches, and the spend caps are all yours, in one file in your repository. Tune what it flags and what it ignores the way you tune a linter, and ship the change as a pull request.

agents/code_review.yamllive on merge
ellipsis:  version: v1  kind: code_review  name: Code review  description: Review the new commits on every pull requestpull_requests:  repositories: [splitshift-web, splitshift-api]  for:    users: true    bots: falsereview:  - name: correctness    claude:      model: claude-haiku-4-5-20251001      system: |        Flag correctness bugs, unhandled edge cases, and        breaking changes. Suggest the fix on the exact line.budget:  run: 10.00

Your prompts and your models, committed to the repo

02

Every push is reviewed once

The agent reviews only the commits it has not seen yet, anchored at the head it reviewed last. Authors get feedback on what they just pushed instead of the same comments on the same lines, so a long-running branch never turns into review noise.

splitshift-api #512never re-comments a reviewed line
push 13 commits
reviewed a4f1…9c022 comments
push 21 commit
reviewed 9c02…e7b81 comment
push 32 commits
reviewed e7b8…1d40no findings

Only the commits since the last review

03

A reviewer with a sandbox, not just a diff

The agent gets your repository on disk with the toolchain installed, so it can run the suite, reproduce the failure, and check the behavior it is worried about. A finding it verified is a finding worth reading.

# reviewing splitshift-api#512, push 2

$ pytest -k trade

14 passed

$ git diff HEAD~2 -- src/trade_engine.py

reads the actual change, runs the actual suite, then comments

Findings verified by running the tests

04

Reply on the PR and it answers

The review is a durable conversation that remembers the whole pull request. Push back on a finding, ask it to fix what it found, or tell it to use the staging database, and it picks up with its working tree intact. Merge closes the conversation.

splitshift-api #512 · comments

marcus-lee

@ellipsis use the staging database, not prod

👀 · conversation woken, same working tree

ellipsis[bot]

Switched the fixtures to the staging database and re-ran the suite: 12 passed. Pushed the change to this branch.

one message to steer, no kill-and-restart

One durable conversation per pull request

05

Feedback that lands

Ellipsis measures whether review comments changed the merged code, not just how many comments were posted.

Did the review land?
68%code suggestions applied after merge
54%comment regions later edited
12%@ellipsis asked to fix

Measured against the merged code, not comment count

06

Volume by severity

See review volume over time, stacked by blocking, high, medium, low, and trivial findings.

Comments over time
Last 30 days
May 20Jun 3Jun 18
BlockingHighMediumLowTrivial

Review volume over time, stacked by severity

07

Know which severities actually get fixed

For each severity, the share of posted comments that were acted on: the flagged issue resolved on the default branch after merge. Blocking and high findings should land far more often than nits, and they do.

Addressed by severity
Blocking88% addressed
High74% addressed
Medium59% addressed
Low41% addressed
Trivial22% addressed

Blocking findings land far more often than nits

08

A full breakdown of comment types

Every comment is classified (logical bugs, security, performance, maintainability, testing, style, and more) so you can see whether Ellipsis is catching substance or just nits.

Comment types
Logical bug24%
Style19%
Security14%
Performance12%
Maintainability11%
Testing9%
Docs7%
API design4%

Bugs and security lead the mix, not style nits

09

Severity by type, at a glance

The heatmap crosses every comment type with its severity. Darker cells mean more findings, so you can instantly see where the serious problems cluster: logical bugs skew high, style skews trivial.

Severity by comment type
BlockingHighMediumLowTrivial
Logical bug82241183
Security6141971
Performance2924162
Maintainability0318339
Testing0211216
Style0042824

Darker cells are where the serious findings cluster

10

Follow comments through the whole funnel

Track where comments drop off: findings surfaced by the agent, those that pass the quality gate, the ones posted to GitHub, and finally the ones addressed after merge. A tight funnel means high signal and low noise.

Review funnel
Surfaced1,840 · 100%
Passed the gate74%1,360 · 74%
Posted to GitHub73%990 · 54%
Addressed62%612 · 33%

Surfaced, gated, posted, addressed

You can use Ellipsis for...

Every use case runs on the same platform. See how it works