Files
g3/analysis/deps/sccs.md
Dhanji R. Prasanna 4fb605fe7e Update dependency analysis artifacts
Refreshed static dependency analysis for the G3 codebase:

- graph.json: 143 nodes (9 crates, 134 files), 189 edges
- No cycles detected (DAG structure confirmed)
- Top fan-in: g3-core (43), g3-providers (27), g3-config (16)
- Top fan-out: g3-core/src/lib.rs (27), g3-cli/src/lib.rs (12)
- 4-layer architecture: Foundation → Core → Services → Application

Extraction method: Cargo.toml parsing + regex-based import analysis
Limitations documented: internal crate imports, re-exports, conditional compilation

Agent: euler
2026-01-11 16:11:01 +05:30

1.1 KiB

Strongly Connected Components (Cycles)

Summary

No non-trivial strongly connected components detected.

The dependency graph is acyclic at both the crate level and the file level.

Analysis Details

  • Algorithm: Tarjan's SCC algorithm
  • Scope: All 143 nodes (9 crates + 134 files)
  • Result: 0 cycles with size > 1

Crate-Level Verification

The crate dependency graph forms a directed acyclic graph (DAG):

Leaf crates (no dependencies on other g3-* crates):
  - g3-providers
  - g3-config
  - g3-execution
  - g3-computer-control

Intermediate crates:
  - g3-core → depends on: g3-providers, g3-config, g3-execution, g3-computer-control
  - g3-ensembles → depends on: g3-core, g3-config
  - g3-planner → depends on: g3-providers, g3-core, g3-config

Top-level crates:
  - g3-cli → depends on: g3-core, g3-config, g3-planner, g3-computer-control, g3-providers, g3-ensembles
  - g3 (root) → depends on: g3-cli, g3-providers

Implications

  • No circular dependencies exist between crates
  • Build order is deterministic
  • Crates can be compiled in topological order