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, find code from plain words, search by meaning, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, refactor safety, what a diff touches, dead code, unused functions, near-duplicate code, high fan-out, refactor candidates, code quality audit, index coverage, graph query syntax, Cypher query examples, edge types, how to use search_graph.

Quellinformationen

Repository
lev-os/agents
Letzte Quellaktivität
27. Oktober 2026 um 19:37
Erkannte Sprache von SKILL.md
Englisch
Sterne
26
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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, find code from plain words, search by meaning, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, refactor safety, what a diff touches, dead code, unused functions, near-duplicate code, high fan-out, refactor candidates, code quality audit, index coverage, 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 | |----------|----------| | Find code when you know the name | `search_graph(query="addItemToBag")` or `search_graph(name_pattern=".*AddToBag.*")` | | Find code from plain words | `search_graph(semantic_query=["bag","checkout","action"])` | | Who calls X? | `trace_path(direction="inbound")` | | What does X call? | `trace_path(direction="outbound")` | | Full call context | `trace_path(direction="both")` | | Read the real source | `get_code_snippet(qualified_name="...")` | | What a file defines | `get_file_outline` | | Project overview | `get_architecture(aspects=[...])` | | Impact of local changes | `detect_changes()`; `scope="tests"` adds test impact | | Risk-classified trace | `trace_path(risk_labels=true)` | | Diff two index snapshots | `compare_graphs` | | Dead code | `search_graph(max_degree=0, exclude_entry_points=true)` | | Near-duplicate code | `query_graph` over `SIMILAR_TO` edges | | Cross-service edges | `query_graph` with Cypher | | Is a path indexed | `check_index_coverage` | | Text search (literals, config, errors) | `search_code` or Grep | ## Finding code you cannot name `search_graph` ranks in one mode per call; run both when the user's words are not code names: - `query: "add to bag"` — BM25 over symbol names, file paths and markdown headings (`Section` nodes). - `semantic_query: ["bag", "checkout", "action"]` — vector ranking, built into the index. It must be a list of keywords, not a sentence; each keyword is scored on its own. `query` and `semantic_query` cannot share a call. Confirm every candidate with `get_code_snippet`. ## Evidence tiers Pick one before querying and say which one you used. - **Scout:** 3-4 narrow calls; positive findings only, marked provisional. No absence, exhaustive-impact or dead-code claims. - **Verify (default):** task-directed graph evidence, both trace directions where relevant, `get_code_snippet` for every material claim, full pagination of relevant results. - **Auditor:** bounded scope, current index, complete pagination, both call directions and broader relationships; state every limitation. Once the evidence paths are known, call `check_index_coverage` once with all of them. A claim that something is absent or complete also needs the relevant scopes checked. A clean result means "no recorded gap", not proof. ## Exploration Workflow 1. `list_projects` — pick the entry whose `root_path` contains your working directory; pass its `name` (or the absolute directory) as `project`, never a repo or folder name 2. `get_graph_schema` — understand node/edge types 3. `search_graph` (`query`, `semantic_query` or `name_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 ## Refactor Workflow 1. `trace_path(direction="inbound")` on each symbol you will change — every caller 2. `detect_changes(scope="tests")` after the edit — affected symbols and tests 3. `check_index_coverage` on the touched paths before saying nothing else breaks ## Quality Analysis - Dead code: `search_graph(max_degree=0, exclude_entry_points=true)` — check dynamic dispatch, framework conventions and coverage gaps before deleting - High fan-out: `search_graph(min_degree=10, relationship="CALLS", direction="outbound")` - High fan-in: `search_graph(min_degree=10, relationship="CALLS", direction="inbound")` ## 17 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_file_outline`, `get_architecture`, `check_index_coverage`, `compare_graphs`, `manage_adr`, `ingest_traces` ## Edge Types CALLS, HTTP_CALLS, GRAPHQL_CALLS, ASYNC_CALLS, IMPORTS, DEFINES, DEFINES_METHOD, HANDLES, IMPLEMENTS, OVERRIDE, USAGE, WRITES, CONFIGURES, TESTS_FILE, FILE_CHANGES_WITH, SIMILAR_TO, SEMANTICALLY_RELATED, MENTIONS, CONTAINS_FILE, CONTAINS_FOLDER, CONTAINS_PACKAGE Run `get_graph_schema` for the exact set in a given project. ## 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 MATCH (a)-[:SIMILAR_TO]->(b) RETURN a.name, a.file_path, b.name, b.file_path LIMIT 20 ``` ## 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` first. 4. `direction="outbound"` misses cross-service callers — use `direction="both"`. 5. Results default to 10 per page — check `has_more` and use `offset`. 6. Markdown headings are indexed as `Section` nodes; the text under a heading is not ranked. 7. A subagent does not inherit MCP tools or the conversation. Query in the parent and pass the tier, project, paths and symbols.
Auf GitHub ansehen