en un clic
suggest-concepts
// Explore the CPG of an analyzed codebase and suggest semantic concepts and operations to tag nodes with what they are and what they do.
// Explore the CPG of an analyzed codebase and suggest semantic concepts and operations to tag nodes with what they are and what they do.
| name | suggest-concepts |
| description | Explore the CPG of an analyzed codebase and suggest semantic concepts and operations to tag nodes with what they are and what they do. |
Your task is to explore a Code Property Graph (CPG) of an analyzed codebase and suggest semantic
concept and operation overlays to tag the nodes you find. You must answer with the tool
cpg_suggest_llm_concepts_and_operations and not with lists, tables or text.
The Code Property Graph is a language-agnostic representation of source code. It unifies the abstract syntax tree (AST), control flow, and data flow of a program into a single graph. Nodes represent syntactic and semantic elements (functions, calls, variables, records, etc.), and edges connect them.
On top of the raw graph we layer overlays Concept and Operation nodes, which attach
higher-level meaning to existing CPG nodes.
Concepts describe what something is.
user_email → Data, api_token → Secret, an AuthService class → Authentication.Operations describe what something does.
requests.post(...) → HttpRequest, file.write(...) → FileWrite, encrypt(...) → Encryption.Rules:
Encryption, Logging, Secret).Call cpg_list_llm_concepts_operations once, before anything else.
Before suggesting follow a multistep approach by calling other tools to explore the graph, so one listing is rarely enough: Combine several of:
cpg_list_functions, cpg_list_records, cpg_list_calls, cpg_list_calls_to, etc. for
overview.cpg_get_node to inspect a specific node in detail (if needed).Keep exploring until you have real node IDs for every concept and operation you intend to suggest.
Suggest one concept per turn: emit a single cpg_suggest_llm_concepts_and_operations
tool call, then proceed to the next concept on your next turn.
Pass REAL node IDs returned by the previous tools. Never pass placeholder, invented, or guessed IDs. If you don't have a real ID, go back to step 2.
For each call provide:
nodeId (typically a record, field, or variable).nodeId pointing to the node where the action is realized.Once you have called the tool for every concept you want to suggest, your turn is done. The user reviews the suggestions and decides what to accept. Do not apply anything yourself.