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
This commit is contained in:
64
analysis/deps/sccs.md
Normal file
64
analysis/deps/sccs.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user