DEV Community

Cover image for Automatically Answering "What Does This PR Break?" Building Blast Radius Analysis Into GitHub Reviews
N3MO
N3MO

Posted on

Automatically Answering "What Does This PR Break?" Building Blast Radius Analysis Into GitHub Reviews

(this is an open core project so please visit to the github repositry to contribute any contribution would be helpful)

Automatically Answering "What Does This PR Break?" Building Blast Radius Analysis Into GitHub Reviews

Every large codebase has the same recurring question in code review: what else does this change touch?

Text search misses indirect dependencies. Unit tests only catch what they were written to catch. And in a codebase with thousands of files, nobody can hold the full dependency graph in their head.

I built N3MO to answer this automatically, and recently shipped the feature I think matters most: it now posts the answer directly as a PR comment.

How it works

When a PR opens, N3MO:

  1. Parses the diff to find every symbol added, deleted, or modified
  2. Traces each symbol through a call graph built from the repo's AST
  3. Posts a structured report as a PR comment direct callers, total downstream impact, per-symbol status

No dashboard to check. No separate tool to open. It shows up exactly where review already happens.

Why AST parsing instead of grep

Text search finds textual matches. It can't tell you that a renamed function is called indirectly through three layers of abstraction, or that a modified return type breaks a caller two files away that never appears in a simple search.

N3MO builds a real structural map: parse each file into an AST (Tree-sitter, 27 languages), extract symbol definitions and call sites, and store the graph in Postgres using recursive CTEs to trace transitive dependencies. That's what lets it answer "what breaks if I change this?" with certainty instead of a guess.

Performance at scale

Indexing needs to work on real codebases, not toy examples. Current benchmarks:

  • TensorFlow (14.6k files, 480k+ edges): ~14 minutes cold-start
  • Re-indexing after a PR is incremental only changed files get re-parsed, so it stays fast on subsequent runs

Security model

Since this runs on private repos, code never leaves the user's environment. Indexing happens in place, and nothing is sent to an external server for analysis.

Where it's at

N3MO has been in daily active use by ~8k developers via the local CLI/MCP integration (Cursor, Claude Desktop). The SaaS/PR-comment feature is newer and is what I'm actively building toward — turning individual CLI usage into a tool teams adopt for code review.

Try it on your repo

Log in, connect your repository, and a 15-day free trial activates automatically. Follow the setup steps and N3MO runs on every PR from that point on — indexing in place, re-indexing only what changed, nothing leaving your repo.

If you work in a codebase where "what depends on this?" comes up often in review, I'd genuinely like feedback:[n3mo.shop]

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.