Adds a skill node to the graph.
Adds a dependency edge between two skills.
Removes a dependency edge between two skills.
Gets all skills that depend on a given skill.
Gets execution order for given skills using Kahn's algorithm.
Checks if a skill has a circular dependency.
Validates the entire graph for consistency.
Gets the number of skills in the graph.
Checks if a skill exists in the graph.
Skill dependency graph implementation using adjacency list. Supports topological sorting, cycle detection, and version constraints.