Semantic Code Exploration
This skill guides efficient code exploration using Serena MCP for semantic navigation.
Prerequisite Check
Before proceeding, verify Serena is available by checking for mcp__serena__* tools.
If Serena is NOT configured:
Tell the user: "This exploration would benefit from Serena MCP for semantic code navigation, but it's not configured. See .claude/skills/read-codebase/setup.md for installation instructions. Proceeding with standard tools (Grep/Read/Glob)."
Then use standard tools as fallback.
Tool Priority (when Serena is available)
- •get_symbols_overview - First step for any file
- •find_symbol - Locate specific classes/methods
- •find_referencing_symbols - Find all usages
- •search_for_pattern - When symbol name is unknown
- •read_memory - Check project knowledge (architecture, patterns)
Quick Reference
Understanding a File
- •
get_symbols_overview(relative_path="path/to/file.php")→ see structure - •
find_symbol(name_path_pattern="ClassName", depth=1)→ see methods - •Only use
include_body=truefor specific methods you need
Finding Where Code Is Used
- •
find_symbolto locate the symbol - •
find_referencing_symbolsto find all call sites
Exploring Unknown Code
- •Check memories:
list_memories→read_memory("architecture") - •Use
search_for_patternwith keywords - •Follow up with symbolic tools
Anti-Patterns
- •Reading entire files when you only need one method
- •Using Grep/Read when Serena tools would be more precise
- •Skipping symbol overview and going straight to file read
- •Not checking project memories for existing documentation
When to Use Standard Tools Instead
- •Simple text search across many files → Grep
- •Config files, markdown, non-code → Read
- •Known file needing full content → Read
- •Serena not configured → Fallback to Grep/Read/Glob
Additional Resources
- •Detailed workflows: workflows.md
- •Setup instructions: setup.md