Blog/Engineering Intelligence··3 min

Blast radius is a walk, not a feeling

“What could this break?” is a graph query. Treat it like one.

  • pull request blast radius
  • change impact
  • software coupling
  • engineering graph
A constellation of connected software changes revealing pull request blast radius

Every incident retro includes a sentence that starts with “we didn’t realize.” The file looked small. The copy change was one line. Payments moved because checkout always moves with it, and nobody had written that down as a relationship.

Blast radius is not a vibe. It is the set of nodes you can reach from a change by following evidenced edges.

The walk

Start at the pull request. Follow MODIFIED to files. Follow CONTAINS up to the directory. Follow COUPLED to files that share merge history. Follow TOUCHED and OWNS to the people who will feel the page if it pages.

That walk is Helix Review’s blast radius. It is also what Pulse lists as coupling, and what Ask Helix cites when you type “what could #41 break?”

function radius(engine, prId) {
  const files = engine.neighbors(prId, "MODIFIED");
  const coupled = files.flatMap((file) =>
    engine.neighbors(file.id, "COUPLED"),
  );
  return [...files, ...coupled];
}

There is no model in that function. There is history.

Why import graphs lie here

An import edge says “this module mentions that module.” A merge edge says “these two files keep landing in the same review.” Incidents care about the second. Checkout can import nothing from payments and still ship with it every week because the product is one flow.

Graph engineering prefers observed change over declared structure. Declared structure is still useful: later, as another evidence source. It should never be the only map of risk.

Review is the place the walk should appear

A structured comment on the pull request is how the walk leaves the graph and reaches the people about to merge. Helix Review writes blast radius, silos, suggested reviewers, and a ship / review / hold verdict. It upserts one comment so the thread does not stack.

If the owner of a silo is not on the pull request, the verdict is hold. If coupling is dense and reviewers are thin, the verdict is review. Otherwise it is ship: with the walk attached, so “ship” is still evidenced.

That is the difference between a linter and engineering intelligence. A linter shouts at syntax. A graph tells you what the last eight merges imply about this one.

Treat blast radius as a walk you can cite. Open Helix, index the repository, and read the comment Helix would leave on your next pull request.

A constellation of software nodes around a helix

Helix

See the graph on your repository.

Index merge history, let agent loops encode DNA, and assess a pull request's ship readiness from evidence.

Keep reading

Suggested field notes.