Learning Graph Quality Metrics Report¶
Overview¶
- Total Concepts: 110
- Foundational Concepts (no prerequisites, other concepts depend on them): 8
- Terminal Nodes (nothing depends on them, but have prerequisites): 57
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 102
- Average Dependencies per Concept: 1.53
Graph Structure Validation¶
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts¶
These concepts have no prerequisites:
- 1: Pydantic BaseModel
- 5: YAML File Format
- 6: TOML File Format
- 7: JSON File Format
- 8: Env File Format
- 9: Environment Variables
- 10: Python Decorators
- 99: Structural Source Context
Dependency Chain Analysis¶
- Maximum Dependency Chain Length: 7
Longest Learning Path:¶
- Pydantic BaseModel (ID: 1)
- Pydantic BaseSettings (ID: 2)
- MountainAshBaseSettings Class (ID: 13)
- Template Syntax (ID: 37)
- Field Name Placeholder (ID: 38)
- Template Resolution (ID: 39)
- Post Init Template Expansion (ID: 40)
Terminal Nodes Analysis¶
Terminal nodes are concepts that nothing else depends on but have prerequisites. They represent natural endpoints of learning paths — culminating or specialized concepts.
- Total Terminal Nodes: 57 (51.8% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 14: Settings Model Config
- 18: Object Setattr Bypass
- 19: Settings Source Priority
- 20: Env Prefix Override
- 22: Multi Format File Loading
- 27: Parameter Create Factory
- 29: File List Union Strategy
- 30: Scalar Last Wins Strategy
- 31: Dict Deep Merge Strategy
- 34: File Categorization
- 36: Kwargs Normalization
- 40: Post Init Template Expansion
- 41: UPath Path Derivation
- 42: Template Priority Rules
- 43: Nested Template Resolution
- 47: Kwargs Pass Resolution
- 51: Secret Prefix Syntax
- 52: Vault Provider
- 53: SSM Provider
- 54: Key Vault Provider
...and 37 more
Orphaned Nodes Analysis¶
Orphaned nodes are completely disconnected concepts with no inbound AND no outbound edges. These indicate a quality problem — every concept should connect to the graph.
- Total Orphaned Nodes: 0
✅ No orphaned nodes detected. All concepts are connected to the graph.
Connected Components¶
- Number of Connected Components: 1
✅ All concepts are connected in a single graph.
Indegree Analysis¶
Top 10 concepts that are prerequisites for the most other concepts:
| Rank | Concept ID | Concept Label | Indegree |
|---|---|---|---|
| 1 | 80 | AuthSpec Base Class | 15 |
| 2 | 13 | MountainAshBaseSettings Class | 11 |
| 3 | 12 | SecretStr Type | 10 |
| 4 | 59 | ParameterSpec Class | 10 |
| 5 | 1 | Pydantic BaseModel | 9 |
| 6 | 23 | SettingsParameters Class | 8 |
| 7 | 56 | ProfileDescriptor Class | 6 |
| 8 | 71 | Registry Class | 6 |
| 9 | 44 | Secrets Registry | 5 |
| 10 | 39 | Template Resolution | 4 |
Outdegree Distribution¶
| Dependencies | Number of Concepts |
|---|---|
| 0 | 8 |
| 1 | 56 |
| 2 | 40 |
| 3 | 5 |
| 5 | 1 |
Recommendations¶
- ℹ️ High terminal node percentage (51.8%): Consider if some terminal concepts should be prerequisites for advanced concepts
- ✅ DAG structure verified: Graph supports valid learning progressions
Report generated by learning-graph-reports/analyze_graph.py