Beta

ShipCheck is currently in beta.

Your code changed.
Did its behavior?

ShipCheck analyzes pull requests for unintended behavior changes, removed safeguards, broken contracts, and regressions that can look completely reasonable in code review — then helps you fix and lock the expected behavior in with a regression test.

Detect behavior changesCatch removed safeguardsFind broken contractsGenerate regression tests
app.shipcheck.dev/dashboard/scans/8b7f
acme-inc/customer-portal

Ship report

Checkout retry + subscription changes

PR #42 · 31 files checked · 18 seconds ago

Not ready to ship

Ship Score

72/ 100

High risk

Critical

2

Blocks shipping

Warnings

4

Needs review

Passed

31

Checks successful

Behavior changes

Changes that may break existing behavior

Subscription ownership behavior changed

Before

Only the subscription owner could delete it.

After this PR

Any authenticated user can reach the delete operation.

Impact: A user may now be able to delete another user's subscription.

app/api/subscriptions/[id]/route.ts

Checkout response contract changed

Before

The checkout page received the fields it expects from the API.

After this PR

The API returns a different shape while the checkout page still reads the old fields.

Impact: A successful checkout can break when the frontend reads values that no longer exist.

app/api/checkout/route.ts

Retry behavior changed without regression coverage

Before

The checkout flow only handled the existing request path.

After this PR

The PR introduces retry behavior and a new failure path.

Impact: The new behavior can regress later without a test proving how retries should work.

tests/checkout.test.ts

Writing code got faster.
Knowing what it changed didn't.

AI can generate a valid-looking implementation in seconds.

It can also remove a safeguard, misunderstand a repository contract, skip a failure state, or quietly introduce behavior nobody tested.

ShipCheck is the verification layer after the generation layer.

It compares the pull request against the behavior and safeguards already present in the repository, surfaces dangerous changes, and helps prove the expected behavior before merge.

Find what the PR changed.
Not just what looks wrong.

ShipCheck looks for behavior that disappeared, safeguards that were weakened, contracts that changed, and existing assumptions that no longer hold after the pull request.

Security checks

Catch dangerous changes before they become incidents.

ShipCheck combines deterministic checks with repository-aware review to surface credentials, unsafe APIs, missing authorization, injection risks, insecure configuration, and other security regressions.

Evaluated against the pull request and repository

Scan findings

PR #42 · current revision

2 need attention

Ownership validation removed from delete route

critical

The endpoint still authenticates the request, but no longer verifies that the resource belongs to the signed-in user.

app/api/projects/[id]/route.ts

Live provider credential detected

critical

A newly added literal matches the structure of a production credential rather than an obvious placeholder.

lib/payments/client.ts

Protected dashboard remains authenticated

passed

Existing authentication boundaries remain intact after the pull request.

middleware.ts

Critical

1

Warning

1

Passed

1

From pull request
to verified repair.

01

Open or update a pull request

ShipCheck receives the GitHub event and queues the exact PR revision for analysis.

02

Scan the change in repository context

Deterministic rules and AI review analyze the changed code, surrounding contracts, and relevant repository context.

03

Get one clear ship report

See severity, categories, risk, concrete findings, suggested fixes, and an overall Ship Score.

04

Fix it or generate a regression test

Apply a guarded repair or generate a focused test designed to prevent that exact bug from returning.

05

Run /shipcheck again

Push the repair or comment /shipcheck and verify the current revision before merging.

One comment.
Fresh ship check.

Fixed a finding? Changed the implementation? Comment /shipcheck on the pull request and run another review of the latest revision.

No dashboard detour required
Works inside the GitHub pull-request workflow
Re-check after fixes before you merge
github.com/acme/customer-portal/pull/42
sarah-devcommented now
/shipcheck

shipcheck-ai

bot

ShipCheck queued for the latest revision.

Scan statuscompleted
94/ 100 Ship Score

Previous critical findings no longer appear in the current PR revision.

Interactive example — no GitHub action is performed here.

Built around the
regression workflow.

Detect what behavior changed, understand the impact, repair the regression, lock the expected behavior in with a test, and verify the next revision.

Pull-request native

ShipCheck lives where code actually gets merged. GitHub events automatically create scans for connected repositories.

Behavior-aware analysis

Analyze changed behavior against surrounding contracts, callers, safeguards, and repository assumptions instead of judging isolated lines.

Deterministic security checks

Catch known credential formats, private keys, credentialed connection strings, high-entropy secrets, and other high-signal problems without relying entirely on AI.

Ship Score + risk level

Turn a wall of feedback into a clear readiness signal with structured counts by severity and category.

Apply Fix

For safe machine-applicable findings, ShipCheck can commit exact fixes directly to the current PR branch.

Regression-test generation

Generate one focused test for one concrete finding using the repository's detected framework and existing testing style.

/shipcheck

Fixed a regression or changed the implementation? Comment /shipcheck to verify the latest PR revision again.

Per-repository controls

Enable or disable Security, Reliability, Quality, Accessibility, Testing, AI review, ignored paths, and ignored rules per repository.

Durable scan execution

Scans are queued and claimed by workers with retry handling and stale leases instead of depending on a fragile request staying alive.

Find it.
Fix it. Prove it.

A review comment is useful. A repaired pull request with a regression test is better. ShipCheck can move from diagnosis to remediation while keeping the developer in control.

Critical finding

Authorization guard removed from delete route

The pull request still verifies that the caller is authenticated, but no longer checks that the requested project belongs to that user.

Exact target text must still exist
Current PR head must match scanned commit
Repair plan is bounded by edits and files
Unsafe paths are rejected server-side
Multi-file repairs commit atomically
01Validate revision
02Apply patch
03Re-check
app/api/projects/[id]/route.ts
proposed repair
27const user = await requireUser();
28 
29+ const project = await getProject(id);
30+ if (project.userId !== user.id) {
31+ return Response.json({ error: "Forbidden" }, { status: 403 });
32+ }
33 
34await deleteProject(id);

Ready to validate repair

ShipCheck will verify the target revision before changing any code.

Your repositories
are not identical.

Tune ShipCheck per project. Enable the categories that matter, turn AI review on or off, ignore generated directories, and silence rules that do not fit a repository.

Security
Reliability
Quality
Accessibility
Testing
AI review
Ignored paths
Ignored rules

Repository settings

acme-inc/customer-portal

AI review

Use repository-aware AI analysis during scans.

Scan categories

Security

Reliability

Quality

Accessibility

Testing

Ignored paths

generated/**
public/vendor/**

Ignored rules

accessibility-icon-label
quality-large-file

Try the toggles — this is an interactive homepage preview.

Code reviewers review the change.
ShipCheck checks what the change broke.

GitHub Copilot, Cursor Bugbot, CodeRabbit, and Qodo are capable code-review tools. ShipCheck is built specifically around behavioral regression analysis: what worked before, what changed in this pull request, whether that change is dangerous, and how to prevent the regression from returning.

ShipCheck
GitHub
Cursor Bugbot
CodeRabbit
Qodo
Primary focus

Behavioral regressions

Looks for existing behavior, safeguards, contracts, and assumptions changed by the PR.

General code review

Reviews pull-request changes for bugs, quality issues, and other concerns.

Bug-focused review

Reviews pull requests for logic bugs, security issues, and correctness problems.

AI code review

Provides automated review, walkthroughs, and configurable merge checks.

AI review + governance

Reviews code against repository context, requirements, and organizational rules.

Behavior analysis

Before → after reasoning

Explains what behavior existed before the PR and what the changed code now does.

Review changed code

Can identify problems introduced by changed lines and surrounding context.

Review changed code

Analyzes pull-request changes for likely bugs.

Context-aware review

Reviews changed code using repository and pull-request context.

Context-aware review

Uses codebase and organizational context during analysis.

Removed safeguards

First-class regression signal

Explicitly looks for weakened authorization, validation, fallbacks, checks, and existing protections.

May surface during review

General review can identify safeguard or security problems when detected.

May surface as a bug

Can report removed protection when it creates a correctness or security issue.

May surface during review

Can identify relevant correctness or security problems.

May surface during review

Can identify rule, requirement, or implementation violations.

Regression protection

Finding → regression test

Turn the exact discovered behavior regression into a focused test using the repository's conventions.

General test assistance

Copilot can help developers create and modify tests.

Agent-assisted testing

Findings can be handed into Cursor workflows that modify code and tests.

Unit-test generation

Supports generating tests for changed code.

Test-generation workflows

Provides AI-assisted test-generation capabilities.

Readiness signal

Ship Score + verdict

One 0–100 risk score and readiness verdict summarize the exact scanned revision.

Review + repo checks

Merge readiness depends on feedback, required reviews, CI, and branch protections.

Required status check

Can be required before merge, and can fail on unresolved findings in some setups.

Pass / warn / block

Pre-merge checks can pass, warn, or block merges based on configuration.

Prioritized review signal

Review agents and rule enforcement highlight what should influence the merge decision.

Fixing findings

Revision-guarded repair

Apply a bounded repair only if the PR head still matches the revision that produced the finding.

Suggestions + agents

Developers can apply suggestions or use Copilot agents for broader changes.

Fix in Cursor / Agent

Bugbot findings can be handed to Cursor or Background Agent for remediation.

Autofix

Can implement unresolved findings and commit changes back to the pull request.

Actionable remediation

Review findings include guidance for resolving issues and rule violations.

Repository controls

Verification controls per repo

Control AI review, scan categories, ignored paths, ignored rules, and checks that feed shipping risk.

Custom instructions

Repository and path-specific instructions can customize review behavior.

Rules + project guidance

Teams can define custom standards, proven approaches, and project-specific review rules.

Deep repository config

Review behavior, paths, automatic reviews, tools, and custom checks are configurable.

Organization rule system

Rules can incorporate repository context, PR history, requirements, and org-wide standards.

After a fix

Verify the repaired revision

Push the change or run /shipcheck again and evaluate the new revision as a fresh ship decision.

Review updated changes

Updated PRs continue through GitHub's normal review, CI, and branch-protection flow.

Review new changes

Can review what changed since its previous review and surface any new findings.

Incremental re-review

Automatically updates its analysis as commits change the pull request.

Re-review current PR

Can automatically or manually review the latest PR state again.

Positioning comparison, not a benchmark. Competitor capabilities evolve over time and can vary by plan, configuration, platform, and product surface.

Before you
install it.

ShipCheck is intentionally opinionated about the moment right before merge: find risk, resolve it, and verify the next revision.

ShipCheck is focused specifically on behavioral regressions. Instead of primarily asking whether the changed code looks correct, it asks what behavior, safeguards, contracts, and assumptions changed compared with what already worked. Findings can then be fixed, turned into focused regression tests, and verified against the next revision.

Comment /shipcheck on a connected pull request and ShipCheck can queue another review of the current PR revision. It gives developers an explicit way to re-check a change after fixing findings.

Not blindly. A finding must contain a machine-applicable repair plan before Apply Fix is available. The backend validates edit count, file count, paths, exact search targets, the PR state, and the exact scanned commit before writing.

ShipCheck treats old results as stale for write operations. Before applying a fix it checks that the current pull-request head still matches the commit that was scanned, so an old repair is not silently applied to new code.

Yes. Repository settings support category toggles for Security, Reliability, Quality, Accessibility, and Testing, plus AI review, ignored paths, and ignored rule IDs.

Fixing a bug once is not enough. ShipCheck can turn a specific finding into a focused test that demonstrates the broken behavior, follows the repository's test framework, and helps prevent the same regression from coming back.