Show HN: ShipCheck – Catch when AI breaks old fixes ShipCheck launched as a developer tool that gives repositories a memory of behaviors they are supposed to preserve, then checks future pull requests against those behaviors. The tool discovers important behavior already encoded in tests, authorization logic, validation, schemas, callers, and safeguards, and describes pull-request changes as preserved, introduced, intentionally changed, or violated behavior. ShipCheck says it addresses regressions that are not visible in a diff, such as a pull request that removes an authorization check like "Only subscription owners may cancel subscriptions. Your code changed. Did its behavior? ShipCheck gives your repository memory of the behaviors it is supposed to preserve, then checks future changes against them. Code reviewers see the diff. ShipCheck remembers what came before. A pull request can look reasonable while quietly removing an authorization check, validation rule, API contract, or safeguard the repository relied on. ShipCheck maps changes back to those behavioral expectations. Understand this pull request. Understand what this changes about your system. Give your repository memory in four steps. Discover what your software already guarantees, protect it, track how it evolves, and remember where it came from. Find the behavior your repository already depends on. ShipCheck looks across implementation code, tests, authorization logic, validation, callers, schemas, and safeguards to identify behaviors that appear important enough to remember. Only project owners may delete projects. app/api/projects/ id /route.ts Expired sessions must always be rejected. middleware.ts Course codes are normalized before duplicate detection. lib/courses/create-course.ts Some regressions aren't visible in the diff. They live in what the repository used to guarantee. ShipCheck keeps those guarantees around long enough to notice when they're broken. - if subscription.userId == user.id throw new UnauthorizedError ; + await cancelSubscription subscription.id ; Only subscription owners may cancel subscriptions. Violated Repository behavior, not just review comments. Behavior Discovery Discover important behavior already encoded in tests, authorization logic, validation, schemas, callers, error handling, and safeguards. Behavior Guards Protect repository expectations so future pull requests can be evaluated against behavior the software is supposed to preserve. Behavioral Diff Describe meaningful pull-request changes as preserved, introduced, intentionally changed, or violated behavior. Behavior History Track when a behavior was introduced, preserved, intentionally changed, violated, restored, and preserved again. Historical origin tracing Mine git history across related implementation and test files to identify where protected behavior originally became true. Cross-file evidence Connect behavior to implementation files, helpers, authentication boundaries, callers, tests, and supporting repository evidence. AI code review reads code. ShipCheck protects behavior. Give your repository a memory. Protect the behaviors your software already depends on, then know when future pull requests change them. Start with GitHub /signup