SKILL.md
Knowledge Graph Skill
Access to GitLab Knowledge Graph (gkg) for semantic code discovery. Indexes code structure including files, classes, functions, and their relationships.
Quick Reference
- Templates: See [templates.md](templates.md) for reporting knowledge graph results
Available Actions
search_codebase
Search for code entities by name or pattern.
Parameters:
query(required): Search query (function name, class name, etc.)node_types(optional): Filter by types -function,class,file,modulelanguage(optional): Filter by language -python,typescript,rust,rubylimit(optional): Maximum results (default: 20)
Example:
{
"action": "search_codebase",
"parameters": {
"query": "handleAuth",
"node_types": ["function"],
"language": "typescript"
}
}
findsymbolreferences
Find all usages of a symbol across the codebase.
Parameters:
symbol_name(required): Name of the function, class, or variablerepository(optional): Limit search to specific repository
Example:
{
"action": "find_symbol_references",
"parameters": {
"symbol_name": "processPayment"
}
}
getcodestructure
Get the file and directory structure of a repository.
Parameters:
repository(required): Name of the repositorypath(optional): Specific path within the repository
Example:
{
"action": "get_code_structure",
"parameters": {
"repository": "agent-bot",
"path": "src/services"
}
}
find_dependencies
Find what a code entity imports, calls, or inherits from.
Parameters:
node_id(required): ID of the code entity from a previous searchdirection(optional):outgoing(what this uses) orincoming(what uses this)
Example:
{
"action": "find_dependencies",
"parameters": {
"node_id": "uuid-of-module",
"direction": "outgoing"
}
}
findcodepath
Find the relationship path between two code entities.
Parameters:
source_id(required): ID of the source entitytarget_id(required): ID of the target entity
Example:
{
"action": "find_code_path",
"parameters": {
"source_id": "uuid-of-caller",
"target_id": "uuid-of-callee"
}
}
getcodeneighbors
Get neighboring code entities at a specified depth.
Parameters:
node_id(required): ID of the code entityedge_types(optional): Filter by relationship -calls,imports,inherits,usesdepth(optional): How many levels to traverse (default: 1)
Example:
{
"action": "get_code_neighbors",
"parameters": {
"node_id": "uuid-of-class",
"edge_types": ["inherits", "implements"],
"depth": 2
}
}
getgraphstats
Get statistics about the knowledge graph.
Example:
{
"action": "get_graph_stats",
"parameters": {}
}
MCP Integration
This skill integrates with the knowledge-graph MCP server running on port 9005. The MCP server provides the following tools:
| MCP Tool | Skill Action |
|---|---|
search_codebase |
search_codebase |
findsymbolreferences |
findsymbolreferences |
getcodestructure |
getcodestructure |
find_dependencies |
find_dependencies |
findcodepath |
findcodepath |
getcodeneighbors |
getcodeneighbors |
getgraphstats |
getgraphstats |
Node Types
| Type | Description |
|---|---|
file |
Source code file |
directory |
Directory or folder |
module |
Python/JS module |
class |
Class definition |
function |
Function or method |
variable |
Global variable or constant |
interface |
Interface or protocol |
Edge Types
| Type | Description |
|---|---|
imports |
Import relationship |
calls |
Function call |
inherits |
Class inheritance |
contains |
Parent-child containment |
uses |
Generic usage |
implements |
Interface implementation |
Workflow Example
- Search for a function:
`` searchcodebase(query="processPayment", nodetypes=["function"]) ``
- Get its dependencies:
`` finddependencies(nodeid="<result_id>", direction="outgoing") ``
- Find what calls it:
`` finddependencies(nodeid="<result_id>", direction="incoming") ``
- Explore neighbors:
`` getcodeneighbors(nodeid="<resultid>", depth=2) ``