For a while I’ve been thinking about how traditional CI is blind to the world outside its own repository. A change in one service can silently break another, and you often don't find out until it's too late.
Carrick is a GitHub Action that tries to solve this with a new approach. It builds a dependency graph of your microservices to catch these cross-repository issues before they merge.
Here’s how it works:
1. It uses static analysis (via SWC) to find API producers in your Express apps.
2. It then uses LLM reasoning to find the corresponding API consumers across your other services.
3. It associates them via API routes and flags common issues such as:
- Mismatched types
- Incorrect package versions
- Wrong HTTP verbs
- Missing or deprecated endpoints
The goal is to get fast, low-effort feedback directly in your PRs. It’s currently designed for teams with Express and TypeScript services spread across multiple repositories, but I will be rolling it out to other languages soon.
tRPC works within the context of a monorepo and provides utilities for type safety, typically between frontend/backend. Carrick allows you to check API producers/consumers across different repositories. It isn't a library for development, its a Github action that you add to your workflow files and it gives you CI feedback if your PR changes will cause issues with your other services.
daveymoores•6h ago
For a while I’ve been thinking about how traditional CI is blind to the world outside its own repository. A change in one service can silently break another, and you often don't find out until it's too late.
Carrick is a GitHub Action that tries to solve this with a new approach. It builds a dependency graph of your microservices to catch these cross-repository issues before they merge.
Here’s how it works:
1. It uses static analysis (via SWC) to find API producers in your Express apps.
2. It then uses LLM reasoning to find the corresponding API consumers across your other services.
3. It associates them via API routes and flags common issues such as: - Mismatched types - Incorrect package versions - Wrong HTTP verbs - Missing or deprecated endpoints
The goal is to get fast, low-effort feedback directly in your PRs. It’s currently designed for teams with Express and TypeScript services spread across multiple repositories, but I will be rolling it out to other languages soon.
I’ve written a blog post about some of the engineering and a deeper dive into the problem space here → https://www.carrick.tools/blog/the-multi-repository-typescri...
If you would find this kind of tooling helpful, you can find the Github action in the marketplace → https://github.com/marketplace/actions/carrick-api-analysis
Signup at https://www.carrick.tools/ and I’ll send you an API key.