{"slug": "show-hn-shipcheck-catch-when-ai-breaks-old-fixes", "title": "Show HN: ShipCheck – Catch when AI breaks old fixes", "summary": "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.", "body_md": "# Your code changed.\n\nDid its behavior?\n\nShipCheck gives your repository memory of the behaviors it is supposed to preserve, then checks future changes against them.\n\n## Code reviewers see the diff.\n\nShipCheck remembers what came before.\n\nA 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.\n\n### Understand this pull request.\n\n### Understand what this changes about your system.\n\n## Give your repository memory in four steps.\n\nDiscover what your software already guarantees, protect it, track how it evolves, and remember where it came from.\n\n### Find the behavior your repository already depends on.\n\nShipCheck looks across implementation code, tests, authorization logic, validation, callers, schemas, and safeguards to identify behaviors that appear important enough to remember.\n\nOnly project owners may delete projects.\n\napp/api/projects/[id]/route.ts\n\nExpired sessions must always be rejected.\n\nmiddleware.ts\n\nCourse codes are normalized before duplicate detection.\n\nlib/courses/create-course.ts\n\n## Some regressions aren't visible in the diff.\n\nThey live in what the repository used to guarantee. ShipCheck keeps those guarantees around long enough to notice when they're broken.\n\n```\n- if (subscription.userId !== user.id) throw new UnauthorizedError();\n+ await cancelSubscription(subscription.id);\n```\n\nOnly subscription owners may cancel subscriptions.\n\nViolated\n## Repository behavior, not just review comments.\n\n### Behavior Discovery\n\nDiscover important behavior already encoded in tests, authorization logic, validation, schemas, callers, error handling, and safeguards.\n\n### Behavior Guards\n\nProtect repository expectations so future pull requests can be evaluated against behavior the software is supposed to preserve.\n\n### Behavioral Diff\n\nDescribe meaningful pull-request changes as preserved, introduced, intentionally changed, or violated behavior.\n\n### Behavior History\n\nTrack when a behavior was introduced, preserved, intentionally changed, violated, restored, and preserved again.\n\n### Historical origin tracing\n\nMine git history across related implementation and test files to identify where protected behavior originally became true.\n\n### Cross-file evidence\n\nConnect behavior to implementation files, helpers, authentication boundaries, callers, tests, and supporting repository evidence.\n\n## AI code review reads code.\n\nShipCheck protects behavior.\n\n## Give your repository a memory.\n\nProtect the behaviors your software already depends on, then know when future pull requests change them.\n\n[Start with GitHub](/signup)", "url": "https://wpnews.pro/news/show-hn-shipcheck-catch-when-ai-breaks-old-fixes", "canonical_source": "https://useshipcheck.dev", "published_at": "2026-09-10 15:25:33+00:00", "updated_at": "2026-09-10 15:47:25.533848+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-products"], "entities": ["ShipCheck", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-shipcheck-catch-when-ai-breaks-old-fixes", "markdown": "https://wpnews.pro/news/show-hn-shipcheck-catch-when-ai-breaks-old-fixes.md", "text": "https://wpnews.pro/news/show-hn-shipcheck-catch-when-ai-breaks-old-fixes.txt", "jsonld": "https://wpnews.pro/news/show-hn-shipcheck-catch-when-ai-breaks-old-fixes.jsonld"}}