Skip to content

Commit 26f4388

Browse files
hbrooksclaude
andauthored
Remove the review command (#155)
Code review is being removed from the platform, so the CLI loses the `review` command (start, get, list, init) and its hidden aliases, the review types, the README usage lines, and the code review sections of the ellipsis skill. The GitHub review analytics under `analytics` are about the organization's own pull request activity and stay. Claude-Session: https://claude.ai/code/session_016JiiZiz8r2z32pVp5at2qx Co-authored-by: Claude <noreply@anthropic.com>
1 parent b0c6982 commit 26f4388

9 files changed

Lines changed: 13 additions & 829 deletions

File tree

‎README.md‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,6 @@ ellipsis session get <session-id> --watch # follow the turn in progress until i
8282
ellipsis session record <session-id> # read a session's stored transcript, one line per record
8383
ellipsis session stop <session-id> # stop a session's turn in progress
8484

85-
ellipsis review 123 # review a pull request now, instead of waiting for a push
86-
ellipsis review get <review-id> # a review's findings, scope, and whether it posted
87-
ellipsis review list --repo api # list a repository's reviews, newest first
88-
ellipsis review init # scaffold a starter review pipeline (code_review.yaml)
89-
9085
ellipsis automation list # list your automations
9186
ellipsis automation get <id> # show one automation as YAML (--json for JSON)
9287
ellipsis automation run <id> --input '{"issue": "ENG-42"}' # invoke it exactly as defined

‎skills/ellipsis/SKILL.md‎

Lines changed: 9 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: ellipsis
3-
description: What the Ellipsis platform is and how to drive it with the agent CLI. Use when the user mentions Ellipsis, wants to run or deploy coding agents in the cloud, govern agents with budgets and scoped permissions, automate work on GitHub, Slack, Linear, or Sentry events, get pull requests reviewed, hand a local task off to a background agent, or asks about the agent CLI.
3+
description: What the Ellipsis platform is and how to drive it with the agent CLI. Use when the user mentions Ellipsis, wants to run or deploy coding agents in the cloud, govern agents with budgets and scoped permissions, automate work on GitHub, Slack, Linear, or Sentry events, hand a local task off to a background agent, or asks about the agent CLI.
44
---
55

66
# Ellipsis
@@ -12,8 +12,8 @@ recorded and searchable.
1212

1313
An event fires, an agent wakes in an isolated sandbox with your repositories
1414
cloned, reads the code, does the work, and delivers a real artifact: a pull
15-
request, an answer in the thread that asked, a review on the diff. Then the
16-
sandbox is destroyed and the full session stays readable.
15+
request, or an answer in the thread that asked. Then the sandbox is destroyed
16+
and the full session stays readable.
1717

1818
## The problem it solves
1919

@@ -45,14 +45,11 @@ the logs of a session they do not own.
4545
Sentry alerts, or a schedule. Work starts when the event fires, not when
4646
someone opens a laptop.
4747

48-
## The two products
48+
## The product
4949

50-
- **Cloud Agents**: agents you define. Each is one YAML file in a repository, a
51-
trigger plus a model plus a prompt. The version on the default branch is the
52-
live agent.
53-
- **Code Review**: Ellipsis reviews every pull request as commits land and posts
54-
findings as inline comments. One organization-wide toggle turns it on, with no
55-
YAML.
50+
**Cloud Agents**: agents you define. Each is one YAML file in a repository, a
51+
trigger plus a model plus a prompt. The version on the default branch is the
52+
live agent.
5653

5754
Surfaces: the dashboard at app.ellipsis.dev, the REST API at
5855
api.ellipsis.dev, and the `ellipsis` CLI. All three drive the same API.
@@ -67,8 +64,6 @@ fee. There are no seats.
6764
issues, Linear issues, Sentry alerts, or Slack channel creation.
6865
- **Questions in a thread**: mention `@ellipsis` on GitHub, Slack, or Linear.
6966
The built-in responder needs no configuration and answers in the thread.
70-
- **Catching bugs before merge**: turn code review on and every pull request is
71-
reviewed, or commit a pipeline file to scope and customize it.
7267
- **Delegation from scripts or CI**: `ellipsis session start` or
7368
`POST /v1/sessions`. With `--watch` it streams into the log and exits nonzero
7469
unless the turn completes, so it works as a gate.
@@ -240,131 +235,6 @@ session:
240235
durable conversations: follow-ups keep the whole exchange and the working
241236
tree, and a conversation costs near nothing between turns.
242237

243-
## Code review
244-
245-
Code review is one organization-wide setting, on the Settings tab of `/reviews`
246-
in the dashboard, off by default. With it on and no YAML committed, the built-in
247-
pipeline reviews every pull request in the organization.
248-
249-
How it behaves:
250-
251-
- **New commits only.** The first review of a pull request covers everything on
252-
it; every later review covers only the commits since the last review that
253-
posted, and never re-comments a line it already covered.
254-
- **Only confirmed defects.** The reviewer files a finding only when it can
255-
point at the wrong line and name the input or state that breaks it, so a
256-
review is a short list of real problems rather than a page of "consider
257-
whether". It reads the surrounding code, not the diff alone, because most real
258-
findings depend on a caller or a guard the diff does not show.
259-
- **Comment-only.** Ellipsis posts one pull request review as the Ellipsis bot,
260-
anchored to the commit it reviewed. It never approves, requests changes,
261-
pushes commits, or merges, so it cannot satisfy a required-review rule. A
262-
review that finds nothing posts a one-line summary instead of invented
263-
nitpicks.
264-
- **Bots are reviewed too**, minus dependabot and renovate. A dependency bump is
265-
exactly the change nobody reads closely.
266-
- The built-in pipeline is two agents: a Haiku `pr-description` agent that keeps
267-
the pull request description's summary current, and one Opus reviewer named
268-
`bugs`. The stages are `pre_review`, `description`, `review`, deduplication,
269-
`filter`, `post_review`; only `description` and `review` are populated by
270-
default.
271-
- Reviewers never post. Each writes findings to a file, and the platform posts.
272-
A reviewer prompt is the reviewing brain only: Ellipsis supplies the commit
273-
range, so never restate the scope and never tell a reviewer to post to GitHub.
274-
275-
### The pipeline file
276-
277-
One optional file customizes the review. **There is one filename,
278-
`code_review.yaml`, and where you commit it decides what it governs:**
279-
280-
- At the root of a repository: governs that repository. `.ellipsis/code_review.yaml`
281-
also works for its own repository, and the root path wins if both exist.
282-
- At the root of the repository literally named `.ellipsis`: governs every
283-
repository in the organization. That repository is never itself reviewed.
284-
- Anywhere else: a configuration error, not a file that silently reviews
285-
nothing.
286-
287-
First hit wins, and a repository's own file **replaces** the organization-wide
288-
one rather than merging with it, so copy across whatever you meant to keep. That
289-
also means an organization file's filters are not a ceiling: a repository the
290-
organization file excluded can review itself by committing its own file.
291-
292-
The file is an overlay on the built-in pipeline, so it declares only what it
293-
changes:
294-
295-
```yaml
296-
# code_review.yaml at the root of the .ellipsis repository
297-
ellipsis:
298-
version: v1
299-
kind: code_review
300-
name: Backend review
301-
302-
pull_requests:
303-
repositories: [api] # valid only in the .ellipsis repository's copy
304-
base: [main, "release/*"]
305-
draft: false
306-
307-
review:
308-
- name: migration-safety
309-
harness:
310-
type: claude_code
311-
instructions: |
312-
Review database migrations for production safety. Check for
313-
locking that blocks writes on large tables, missing backfills for
314-
new non-null columns, and rollout ordering that breaks if the
315-
migration and the code deploy out of order.
316-
pull_requests:
317-
paths: ["**/migrations/**"]
318-
319-
filter:
320-
name: strict-gate
321-
harness:
322-
type: claude_code
323-
instructions: |
324-
Approve only findings a staff engineer would raise in review.
325-
Reject style opinions and anything a linter catches.
326-
327-
budget:
328-
run: 15.00
329-
day: 100.00
330-
```
331-
332-
Merge rules that catch people out:
333-
334-
- **`ellipsis.kind: code_review` marks the file**, and the path decides its
335-
scope. A pipeline file is not an agent config and is not synced from `agents/`.
336-
- **Declaring `pull_requests:` makes it authoritative.** A pull request the
337-
governing file does not match gets no review at all, rather than falling back
338-
to the built-in pipeline. It also narrows the audience to humans unless the
339-
block writes `for` back out, because the block replaces the default wholesale.
340-
- **Declaring a stage list replaces that stage wholesale.** There is no
341-
"append to the built-in reviewers" knob. A file wanting a specialist beside a
342-
general pass declares both reviewers itself.
343-
- **Unset and empty differ where the built-in ships a stage.** No `review:` key
344-
inherits the built-in reviewer. No `description:` key inherits the built-in
345-
description agent, and `description: []` is the only way to stop it. For
346-
`filter:` both unset and `[]` mean no gatekeeper, since nothing gates findings
347-
unless you declare one.
348-
- **`enabled: false` does not suppress review.** It marks the file inactive, so
349-
Ellipsis reads it as no policy and continues to the organization file, then the
350-
built-in pipeline. To stop reviews in one repository, commit a file whose
351-
`pull_requests:` matches nothing, such as `for: {users: false, bots: false}`.
352-
- `description` and `filter` are each exactly one agent, never a list with
353-
entries. At most 8 reviewers, each with a unique name. Reviewers run in
354-
parallel, and a reviewer whose own `pull_requests` filters exclude a pull
355-
request costs nothing.
356-
- `environment:` and `budget:` merge field by field.
357-
- `budget.run` (default $10) caps one whole review across every stage, divided
358-
among its agents. `budget.day` and `budget.week` are trailing caps checked
359-
before a review starts, which is the guard against a push storm.
360-
361-
An optional `filter` gatekeeper judges every finding before it posts and rejects
362-
claims that do not hold against the code, are handled elsewhere, are style
363-
preferences, or are speculative. Rejected findings stay visible on the reviews
364-
dashboard with the reason. It is off by default because one careful reviewer
365-
leaves a second pass little to arbitrate, and that pass doubles every review's
366-
cost and latency.
367-
368238
## The agent CLI
369239

370240
One open-source binary named `ellipsis` (`el` for short), a terminal client for the same API
@@ -418,22 +288,6 @@ Search covers transcripts, recaps, and pull request references, with embedding
418288
similarity alongside full text, so one agent's investigation compounds into team
419289
knowledge. Facets cover repository, author, agent, status, source, and date.
420290

421-
Review pull requests on demand, without waiting for a push:
422-
423-
```sh
424-
ellipsis review 519 # review a pull request by number
425-
ellipsis review 519 --full # re-review the whole PR, ignoring earlier reviews
426-
ellipsis review 519 --no-post # print findings instead of posting to GitHub
427-
ellipsis review list --repo api # a repository's reviews, newest first
428-
ellipsis review get <review-id> # one review's findings, scope, and whether it posted
429-
ellipsis review init # scaffold code_review.yaml for this repository
430-
```
431-
432-
Which pipeline runs is not a parameter. An explicit review resolves the same
433-
pipeline by location that the webhook does, so the two entry points can never
434-
disagree. A review with nothing new to cover returns a `skipped` review rather
435-
than an error.
436-
437291
Author and deploy agents:
438292

439293
```sh
@@ -469,9 +323,8 @@ ellipsis github repos # also github members, slack cha
469323
# linear teams, sentry orgs
470324
```
471325

472-
Most singular commands accept the plural spelling as a hidden alias, and
473-
`review` also answers to `cr`. `ellipsis --help` and `ellipsis <command> --help` are
474-
authoritative for flags.
326+
Most singular commands accept the plural spelling as a hidden alias.
327+
`ellipsis --help` and `ellipsis <command> --help` are authoritative for flags.
475328

476329
## Writing a config
477330

@@ -664,9 +517,6 @@ is every page in one file.
664517
- Permissions: https://www.ellipsis.dev/docs/cloud-agents/permissions
665518
- Conversations: https://www.ellipsis.dev/docs/cloud-agents/conversations
666519
- Skills: https://www.ellipsis.dev/docs/cloud-agents/skills
667-
- Code review: https://www.ellipsis.dev/docs/code-review
668-
- Review pipeline reference: https://www.ellipsis.dev/docs/code-review/configuration-yaml
669-
- Which PRs get reviewed: https://www.ellipsis.dev/docs/code-review/which-prs-get-reviewed
670520
- CLI reference: https://www.ellipsis.dev/docs/cli
671521
- REST API reference: https://www.ellipsis.dev/docs/api
672522
- Models: https://www.ellipsis.dev/docs/models

‎src/cli.ts‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Command } from 'commander'
22
import { registerAuth } from './commands/auth'
33
import { registerHost } from './commands/host'
44
import { registerSession } from './commands/session'
5-
import { registerReview } from './commands/review'
65
import { registerAutomation } from './commands/automation'
76
import { registerEnvironment } from './commands/environment'
87
import { registerVariable } from './commands/variable'
@@ -37,7 +36,6 @@ configureCliHelp(program)
3736
registerAuth(program)
3837
registerHost(program)
3938
registerSession(program)
40-
registerReview(program)
4139
registerAutomation(program)
4240
registerEnvironment(program)
4341
registerVariable(program)

0 commit comments

Comments
 (0)