Graphs
Graphs
Section titled “Graphs”Arxo builds and analyzes graph representations of your codebase. Each graph type captures different relationships; metrics and policies consume these graphs. Node granularity is controlled by grouping (file vs folder).
Import Graph
Section titled “Import Graph”The import graph represents module-level dependencies from import/require statements.
| Aspect | Description |
|---|---|
| Nodes | Files, folders, or packages (see grouping) |
| Edges | Import/dependency relationships |
Used for: cycle detection (SCC), propagation cost, centrality, modularity, hierarchy.
Call Graph
Section titled “Call Graph”The call graph represents function and method invocations.
| Aspect | Description |
|---|---|
| Nodes | Functions, methods, classes |
| Edges | Call/invocation relationships |
Used for: layer/effect violations, impact analysis, code smells, security and LLM metrics that need call-level detail.
Entity Graph
Section titled “Entity Graph”The entity graph represents higher-level component relationships (files/modules and relationships such as imports, calls, shared types).
Used for: centrality, core-periphery, and high-level architecture views.
How Graphs Relate to Other Concepts
Section titled “How Graphs Relate to Other Concepts”- Grouping — File vs folder grouping determines node identity in the import graph (and thus what “module” means for metrics like SCC and propagation cost).
- Metrics — Plugins declare which graphs they need (e.g. ImportGraph, CallGraph); the engine builds only what’s required for the selected preset or metric list.
- Evidence — When metrics emit findings, they often reference graph nodes (e.g. file path, line) as evidence.
Learn More
Section titled “Learn More”- Graph Types — Detailed description, examples, and export
- Architecture Overview — Pipeline and graph construction
- Grouping — File vs folder vs package nodes