.skills/lsp/SKILL.md
Diagnose and install missing LSP servers for your project. Use when the user says "lsp", "language servers", "check lsp", or wants to ensure code intelligence is fully working. Also use when live code intelligence ops (get_hover, get_completions, go to definition) return degraded results from the tree-sitter layer instead of LSP, or when you see "no code intelligence", "can't go to definition", "no type info available", or "source_layer: TreeSitter" on ops that should have full LSP data.
npx skillsauth add swissarmyhammer/swissarmyhammer 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.
Diagnose LSP server health for the current project and install any missing servers. When live LSP operations (e.g., get_hover, get_completions, go_to_definition) return results from the tree-sitter layer instead of a real LSP server, the most likely cause is a missing or uninstalled language server. This skill helps you find and fix that.
Call the code_context tool to get LSP server status for all detected languages:
{"op": "lsp status"}
This returns a JSON object with two fields:
languages: array of objects, each with:
icon: language icon string (e.g. "\ue7a8" for Rust)extensions: file extensions found in the index (e.g. ["rs"])lsp_server: server command name (e.g. "rust-analyzer")installed: boolean, whether the server binary is on PATHinstall_hint: string with the install command (only present when installed is false)all_healthy: boolean, true when every detected language has its LSP server installedDisplay a table with one row per language:
| Icon | Language Server | Status | Install Command |
|------|----------------|--------|-----------------|
| (icon) | rust-analyzer | Installed | -- |
| (icon) | typescript-language-server | Missing | npm install -g typescript-language-server |
If all_healthy is true: Report that all LSP servers are installed and working. No action needed.
If servers are missing:
shell toolcode_context with {"op": "lsp status"} to confirm the fixAfter installing a server, confirm it is working end-to-end by trying a live LSP operation on a known file. For example, call code_context with a get symbol query for a symbol you know exists:
{"op": "get symbol", "query": "main"}
If the result comes back with LSP-sourced data (not just tree-sitter), the server is working. If results are still degraded, the server may need a project restart or additional configuration (e.g., a compile_commands.json for C/C++, or a tsconfig.json for TypeScript).
code_context with {"op": "lsp status"} after adding them.research
Create a single, well-researched kanban task. Use when the user wants to add a task, track an idea, or capture work without entering full plan mode.
testing
Drive kanban tasks from ready to done by looping implement → test → review until each task is clean. Supports single-task mode (one task id) and scoped-batch mode (all ready tasks in a tag/project/filter). Uses ralph to prevent stopping between iterations.
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
testing
Run tests and analyze results. Use when the user wants to run the test suite or test specific functionality. Test runs produce verbose output — automatically delegates to a tester subagent.