Skip to content
All four analyses

Analysis

Dependency graph: see the architecture, not just the files

A new analysis that answers what depends on what, and what happens if you touch it. Relations are extracted statically from your working directory and rendered as a navigable 3D graph.

  • Three layouts: force-3d, hierarchical, and metric-space with real axes.
  • Any node metric (fan-in, fan-out, cycle size, blast radius) can drive size, height, colour or position.
  • Click a node to pin its metric card; large projects open in group view and you drill in.
The dependency graph in the force-3d layout

Dependency graph in XR

Watch on YouTube

How to read it

The dependency graph answers a different question from the other three: not how big or how complex a file is, but what depends on what, and what happens if you touch it. The relations are extracted statically from your working directory, so nothing has to run.

Nodes are files, folders and symbols; edges are the relations between them. The shape of a node tells you what it is: a sphere is a function, a cylinder a method, a pyramid a class, a diamond an interface and a box a folder. Click any node to pin its card and read its coupling, its cycle and how much depends on it; click again to release it.

Unlike the other analyses this is not a chart you swap. It is one graph you look at three ways, and the layout is the thing you change. External packages collapse into a single portal so they do not crowd your own code, and large projects open grouped so you drill down into folders rather than meeting every node at once.

What you can map onto a node

  • Size: the metric that scales each node
  • Height: the metric that raises it above the table
  • Colour: a metric, or the node’s language
  • Position: X and Z, available only in the metric-space layout, where the axes are real

Why it is worth the detour: this is the analysis that shows you what a change will touch before you make it, which is exactly what a list of files cannot do.

Three layouts, and how the edges are drawn

The layout decides where nodes sit. The edge mode decides what the lines between them are telling you.

force-3d
A spatial layout: connected nodes pull towards each other, so clusters emerge on their own.
hierarchical
Nodes arranged by dependency level, so the direction of flow is readable.
metric-space
Real axes: X and Z become metrics you choose, so a node’s position itself carries meaning.
Relation type
Edge colour identifies the kind of relation: import, include, require, inheritance, implementation, call or contains. Width stays constant.
Intensity color
Edge colour encodes how often the relation occurs instead.
Intensity width
Edge width encodes occurrences, while colour still identifies the relation kind.
Color + width
Both channels encode how often the relation occurs.

What the numbers mean

These are the extension’s own definitions: the same glossary the in-room guide shows, generated from the real analysis contracts.

Fan-in
Incoming: how many files depend on this one.
Fan-out
Outgoing: how many files this one depends on.
Degree
Fan-in plus fan-out: the node’s total number of connections.
Relations
The individual relations, counting duplicates.
Cycle
The size of the circular-dependency group this node belongs to. Zero means it is in none.
Instability
Fan-out divided by degree. Zero is a stable core that others depend on; one is an unstable leaf that depends on others.
Confidence
Drawn as edge opacity: exact, probable or ambiguous.
Occurrences
Drawn as edge intensity: how often the relation repeats.

The three layouts

Force-3d, hierarchical, and metric-space with real axes.

Reading a node

Click one to pin its card; big projects open grouped and you drill in.

The controller

Layout selector, metric mapping, relation filters and flow controls.

Inside VS Code

Counters, top fan-in and fan-out, and cycles, as a 2D panel.

The in-room guide

Two pages plus the metric glossary, in the colour of this analysis.

That is one of the four analyses. They all come from the same extension, and the same install.

Install it and run it