codegraph.mdc 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. ---
  2. description: CodeGraph MCP usage guide — when to use which tool
  3. alwaysApply: true
  4. ---
  5. <!-- CODEGRAPH_START -->
  6. ## CodeGraph
  7. This project has a CodeGraph MCP server (`codegraph_*` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.
  8. ### When to prefer codegraph over native search
  9. Use codegraph for **structural** questions — what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.
  10. | Question | Tool |
  11. |---|---|
  12. | "How does X work? / trace X / explain a system / architecture" | `codegraph_explore` (seed with symbol names) |
  13. | "Where is X defined?" / "Find symbol named X" | `codegraph_search` |
  14. | "What calls function Y?" | `codegraph_callers` |
  15. | "What does Y call?" | `codegraph_callees` |
  16. | "What would break if I changed Z?" | `codegraph_impact` |
  17. | "Show me Y's signature / source / docstring" | `codegraph_node` |
  18. | "Give me focused context for a task/area" | `codegraph_context` |
  19. | "What files exist under path/" | `codegraph_files` |
  20. | "Is the index healthy?" | `codegraph_status` |
  21. ### Rules of thumb
  22. - **`codegraph_explore` is the workhorse for understanding questions** ("how does X work", "trace…", "explain the Y system"). Feed it the key symbol/file names and read its output (line-numbered source from many files in one call). If the question names nothing concrete, do one quick `codegraph_search`/`codegraph_context` to surface the names, then explore with them. Fill gaps with `codegraph_node`/Read — don't grep-and-read your way through; that's the loop explore replaces.
  23. - **Delegating exploration to a subagent?** Tell it to call `codegraph_explore` first and trust the result. A generic "explore"-style agent defaults to grep+Read and treats codegraph as just a search index, throwing away the token savings.
  24. - **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep — that's slower, less accurate, and wastes context.
  25. - **Don't grep first** when looking up a symbol by name. `codegraph_search` is faster and returns kind + location + signature in one call.
  26. - **Index lag**: the file watcher debounces ~500ms behind writes; don't re-query immediately after editing a file in the same turn.
  27. ### If `.codegraph/` doesn't exist
  28. The MCP server returns "not initialized." Ask the user: *"I notice this project doesn't have CodeGraph initialized. Want me to run `codegraph init -i` to build the index?"*
  29. <!-- CODEGRAPH_END -->