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
121 lines
8.2 KiB
Markdown
121 lines
8.2 KiB
Markdown
# Observed Layering
|
|
|
|
**Scope**: Changes in commits `b6d2582..9443f933` (10 commits)
|
|
|
|
## Layer Structure
|
|
|
|
Observed from dependency direction (higher layers depend on lower):
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Layer 4: Binaries / Entry Points │
|
|
│ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ g3-cli │ │ studio │ │
|
|
│ └─────────────┘ └─────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Layer 3: Orchestration │
|
|
│ ┌─────────────┐ │
|
|
│ │ g3-planner │ │
|
|
│ └─────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Layer 2: Core Engine │
|
|
│ ┌─────────────────────────────────────────────────────┐ │
|
|
│ │ g3-core │ │
|
|
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
|
|
│ │ │ skills │ │ tools │ │ prompts │ │ context │ │ │
|
|
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Layer 1: Infrastructure │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌───────────────────────┐ │
|
|
│ │ g3-config │ │g3-providers │ │ g3-computer-control │ │
|
|
│ └─────────────┘ └─────────────┘ └───────────────────────┘ │
|
|
│ ┌─────────────┐ │
|
|
│ │g3-execution │ │
|
|
│ └─────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Layer 0: External Assets │
|
|
│ ┌─────────────────────────────────────────────────────┐ │
|
|
│ │ skills/research/ (SKILL.md, g3-research script) │ │
|
|
│ └─────────────────────────────────────────────────────┘ │
|
|
│ ┌─────────────────────────────────────────────────────┐ │
|
|
│ │ prompts/system/ (native.md, etc.) │ │
|
|
│ └─────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Layer Assignments (Changed Files)
|
|
|
|
| Layer | File | Evidence |
|
|
|-------|------|----------|
|
|
| 4 | g3-cli/src/lib.rs | Entry point, depends on g3-core |
|
|
| 4 | g3-cli/src/agent_mode.rs | Uses g3-core::Agent |
|
|
| 4 | g3-cli/src/interactive.rs | Uses g3-core::Agent |
|
|
| 4 | g3-cli/src/project_files.rs | Uses g3-core::skills, g3-config |
|
|
| 4 | studio/src/main.rs | Binary entry point |
|
|
| 4 | studio/src/sdlc.rs | Orchestrates g3 agents |
|
|
| 2 | g3-core/src/lib.rs | Core library root |
|
|
| 2 | g3-core/src/skills/mod.rs | Skills subsystem |
|
|
| 2 | g3-core/src/skills/parser.rs | SKILL.md parsing |
|
|
| 2 | g3-core/src/skills/discovery.rs | Skill directory scanning |
|
|
| 2 | g3-core/src/skills/prompt.rs | XML prompt generation |
|
|
| 2 | g3-core/src/skills/embedded.rs | Compile-time embedding |
|
|
| 2 | g3-core/src/skills/extraction.rs | Script extraction |
|
|
| 2 | g3-core/src/prompts.rs | System prompt generation |
|
|
| 2 | g3-core/src/tool_definitions.rs | Tool schema definitions |
|
|
| 2 | g3-core/src/tool_dispatch.rs | Tool routing |
|
|
| 1 | g3-config/src/lib.rs | Configuration structs |
|
|
| 0 | skills/research/SKILL.md | External skill definition |
|
|
| 0 | skills/research/g3-research | External skill script |
|
|
| 0 | prompts/system/native.md | System prompt template |
|
|
|
|
## Layer Violations
|
|
|
|
**None detected** in the changed files.
|
|
|
|
All dependencies flow downward (higher layer → lower layer).
|
|
|
|
## Skills Module Internal Layering
|
|
|
|
Within `g3-core/src/skills/`:
|
|
|
|
```
|
|
┌───────────────────────────────────────┐
|
|
│ mod.rs (coordinator, re-exports) │ Layer 2.3
|
|
└───────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌───────────────────────────────────────┐
|
|
│ discovery.rs, prompt.rs, extraction │ Layer 2.2
|
|
│ (use parser.rs and/or embedded.rs) │
|
|
└───────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌───────────────────────────────────────┐
|
|
│ parser.rs, embedded.rs (leaf nodes) │ Layer 2.1
|
|
│ (no internal dependencies) │
|
|
└───────────────────────────────────────┘
|
|
```
|
|
|
|
## Derivation Method
|
|
|
|
Layers derived mechanically from:
|
|
1. Cargo.toml `[dependencies]` sections
|
|
2. `use` statement analysis
|
|
3. `mod` declaration hierarchy
|
|
4. `include_str!` compile-time references
|
|
|
|
No semantic interpretation applied.
|