×rcrossreview
cross-repository PR review · powered by Gemini

A PR can look perfect and still break another repo.

crossreview reviews a pull request with context retrieved from the other repositories in your organisation — catching contract breaks, duplicated logic, and cross-service conflicts a single-repo reviewer never sees.

See a live review Read the code
THE PIPELINE
Diff
Signals
Discover repos
Retrieve
Assemble
Gemini review
Findings

Cross-repo context

Clones sibling repos and retrieves the code that actually depends on what your PR changed.

Hybrid retrieval

ripgrep lexical search + LanceDB local vector search + embedding rerank. No cloud DB.

3 review modes

single, a 6-agent board, or the self-improving Ralph loop that critiques and re-reviews.

Grounded findings

Every cross-repo claim cites a real sibling snippet. Structured JSON, schema-validated.

A real finding

from PR #1 · gemini-3.6-flash · ralph mode
CRITICALapi-contract

Breaking change to CustomerDTO fields breaks frontend-app, customer-api, and billing-service

src/customer.ts:9frontend-app/src/CustomerCard.tsx

Renaming fullName to name and email to contactEmail on CustomerDTO breaks contract compatibility with consuming repos. frontend-app reads customer.fullName and customer.email in CustomerCard.tsx, customer-api constructs CustomerDTO using fullName and email in server.ts, and billing-service reads these fields when creating invoices in worker.ts.

<h2 className="customer-card__name">{customer.fullName}</h2> and <a href={`mailto:${customer.email}`}>{customer.email}</a> in frontend-app (CustomerCard.tsx:25-27).

Retain fullName and email (or deprecate them while adding optional new fields) to preserve backward compatibility, or coordinate a major version release alongside PRs updating all consumer services.