Files
g3/analysis/deps/sccs.md
Dhanji R. Prasanna 6d6aed563d Add structural dependency analysis artifacts
- graph.json: Canonical dependency graph (10 crates, 16 edges, 76 files)
- graph.summary.md: One-page overview with fan-in/fan-out rankings
- sccs.md: Strongly Connected Components analysis (no cycles)
- layers.observed.md: 5-layer architecture diagram
- hotspots.md: Coupling hotspots (g3-config, g3-cli)
- limitations.md: Extraction limitations and validity conditions
2026-01-06 13:23:24 +11:00

65 lines
2.2 KiB
Markdown

# Strongly Connected Components Analysis
## Summary
**No cycles detected in the crate-level dependency graph.**
The G3 workspace exhibits a clean DAG (Directed Acyclic Graph) structure at the crate level.
## Analysis Method
Cycle detection performed via manual topological sort verification of the 16 internal dependency edges.
## Topological Order (Valid)
The following topological ordering confirms acyclicity:
1. g3-config (leaf)
2. g3-execution (leaf)
3. g3-computer-control (leaf)
4. g3-providers (leaf)
5. g3-core (depends on 1-4)
6. g3-ensembles (depends on 1, 5)
7. g3-planner (depends on 1, 4, 5)
8. g3-cli (depends on 1, 4, 5, 6, 7)
9. g3 (depends on 4, 8)
10. g3-console (standalone)
## Potential Coupling Concerns
While no cycles exist, the following patterns warrant attention:
### Diamond Dependencies
```
g3-cli ──────────────────────────────┐
│ │
├── g3-core ── g3-config ◄─────────┤
│ │
├── g3-planner ── g3-config ◄──────┤
│ │
└── g3-ensembles ── g3-config ◄────┘
```
`g3-config` is reached via multiple paths from `g3-cli`. This is not a cycle but indicates `g3-config` is a shared foundation.
### Similar Diamond for g3-core
```
g3-cli ──────────────────────────────┐
│ │
├── g3-core ◄──────────────────────┤
│ │
├── g3-planner ── g3-core ◄────────┤
│ │
└── g3-ensembles ── g3-core ◄──────┘
```
## Module-Level Analysis
Module-level cycle detection was not performed. The `use crate::` statements within each crate suggest internal module dependencies but these are expected within a single compilation unit.
## Conclusion
The crate dependency structure is healthy with no circular dependencies.