docs(#189): document ENABLE_LSP_TOOL + per-language LSP plugin install#193
Conversation
… install - Add "Optional: LSP-aware code navigation" section to docs/getting-started.md covering the cost-benefit (~3-15× cheaper on shallow semantic queries per the Phase 1 spike numbers), the two-piece opt-in (env var + plugin), and the caveats (cold-start latency, cross-project queries still grep). - Per-language install notes for TypeScript (tsserver), Python (pyright), Go (gopls), Rust (rust-analyzer). Marketplace links left as searches — individual plugin URLs are not yet stable enough to pin. - Add LSP row to the Quick Reference table in CLAUDE.md. - Add "LSP-aware skills inside a workspace" subsection to the daily-workflow area of docs/multi-project.md noting the transparent fallback to grep. Pure docs — no code changes. Closes #189
atlas-apex
left a comment
There was a problem hiding this comment.
Code Review: PR #193
Commit: 525591dd6038d66ecdbdb3bca28d8a82e4656ae5
Summary
Pure docs PR adding the optional LSP-aware code-navigation path (Claude Code v2.0.74+, ENABLE_LSP_TOOL=1 + per-language plugin). +108 lines across docs/getting-started.md (new section), CLAUDE.md (Quick Reference row), docs/multi-project.md (workspace-level note + cross-project caveat). No code, hooks, skills, or settings touched.
Checklist Results
- Architecture & Design: N/A (docs-only)
- Code Quality: Pass
- Testing: N/A (docs-only)
- Security: Pass — no secrets, no private project names, no pinned third-party plugin URLs
- Performance: N/A
- PR Description & Glossary: Pass — Summary, Testing, Glossary all present; glossary has 10 entries including the explicit
_TOOLsingular note - Technical Decisions (AgDR):N/A — pure documentation of an existing upstream feature, no new decisions introduced
Issues Found
None.
Verification against ticket #189 risk notes
- All four cost-benefit caveats present in
docs/getting-started.md§ Caveats:- Cold-start latency (30-90s on Go monorepos / large Rust workspaces / huge TS projects) ✓
- Cross-project portfolio queries still need grep ✓
- Transparent fallback to grep when LSP absent — "no new failure mode" ✓
- Marketplace link flux — explicit "links may move" caveat ✓
- Per-language install blocks — all four with binary install + verification command:
- TypeScript:
npx tsserver --version/npm ls typescript - Python:
npm install -g pyright(+ uv / pip alternatives) - Go:
go install golang.org/x/tools/gopls@latest(+ Go 1.21 +go.modrequirement) - Rust:
rustup component add rust-analyzer(+ rustup.rs link, which is a stable upstream)
- TypeScript:
ENABLE_LSP_TOOLnamed exactly — singular_TOOLeverywhere in the diff (verified via grep). Glossary explicitly disambiguates: "singular_TOOL, not plural". Known papercut handled.- Marketplace links don't pin specific plugin URLs — links go to the general plugins doc and instruct readers to search the marketplace UI. Inline guidance reinforces this in the caveats: prefer language-community-maintained over third-party. Only stable upstream URL is
rustup.rsfor the Rust toolchain itself, which is appropriate. - No private project names in new content — verified.
- markdownlint-cli2 CI — pass. Pre-existing MD060 noise in
CLAUDE.md(unrelated) not added to. - CI — all three checks green (Verify Ticket ID, lychee, markdownlint-cli2).
- PR body — Summary (4 bullets), Testing (5 steps incl. an honest "can't be automated here" note for the live LSP run), Glossary (10 entries).
Suggestions
None blocking. Optional polish for a future iteration:
- The
tsserverinstall block has the verification command but the comment "Install the Claude Code plugin from the marketplace" with no command — symmetrical to the others, just noting it for consistency. Not worth blocking on. - Consider adding a small "Disable" subsection (
unset ENABLE_LSP_TOOL) for completeness; readers who want to A/B the cost will look for it. Trivial follow-up.
Verdict
APPROVED (posted as comment — GitHub blocks self-approval)
The risks called out in #189 — env var name papercut, marketplace link rot, missing fallback caveat — are all handled. The cost-benefit numbers come from the actual Phase 1 spike (PR #184 / ticket #178) rather than vendor marketing. Glossary is one of the better ones I've reviewed for an apexyard PR — it pre-empts the "_TOOL vs _TOOLS" question explicitly.
Reviewed by Rex (Code Reviewer Agent)
Reviewed commit: 525591dd6038d66ecdbdb3bca28d8a82e4656ae5
… install (#193) - Add "Optional: LSP-aware code navigation" section to docs/getting-started.md covering the cost-benefit (~3-15× cheaper on shallow semantic queries per the Phase 1 spike numbers), the two-piece opt-in (env var + plugin), and the caveats (cold-start latency, cross-project queries still grep). - Per-language install notes for TypeScript (tsserver), Python (pyright), Go (gopls), Rust (rust-analyzer). Marketplace links left as searches — individual plugin URLs are not yet stable enough to pin. - Add LSP row to the Quick Reference table in CLAUDE.md. - Add "LSP-aware skills inside a workspace" subsection to the daily-workflow area of docs/multi-project.md noting the transparent fallback to grep. Pure docs — no code changes. Closes #189 Co-authored-by: me2resh <ahmed.abdelaliem@gmail.com>
Summary
docs/getting-started.mdcovering the cost-benefit (~3-15× cheaper on shallow semantic queries per the Phase 1 spike numbers), the two-piece opt-in (ENABLE_LSP_TOOL=1env var + per-language plugin), per-language install notes for TypeScript / Python / Go / Rust, and the caveats (cold-start latency, cross-project queries still need grep).CLAUDE.md.docs/multi-project.mdnoting the transparent fallback to grep when LSP is absent.Plugin marketplace links: deliberately point at the Claude Code plugins documentation and tell readers to search the marketplace UI by language. Per the ticket's risk note, individual plugin URLs in the new ecosystem aren't yet stable enough to pin from a framework doc — better to link the search than rot a deep link.
Testing
docs/getting-started.mdand verify the new "Optional: LSP-aware code navigation" section reads end-to-end without dangling references — the cost-benefit, the two-piece opt-in, four per-language install blocks, and four caveats.CLAUDE.mdQuick Reference and confirm the LSP row appears at the bottom of the table.docs/multi-project.mdand search for "LSP-aware skills inside a workspace" — the new subsection sits between theapexyard statusCLI briefing and the "Upgrades — pulling from upstream" section.gh issue view 189 --repo me2resh/apexyardand tick off the four AC bullets against the diff.ENABLE_LSP_TOOL=1, run/code-reviewagainst a small TS PR and confirm the latency / token cost matches the section's claim.Glossary
tsserver,pyright,gopls,rust-analyzer, …) that implements LSP over stdio for a given source treeENABLE_LSP_TOOL_TOOL, not plural) that enables Claude Code's built-in LSP tool — off by default since v2.0.74.lsp.jsontsservertypescriptnpm package — typically already present in any TypeScript project'snode_modulespyrightgoplsgo install golang.org/x/tools/gopls@latestrust-analyzerrustupcomponent on most modern toolchains