What problem does it solve? Text search cannot reliably answer structural questions in Java codebases: grep cannot distinguish overloaded methods, misses calls through interfaces and dependency injection, and cannot tell you who actually calls a method before you change its signature. This Skill replaces grep-first exploration with symbol-level navigation so refactoring decisions are based on resolved references, not text matches. ## Core Features & Use Cases - Symbol-level queries: Find definitions, references, implementations, and type hierarchies using Serena MCP, a built-in LSP, or CLI fallbacks (ctags, rg, mvn, javap). - Maven structure awareness: Read the reactor module map, resolve dependency trees offline, and respect the test-mirror and generated-sources conventions. - Blind-spot handling: Detects what LSPs cannot see — reflection, DI by name, ServiceLoader registrations, config binding, and lambdas — with a mandatory string sweep before deletions or renames. - Use Case: Before renaming a public method, enumerate all callers including overloads and the test mirror, run the resource string sweep, then use rename_symbol instead of search-replace. ## Quick Start Ask the agent to find every caller of a specific Java method and assess the blast radius before changing its signature.