Skip to main content

codebase-memory

Use the codebase knowledge graph for structural code queries. Triggers on: explore the codebase, understand the architecture, what functions exist, show me the structure, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, dead code, unused functions, high fan-out, refactor candidates, code quality audit, graph query syntax, Cypher query examples, edge types, how to use search_graph.

Informations de source

Dépôt
lev-os/agents
Dernière activité de la source
6 juillet 2026 à 05:34
Langue détectée de SKILL.md
anglais
Étoiles
22
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
codebase-memory
description
Use the codebase knowledge graph for structural code queries. Triggers on: explore the codebase, understand the architecture, what functions exist, show me the structure, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, dead code, unused functions, high fan-out, refactor candidates, code quality audit, graph query syntax, Cypher query examples, edge types, how to use search_graph.
# Codebase Memory — Knowledge Graph Tools Graph tools return precise structural results in ~500 tokens vs ~80K for grep. ## Quick Decision Matrix | Question | Tool call | |----------|----------| | Who calls X? | `trace_path(direction="inbound")` | | What does X call? | `trace_path(direction="outbound")` | | Full call context | `trace_path(direction="both")` | | Find by name pattern | `search_graph(name_pattern="...")` | | Dead code | `search_graph(max_degree=0, exclude_entry_points=true)` | | Cross-service edges | `query_graph` with Cypher | | Impact of local changes | `detect_changes()` | | Risk-classified trace | `trace_path(risk_labels=true)` | | Text search | `search_code` or Grep | ## Exploration Workflow 1. `list_projects` — check if project is indexed 2. `get_graph_schema` — understand node/edge types 3. `search_graph(label="Function", name_pattern=".*Pattern.*")` — find code 4. `get_code_snippet(qualified_name="project.path.FuncName")` — read source ## Tracing Workflow 1. `search_graph(name_pattern=".*FuncName.*")` — discover exact name 2. `trace_path(function_name="FuncName", direction="both", depth=3)` — trace 3. `detect_changes()` — map git diff to affected symbols ## Quality Analysis - Dead code: `search_graph(max_degree=0, exclude_entry_points=true)` - High fan-out: `search_graph(min_degree=10, relationship="CALLS", direction="outbound")` - High fan-in: `search_graph(min_degree=10, relationship="CALLS", direction="inbound")` ## 14 MCP Tools `index_repository`, `index_status`, `list_projects`, `delete_project`, `search_graph`, `search_code`, `trace_path`, `detect_changes`, `query_graph`, `get_graph_schema`, `get_code_snippet`, `get_architecture`, `manage_adr`, `ingest_traces` ## Edge Types CALLS, HTTP_CALLS, ASYNC_CALLS, IMPORTS, DEFINES, DEFINES_METHOD, HANDLES, IMPLEMENTS, OVERRIDE, USAGE, FILE_CHANGES_WITH, CONTAINS_FILE, CONTAINS_FOLDER, CONTAINS_PACKAGE ## Cypher Examples (for query_graph) ``` MATCH (a)-[r:HTTP_CALLS]->(b) RETURN a.name, b.name, r.url_path, r.confidence LIMIT 20 MATCH (f:Function) WHERE f.name =~ '.*Handler.*' RETURN f.name, f.file_path MATCH (a)-[r:CALLS]->(b) WHERE a.name = 'main' RETURN b.name ``` ## Gotchas 1. `search_graph(relationship="HTTP_CALLS")` filters nodes by degree — use `query_graph` with Cypher to see actual edges. 2. `query_graph` has a 200-row cap — use `search_graph` with degree filters for counting. 3. `trace_path` needs exact names — use `search_graph(name_pattern=...)` first. 4. `direction="outbound"` misses cross-service callers — use `direction="both"`. 5. Results default to 10 per page — check `has_more` and use `offset`.
Voir sur GitHub