Static dependency analysis
Parse imports and module graphs to link each test file to the source files it can reach. Zero runtime overhead, ideal as the baseline layer.
- Import-graph extraction per PR
- Monorepo package-boundary awareness
Agents pushed CI job volume up 25x. Faster runners help, but they still check a repo — not the system. We wire test impact analysis into your pipeline so every commit and every agent loop runs only the tests a change could actually break.
Fixed price per technology · Live in your CI in 1–2 weeks · No test skipped blindlyWe map every test to the code it actually exercises. On each pull request we compute the change set, select the affected tests, and run the rest only on a schedule. Green means the same as before — it just arrives in minutes instead of an hour.
Build the dependency graph between source files and tests using coverage, imports, and call graphs.
On each commit, diff the change set and select only affected tests plus high-risk neighbours.
Run the subset in CI with the same reporters and gates. Full suite still runs nightly and on main.
Ship an audit report per run: what changed, what ran, what was skipped, and why it was safe.
No single technique fits every stack. We combine the ones your codebase supports and fall back safely where it does not.
Parse imports and module graphs to link each test file to the source files it can reach. Zero runtime overhead, ideal as the baseline layer.
Collect per-test coverage (Istanbul, Coverage.py, JaCoCo, Coverlet) and invert it into a test-to-code index. The most precise file-level signal.
Diff ASTs and call graphs instead of raw files, so formatting-only changes run a smoke subset while behavioural changes run the full affected set.
Mine your CI history for flaky and high-signal tests. Frequently failing or recently fixed areas always run, even when the graph says they are untouched.
For distributed systems, extend selection beyond the repo: OpenTelemetry traces and contract tests flag downstream services a change could break.
Expose the selector as a hook your coding agents call before opening a PR (Claude Code, Cursor, Copilot). Agents get fast, governed feedback instead of waiting 20 minutes for a red check.
Same deliverables, priced by stack complexity. Each package covers one repository, CI integration, and a 30-day accuracy warranty. Need more repos? Each additional repo is 50% off.
Jest, Vitest, Playwright · GitHub Actions, GitLab CI
$2,900 fixed · 1 repo · ~1 week
pytest, coverage.py · GitHub Actions, GitLab CI
$2,900 fixed · 1 repo · ~1 week
Maven, Gradle · JaCoCo · Jenkins, GitHub Actions
$3,400 fixed · 1 repo · ~2 weeks
go test, coverprofile · GitHub Actions, GitLab CI
$2,700 fixed · 1 repo · ~1 week
xUnit, NUnit · Coverlet · Azure DevOps, GitHub Actions
$3,400 fixed · 1 repo · ~2 weeks
PHPUnit, Pest · WordPress, Laravel
$2,700 fixed · 1 repo · ~1 week
No test is deleted. Selection is conservative: behavioural changes escalate to the full affected set, API-signature changes escalate further, and the complete suite still runs nightly and on every merge to main. Every run ships a report showing what ran, what was skipped, and why.
That is included. Each package sets up per-test coverage collection from scratch (or repairs a broken setup) as part of the fixed price. If your stack cannot support coverage, we fall back to static analysis plus history-based selection.
Yes. The selector ships as a CLI and CI step your agents can call before opening a PR, so agents verify against the affected tests in seconds instead of waiting for a full pipeline. The check is governed: same rules, same report, whether a human or an agent triggers it.
Read access to one repository and its CI config, plus one 45-minute kickoff to agree on gates (what must always run, nightly windows, branch protection). We work in our own branch and hand over via pull request.
Send us your repo and CI config. We reply with a fixed price, a start date, and an estimated time saving.
The names and details of our white-label consultancy portfolio are subject to a Non-Disclosure Agreement (NDA), so we can't list them publicly. Tell us who you are and we'll share more with you directly.
We'd love to connect you with our client for a quick recommendation call. Please note that this is subject to the client's availability — more recent clients tend to be more open to such conversations. If the specific client isn't available, we'll do our best to connect you with another satisfied client who worked on a similar project.