Every repo, package, endpoint, queue topic, database, dashboard, deploy, or runtime container. Each carries a stable identity that survives renames.
The model that holds
your whole system.
A typed, provenance-verified graph of how your system actually runs. Code through runtime. Identities resolved, edges explicit, every edge carrying a confidence and a source.
What the model is made of.
Six properties. Six rules. Every claim the system makes is one of these six. Nothing more.
Every relationship between nodes: imports, calls, declares, consumes, deploys, runs, owns. Each carries a confidence in [0,1] and a source.
A confidence per edge from one or more extractors, merged via noisy-OR. Walks across the graph multiply, so distance pays a cost.
Every edge cites the extractor and the location it came from. You can trace any claim back to a line of code, a span, a manifest.
Every edge carries a last-verified timestamp. The model knows when its own facts went stale. Old answers do not get to pretend to be current.
Observed reality from traces, eBPF, the bus, the cluster. Confirms, downgrades, or contradicts the declared graph beneath it.
The code graph. The OSS wedge.
One command, anywhere. Extractors walk the source: imports, declared endpoints, gRPC and protobuf, OpenAPI, wrapped clients, queue topics, env-coupled databases. The edges no formal-schema tool can see.
Radius HIGH · 7 node(s) potentially affected
This PR changes acme/payments (a8f3c21) across 4 file(s). Walking the graph from this repo, 7 downstream node(s) are reachable within 3 hop(s) at confidence ≥ 0.2.
| node | type | distance | confidence | reasoning |
|---|---|---|---|---|
| repo:github.com/acme/checkout | repo | 1 | 0.94 | via consumes-endpoint |
| pkg:npm:@acme/payments-client | package | 1 | 0.91 | via imports-package |
| endpoint:POST /v2/charge | endpoint | 1 | 0.88 | via declares-endpoint |
| repo:github.com/acme/orders | repo | 2 | 0.72 | via consumes-endpoint → consumes-endpoint |
| repo:github.com/acme/billing | repo | 2 | 0.61 | via consumes-endpoint → consumes-endpoint |
| pkg:npm:@acme/event-bus | package | 2 | 0.48 | via imports-package → imports-package |
| repo:github.com/acme/audit-log | repo | 3 | 0.32 | via consumes-endpoint → observed-rpc |
How to read this:
confidenceis the multiplied confidence along the cheapest path from this repo to the listed node. Higher = stronger evidence the edge actually exists.- Treat high-confidence rows as places to read carefully; low-confidence rows as places to glance.
Generated by blastmap at 2026-05-23T18:34:02.000Z.
Blast radius is one query over the model. It walks every edge from a changed node and ranks the downstream nodes by the multiplied confidence of the cheapest path. The PR comment is the most boring place that query can live.
One model. Four realities. Side by side.
The same edges, the same identities, resolved against every environment you ship to. Drift between prod and staging is named, not hidden. Diffable and routable to the owner.
Wire runtime in. The graph becomes a twin.
The static graph tells you what was supposed to be true. The runtime overlay tells you what is true right now. Edges get confirmed, downgraded, or contradicted against the real system.
Pods, services, ingresses, hpa, deploys. What is actually running at what version, where.
Observed RPCs, observed DB queries, observed bus consumption. The edges no schema declared.
What hurt, when, where, with which input. The ground truth that grounds every verdict.
Spend over the graph instead of over a CSV. The module behind every dollar.
Topics, consumer groups, lag. The conversation the system is having with itself.
Owners, on-call rotations, recent context. The map that always lived in heads.
Agents fall out of the model.
Once the substrate is verified and live, an agent can run on it without guessing. Five agents derived from the model, each doing one operational job end to end.
Four bets we made.
Non-negotiable. They are the boundary conditions that make anything built on the model safe to trust.
Invisible relationships are the moat.
Most cross-service edges hide inside wrapped HTTP clients, string URLs, dynamic dispatch. blastmap finds them where formal-schema tools physically cannot.
Confidence is a first-class property.
Every edge carries a confidence in [0, 1] from one or more extractors, merged via noisy-OR. Every walk ranks by it. No false certainty, anywhere.
Org context is auto-injected.
Your stack, your conventions, your active migrations, captured once at init and prepended to every LLM call. The model never reasons about your code blind.
OSS-first, bring your own LLM.
Run it on your laptop or in your VPC. Plug in Anthropic, OpenAI, Google, or local via Ollama. Your code never leaves your network.
The model meets you where you work.
Six surfaces, one substrate. Run the query from the CLI, read the digest in markdown, ask the question from Claude or Cursor, get the comment on the PR. Same answer, every time.
bunx blastmap. Init the world, run the queries, ship the digest.
Bot posts the confidence-weighted blast radius on every pull request.
Claude, Cursor, or any agent gets 12 read-only tools over the model.
Plain-English questions over the model. Cited answers, no guessing.
Browse the live graph as files. Diff it in git.
Subscribe to changes. Trigger your own systems on confirmed edges.