skills/use-lsp/SKILL.md
Use when navigating code, finding references, looking up definitions, understanding types, or tracing call hierarchies in TypeScript, Rust, or Beamtalk (.bt) files. Prefer LSP over Grep/Glob for any navigation task where symbol semantics matter.
npx skillsauth add jamesc/skills use-lspInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The LSP tool provides semantic code intelligence. Use it instead of text search whenever you need to navigate by meaning (what calls this, what does this return, where is this defined) rather than by text (find this string in files).
| Task | Use |
|------|-----|
| Find where a function is defined | LSP goToDefinition |
| Find all call sites of a function | LSP findReferences |
| Understand a type / see docs | LSP hover |
| Find all methods on a type | LSP documentSymbol |
| Search for a symbol by name | LSP workspaceSymbol |
| Find implementations of a trait/interface | LSP goToImplementation |
| Understand call chains | LSP incomingCalls / outgoingCalls |
| Find a file by name pattern | Glob |
| Search for a string/regex in files | Grep |
| Find all uses of a string literal | Grep |
Grep for a function name to find its callers → use LSP findReferencesGrep for a struct/class name to find its definition → use LSP goToDefinitionGrep for a Beamtalk method name to find where it's defined → use LSP goToDefinitionLSP hoverGrep for a type name to find implementations → use LSP goToImplementationAll LSP operations require filePath, line, and character (1-based). Get these from a prior Read or Grep result.
LSP goToDefinition filePath, line, character
LSP findReferences filePath, line, character
LSP hover filePath, line, character
LSP documentSymbol filePath, line, character (any position in file)
LSP workspaceSymbol filePath, line, character (query via name)
LSP goToImplementation filePath, line, character
LSP incomingCalls filePath, line, character
LSP outgoingCalls filePath, line, character
Using Grep to find all usages of a function, then reading each file to understand context. Instead:
Grep once to find one occurrence and get file+lineLSP findReferences to get all call sites with precise positionsLSP hover at any site to understand types/docs without reading the filejust build first — the binary is at ./target/debug/beamtalk-lsp. If LSP calls on .bt files return nothing, the binary may not exist yetGrep — the server may not have indexed the file yettools
Find the next logical piece of work. Use when user types /whats-next or asks what they should work on next, or wants recommendations for the next task.
data-ai
Find and update Linear issues that need labels, blocking relationships, or metadata. Use when user says '/update-issues' with criteria like 'no labels', 'missing agent-ready', 'needs size', etc.
data-ai
Sync modified skills and agents back to the repo and create a PR. Use when user types /sync-skills or wants to save in-session skill improvements.
development
Review current branch changes vs main. Use when user types /review-code or asks for a code review of their changes.