Beta

ShipCheck is currently in beta.

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

ShipCheck reviews a pull request as a change in behavior. It looks for behavior that disappeared, safeguards that became weaker, contracts that changed, assumptions that no longer hold, and places where the old behavior should be protected with a regression test.

Behavior change
lib/courseValidation.ts
Warning
Course-code normalization was removed

Inputs that previously normalized successfully may now be rejected.

Before
" cs- 101 " became "CS101"
After
The same input stays lowercase and hyphenated
Impact

Existing valid course-code formats can start failing validation.

Evidence

Previous implementation uppercased and removed whitespace and hyphens.

Understand the change, not just the diff.

A suspicious line is only useful if you understand what it changed. ShipCheck turns important findings into a behavioral explanation.

Before

What used to happen

ShipCheck identifies the behavior or safeguard that existed before the PR.

After

What happens now

The new revision is translated into the behavior it introduces.

Impact

Why it matters

See the real consequence for callers, users, contracts, or system behavior.

Evidence

Why ShipCheck thinks so

Relevant code and repository context support the conclusion instead of a vague AI guess.

Find behavior that quietly disappeared.

AI-generated code can look completely reasonable while removing something important. ShipCheck specifically looks for that kind of change.

  • Previously supported inputs that no longer work
  • Validation or normalization behavior that disappeared
  • Authorization and security safeguards that became weaker
  • Error handling and fallback behavior that was accidentally removed
  • Existing contracts that a new implementation no longer preserves
Regression detected
Reliability
New
Restore canonical course-code normalization
Previous behavior
" cs- 101 " → "CS101"
Current behavior
" cs- 101 " → "cs- 101"
Selected context
RELEVANT ONLY
lib/courseValidation.ts
Changed behavior
app/create-session/page.tsx
Caller
lib/authRules.ts
Related contract
tests/courseValidation.test.ts
Existing tests

The diff is not enough context.

ShipCheck can pull in relevant repository context when a change depends on code outside the diff. That helps it understand existing contracts instead of guessing from a few modified lines.

  • Callers and consumers of changed code
  • Existing validation, authorization, and business rules
  • Related tests and expected behavior
  • Repository-specific assumptions and conventions
  • Selective context instead of blindly sending the entire repository

Different ways a PR can break existing behavior.

ShipCheck combines deterministic checks with contextual AI analysis across the areas most likely to create shipping risk.

Security

Detect security behavior that became weaker because of the pull request.

Authorization regressions
Removed access checks
Secrets and credentials
Unsafe APIs
Injection risks

Reliability

Find changes that quietly make previously working behavior less reliable.

Removed normalization
Broken error handling
Null assumptions
State cleanup failures
Behavioral regressions

Code quality

Catch changes that break existing contracts, assumptions, or repository conventions.

Broken contracts
Incomplete refactors
Duplicated behavior
Debug code
Maintainability regressions

Accessibility

Identify user-facing changes that remove accessibility behavior that previously worked.

Missing accessible names
Keyboard regressions
Semantic regressions
Broken labels
Interaction changes

Testing

Find meaningful behavior changes that are not protected by regression tests.

Changed behavior without tests
Missing edge-case coverage
Untested failure paths
Missing authorization tests
Regression-test opportunities

Don't just find the regression. Make it harder to repeat.

Once ShipCheck understands the behavior that changed, it can help repair it and create a regression test based on the behavior that needs to be preserved.

Safe AI fixes

Generate a targeted fix after a contextual AI finding has been identified. Fix generation happens when you ask for it rather than spending model tokens on every finding upfront.

  • Generated on demand
  • Scoped to AI findings
  • Uses finding and repository context
  • Review before applying

Regression tests

ShipCheck carries the finding's before, after, impact, and evidence into regression test generation so the resulting test protects the actual behavior that was lost.

  • Behavior-aware test generation
  • Suggested test file and framework
  • Persisted generation state
  • Apply the generated test to the PR

Know what changed since the last scan.

Re-running a reviewer should not feel like starting from zero. ShipCheck compares findings across revisions so you can immediately see what your latest changes actually fixed.

Scan delta compares the current revision against the previous completed revision of the same pull request.

Since previous scan
Revision comparison
1
Resolved
1
New
0
Still present
NEW
Introduced in this revision

This finding did not exist in the previous completed scan.

STILL PRESENT
The issue remains

ShipCheck matched the same finding across both revisions.

RESOLVED
No longer detected

The finding existed previously but disappeared in the current revision.

REOPENED
The issue came back

A previously resolved finding appeared again later in the pull request.

Ship score
92/ 100
Review before shipping

Not every finding deserves the same attention.

ShipCheck combines findings into a shipping-risk score and verdict so reviewers can focus on the changes most likely to matter before merge.

  • Severity-aware findings
  • Security, reliability, quality, accessibility, and testing categories
  • Clear shipping verdict
  • Recomputed as the PR evolves

From pull request to verified fix.

01

Read the revision

ShipCheck anchors analysis to the exact pull request revision and determines what changed.

02

Compare behavior

It reasons about behavior before and after the change instead of reviewing the new lines in isolation.

03

Gather evidence

Relevant repository context is selected to verify contracts, safeguards, callers, and assumptions.

04

Prioritize risk

Findings are categorized and weighted so the highest-risk behavior changes surface first.

05

Protect the behavior

Generate a regression test that captures the behavior that should continue to work.

06

Verify the revision

Re-scan the PR and see which findings are new, resolved, reopened, or still present.

Review the PR where the PR already lives.

Install ShipCheck on the repositories you choose and scan pull requests without changing your existing GitHub workflow.

  • GitHub App installation
  • Repository-specific access
  • Manual GitHub-native /shipcheck invocation
  • Exact pull request commit revision
  • Re-scan as new commits are pushed
Pull request #42
feat/new-checkout → main
Revision
4beda9c
Scan
Complete
Trigger
/shipcheck

Tune ShipCheck to the repository.

AI review

Enable or disable AI-enhanced behavioral analysis independently for each repository.

Category controls

Control Security, Reliability, Code Quality, Accessibility, and Testing findings independently.

Ignored paths

Exclude generated files, snapshots, documentation, vendored code, or repository-specific paths.

Ignored rules

Disable deterministic rules that do not make sense for a specific repository.

One pre-merge system for understanding shipping risk.

Behavior-change analysis
Before / after behavior
Behavior impact
Evidence-backed findings
Regression detection
Removed safeguard detection
Contract-change detection
Contextual AI review
Deterministic checks
Selective repository context
Ship score
Shipping verdict
Regression-test generation
On-demand AI fixes
Finding lifecycle
Scan-to-scan delta
Resolved finding tracking
Exact revision tracking
GitHub-native scanning
Repository controls
Ignored paths