LSP Setup
Use this skill to make language-server diagnostics available and useful for the current task. The goal is targeted project-aware feedback, not generic tool installation.
When To Use
Use this skill when:
- A repo has typed source and diagnostics would catch real mistakes.
- Implementation touched multiple files and type/lint output is too coarse.
- A validation failure needs symbol-aware navigation or diagnostics.
- The user asks to set up, fix, or use LSP.
- A review/checkpoint needs more confidence in edited files.
Skip this skill when:
- The task is a tiny edit and repo-native tests/typecheck already cover it.
- The project has no practical language-server support.
- Setup would require global installs or network-heavy work that the user did not authorize.
Workflow
- Detect the project language/ecosystem:
- TypeScript/JavaScript, Python, Go, Rust, Swift, Ruby, Java, etc.
- package manager, lockfile, workspace root, config files, and existing scripts.
- Prefer existing repo tooling:
- package scripts, local binaries, editor config, existing language server config, typecheck/lint commands.
- Verify availability:
- check whether the language server or equivalent diagnostics command is already installed locally.
- avoid global installs unless the user explicitly wants setup and the risk is clear.
- Run targeted diagnostics:
- edited files first when supported.
- project diagnostics when file-level diagnostics are unreliable.
- If LSP is unavailable, use the repo's closest validation path:
tsc --noEmit, vue-tsc, svelte-check, ruff, mypy, pyright, go test, cargo check, swift build, or project-native equivalents.
- Report what was verified and what remains unverified.
Installation Policy
Default to no new installs.
Safe without asking:
- Using already-installed repo-local binaries.
- Running existing package scripts.
- Reading config files.
Ask or explain before:
- Installing global language servers.
- Modifying editor config.
- Changing project dependencies.
- Running network-heavy package manager commands.
Diagnostics Standard
Good diagnostics output should include:
- workspace root,
- language/tool used,
- files checked,
- command or MCP/tool used,
- errors/warnings relevant to the task,
- whether diagnostics are complete or partial,
- fallback used if LSP was unavailable.
Guardrails
- Do not treat "no diagnostics tool found" as a pass.
- Do not ignore project-native typecheck/lint scripts in favor of invented commands.
- Do not leave watchers, language-server processes, or temp config files running without a cleanup receipt.
- Do not claim live/browser/runtime behavior from static diagnostics.
Closeout
LSP/diagnostics:
- Workspace:
- Tool/command:
- Scope:
- Result:
- Fallback:
- Cleanup:
1---2name: lsp-setup3description: Use when a coding task needs language-server diagnostics, goto/reference/rename support, project-aware static analysis, or post-edit diagnostics beyond ordinary tests, especially in typed or multi-file repositories.4---56# LSP Setup78Use this skill to make language-server diagnostics available and useful for the current task. The goal is targeted project-aware feedback, not generic tool installation.910## When To Use1112Use this skill when:1314- A repo has typed source and diagnostics would catch real mistakes.15- Implementation touched multiple files and type/lint output is too coarse.16- A validation failure needs symbol-aware navigation or diagnostics.17- The user asks to set up, fix, or use LSP.18- A review/checkpoint needs more confidence in edited files.1920Skip this skill when:2122- The task is a tiny edit and repo-native tests/typecheck already cover it.23- The project has no practical language-server support.24- Setup would require global installs or network-heavy work that the user did not authorize.2526## Workflow27281. Detect the project language/ecosystem:29 - TypeScript/JavaScript, Python, Go, Rust, Swift, Ruby, Java, etc.30 - package manager, lockfile, workspace root, config files, and existing scripts.312. Prefer existing repo tooling:32 - package scripts, local binaries, editor config, existing language server config, typecheck/lint commands.333. Verify availability:34 - check whether the language server or equivalent diagnostics command is already installed locally.35 - avoid global installs unless the user explicitly wants setup and the risk is clear.364. Run targeted diagnostics:37 - edited files first when supported.38 - project diagnostics when file-level diagnostics are unreliable.395. If LSP is unavailable, use the repo's closest validation path:40 - `tsc --noEmit`, `vue-tsc`, `svelte-check`, `ruff`, `mypy`, `pyright`, `go test`, `cargo check`, `swift build`, or project-native equivalents.416. Report what was verified and what remains unverified.4243## Installation Policy4445Default to no new installs.4647Safe without asking:4849- Using already-installed repo-local binaries.50- Running existing package scripts.51- Reading config files.5253Ask or explain before:5455- Installing global language servers.56- Modifying editor config.57- Changing project dependencies.58- Running network-heavy package manager commands.5960## Diagnostics Standard6162Good diagnostics output should include:6364- workspace root,65- language/tool used,66- files checked,67- command or MCP/tool used,68- errors/warnings relevant to the task,69- whether diagnostics are complete or partial,70- fallback used if LSP was unavailable.7172## Guardrails7374- Do not treat "no diagnostics tool found" as a pass.75- Do not ignore project-native typecheck/lint scripts in favor of invented commands.76- Do not leave watchers, language-server processes, or temp config files running without a cleanup receipt.77- Do not claim live/browser/runtime behavior from static diagnostics.7879## Closeout8081```text82LSP/diagnostics:83- Workspace:84- Tool/command:85- Scope:86- Result:87- Fallback:88- Cleanup:89```