Focused analysis on past 10 commits covering: - New skills module in g3-core (parser, discovery, prompt, embedded, extraction) - Research tool externalized to skills/research/ skill - SkillsConfig added to g3-config - SDLC pipeline state moved to .g3/sdlc/ Key findings: - 4 crates changed, 29 files affected (8 added, 2 deleted, 19 modified) - No dependency cycles detected - Clean DAG structure in new skills module - Cross-crate coupling via g3-core::skills and g3-config::SkillsConfig - Compile-time coupling to skills/research/ via include_str! Agent: euler
62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
# Strongly Connected Components (Cycles)
|
|
|
|
**Scope**: Changes in commits `b6d2582..9443f933` (10 commits)
|
|
|
|
## Summary
|
|
|
|
| Metric | Count |
|
|
|--------|-------|
|
|
| SCCs with >1 node | 0 |
|
|
| Trivial SCCs (single node) | 29 |
|
|
|
|
## Analysis
|
|
|
|
**No dependency cycles detected** in the changed files.
|
|
|
|
The skills module has a clean DAG structure:
|
|
|
|
```
|
|
mod.rs (root)
|
|
│
|
|
├── parser.rs (leaf - no internal deps)
|
|
│ ▲
|
|
│ │
|
|
├── discovery.rs ──┬──► parser.rs
|
|
│ └──► embedded.rs
|
|
│
|
|
├── prompt.rs ─────────► parser.rs
|
|
│
|
|
├── embedded.rs (leaf - no internal deps)
|
|
│ ▲
|
|
│ │
|
|
└── extraction.rs ─────► embedded.rs
|
|
```
|
|
|
|
## Crate-Level Cycles
|
|
|
|
No cycles at crate level. Dependency direction:
|
|
|
|
```
|
|
g3-cli ──► g3-core ──► g3-config
|
|
│ │
|
|
│ └──► g3-providers
|
|
│ └──► g3-execution
|
|
│ └──► g3-computer-control
|
|
│
|
|
└──► g3-config
|
|
└──► g3-providers
|
|
└──► g3-planner ──► g3-core (creates potential for cycle)
|
|
```
|
|
|
|
**Note**: `g3-planner` depends on `g3-core`, and `g3-cli` depends on both. This is not a cycle but creates a diamond dependency pattern.
|
|
|
|
## Verification Method
|
|
|
|
Cycles detected by analyzing `use` statements and `mod` declarations:
|
|
- `use super::*` → parent module
|
|
- `use crate::*` → crate root
|
|
- `mod name` → child module
|
|
- `use external_crate::*` → cross-crate
|
|
|
|
No bidirectional edges found within the changed file set.
|