Encode the rules your reviewers already enforce.
CrossCheck turns natural-language standards into pass/fail checks on every PR — running in our managed cloud, against your codebase.
Only takes a few clicks to set up · 14-day Pro trial · No credit card required
- queuedAll new tables have a Great Expectations test suiteData quality
- queuedEvery public function has a docstringAPI conventions
- queuedPublic API changes are recorded in CHANGELOG.mdAPI conventions
- queuedNo secrets, tokens, or .env values in sourceSecurity
- queuedMigrations are reversible (down() implemented)Data quality
Generic AI reviewers comment on style. Your team's bar is higher.
Repo-specific rules
The standards that actually matter — migration shape, logging conventions, ownership of public APIs — never make it into a generic reviewer's prompt.
Per-statement evidence
Every check passes or fails with a line-numbered reference, not a paragraph of vibes. You can act on a CrossCheck result without reading the diff yourself.
Runs on every PR, automatically
Install the CrossCheck GitHub App once. Every PR is reviewed automatically in our managed cloud — no CI workflow to maintain, no API keys to manage.
From plain English to a check on the PR.
Three steps. No prompt engineering, no glue code, no per-repo plumbing — reviews run in the CrossCheck-managed cloud.
Write a statement
Describe a rule in plain English. Group statements into Check Groups and attach them to repos.
Reviews run in our cloud
Install the CrossCheck GitHub App. Every PR kicks off a fresh, isolated review; the agent proves each statement true against the diff.
Pass / fail, on the PR
Results post back as a check group: pass, fail, or needs review, with line references and evidence. For the rows that aren’t a clean pass, open the deck and walk through the PR slide by slide.
What does “a good PR” mean in your repo?
Whatever it is, you can encode it. Statements are natural-language rules the agent must prove true on every PR.
What you actually get back, on every PR.
Per-statement results, grouped, ranked by issues, with line-numbered evidence. Try the failing row — it expands into the source.
- All new tables have a Great Expectations test suite94%Fail
Migration 0042 introduces table `events_session` with no matching expectation suite under tests/great_expectations/.
1-- Add events_session table for per-session aggregation2CREATE TABLE events_session (3 session_id UUID PRIMARY KEY,4 user_id UUID NOT NULL REFERENCES users(id),5 started_at TIMESTAMPTZ NOT NULL,6 ended_at TIMESTAMPTZ,7 event_count INTEGER NOT NULL DEFAULT 0,8 properties JSONB9);1011CREATE INDEX events_session_user_id_idx ON events_session (user_id);12CREATE INDEX events_session_started_at_idx ON events_session (started_at);13 - Migrations are reversible (down() implemented)96%Pass
- Every new public function has a docstring99%Pass
- Public API changes are recorded in CHANGELOG.md71%Needs review
PublicSearchClient.search() signature changed; CHANGELOG.md was not updated. May be intentional if pre-1.0.
Open in deck
- No secrets, tokens, or .env values in source97%Pass
Open a deck. Walk through it. Decide.
Statements catch the rules. For the rows that aren’t a clean pass — or AI-generated PRs that are just too long to read — CrossCheck guides you slide by slide. Calibrated to your familiarity, with an AI pair surfacing concerns at the spots that matter.
events_session adds per-user session aggregation across the pipeline.
Introduces a new aggregate table fed from events_raw, plus the migration, the ingestion job, and the SDK surface for querying it.
Thorough
20–40 minLine-by-line. You're the safety net.
- ·Calibrates to your familiarity
- ·Walks every important file with AI annotations
- ·Best for production, hot paths, security
Assisted
8–15 minArchitecture first. Skim the code.
- ·Modules, design, control flow, tests
- ·AI surfaces risks and open questions
- ·Best for feature work and refactors
TLDR
2–3 minJust the gist. AI picks a verdict.
- ·Plain-English summary, no code shown
- ·Risks framed for non-engineers
- ·Best for trivial changes, docs, deps
Tools are data, not code.
Wire up MCP servers, custom skills, or the built-in repo toolset from the admin UI. Pick a review depth per repo; CrossCheck owns the model + cost story. No deploy required.
Three review depths — Fast / Standard / Deep — pick the cost-vs-thoroughness tradeoff per repo.
Built-in tools for navigating your repo — reading files, searching, running commands in an isolated checkout.
Plug in MCP servers for org-specific knowledge — Linear, Slack, your own.
Skills let you bundle instructions + tools and reuse them across check groups.
Things people ask before they sign up.
In the CrossCheck-managed cloud. Each PR spawns a fresh, isolated review that checks out your code, evaluates the statements, and exits — nothing persists between runs. Install the CrossCheck GitHub App once; there's no CI workflow to maintain.
Doors to manual and cross check
Cut the “is this up to standard?” question out of code review.
Encode your team’s standards as statements. Ship the action. Get pass/fail with evidence on every PR.
14-day Pro trial. No credit card required.