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
3.3 KiB
3.3 KiB
Dependency Graph Summary
Scope: Changes in commits b6d2582..9443f933 (10 commits)
Generated: 2025-02-05
Metrics
| Metric | Count |
|---|---|
| Crates (total) | 8 |
| Crates (changed) | 4 |
| Files (changed) | 29 |
| Files (added) | 8 |
| Files (deleted) | 2 |
| Files (modified) | 19 |
| Crate-level edges | 12 |
| File-level edges | 21 |
Changed Crates
| Crate | Path | Role |
|---|---|---|
| g3-core | crates/g3-core | Core engine, skills module added |
| g3-cli | crates/g3-cli | CLI interface, skills integration |
| g3-config | crates/g3-config | Configuration, SkillsConfig added |
| studio | crates/studio | Multi-agent workspace, SDLC changes |
Entrypoints
| Entrypoint | Type | Evidence |
|---|---|---|
| g3-cli/src/lib.rs | Library root | pub fn run() |
| studio/src/main.rs | Binary | fn main() |
| g3-core/src/lib.rs | Library root | Re-exports skills module |
Top Fan-In Nodes (most depended upon)
| Node | Fan-In | Dependents |
|---|---|---|
| g3-core/src/skills/parser.rs | 3 | discovery.rs, prompt.rs, mod.rs |
| g3-core/src/skills/embedded.rs | 3 | discovery.rs, extraction.rs, mod.rs |
| g3-core/src/skills/mod.rs | 3 | lib.rs, prompts.rs, project_files.rs |
| g3-config/src/lib.rs | 2 | g3-core (crate), g3-cli (crate) |
| g3-cli/src/project_files.rs | 2 | lib.rs, agent_mode.rs |
Top Fan-Out Nodes (most dependencies)
| Node | Fan-Out | Dependencies |
|---|---|---|
| g3-cli (crate) | 5 | g3-core, g3-config, g3-providers, g3-planner, g3-computer-control |
| g3-core/src/skills/mod.rs | 5 | parser.rs, discovery.rs, prompt.rs, embedded.rs, extraction.rs |
| g3-core/src/skills/discovery.rs | 2 | parser.rs, embedded.rs |
| g3-cli/src/project_files.rs | 2 | g3-core::skills, g3-config::SkillsConfig |
| studio/src/main.rs | 3 | sdlc.rs, git.rs, session.rs |
Major Structural Changes
Added: Skills Module (g3-core/src/skills/)
New module implementing Agent Skills specification:
g3-core/src/skills/
├── mod.rs # Module root, re-exports
├── parser.rs # SKILL.md YAML frontmatter parser
├── discovery.rs # Skill directory scanning
├── prompt.rs # XML prompt generation
├── embedded.rs # Compile-time embedded skills
└── extraction.rs # Script extraction to .g3/bin/
Internal dependency flow:
mod.rs
├── parser.rs (Skill struct)
├── discovery.rs → parser.rs, embedded.rs
├── prompt.rs → parser.rs
├── embedded.rs (standalone)
└── extraction.rs → embedded.rs
Removed: Research Tool (hardcoded)
g3-core/src/pending_research.rs(540 lines deleted)g3-core/src/tools/research.rs(710 lines deleted)
Added: Research Skill (external)
skills/research/SKILL.md(144 lines)skills/research/g3-research(338 lines, bash script)
Research functionality moved from hardcoded tool to external skill.
Modified: SDLC Pipeline
- State storage moved from
analysis/sdlc/to.g3/sdlc/ - Added merge-to-main on successful completion
- Worktree preserved on failure for debugging
Extraction Limitations
- Dynamic imports not detected (none expected in Rust)
- Test-only dependencies not distinguished from production
- Conditional compilation (
#[cfg(...)]) not analyzed - External crate dependencies (from crates.io) not enumerated