Skip to content

[Chore] /setup emits verified LSP plugin-install commands instead of manual UI instructions #215

@atlas-apex

Description

@atlas-apex

Driver

Step 2c.5(d) of /setup currently punts on plugin install with "the marketplace command shape isn't stable enough… print clear manual instructions instead." This was a safety call when the marketplace was new — but it's now empirically stable and verified end-to-end on Claude Code 2.1.138:

/plugin marketplace add anthropics/claude-plugins-official
/plugin install typescript-lsp@claude-plugins-official
/reload-plugins

The official discover-plugins docs (code.claude.com/docs/en/discover-plugins) ship a verified language → plugin name table.

A subtler gap discovered during a real adopter walkthrough: docs claim claude-plugins-official is auto-loaded when Claude Code starts, but in practice the auto-add can be missing — a fresh adopter who follows the manual-install fallback hits "Marketplace not found" and has to debug it themselves. The skill should always emit the add line; it's idempotent on the success path and recovers the failure path.

A second gap: ENABLE_LSP_TOOL=1 written to ~/.zshrc is not visible to the current Claude Code process. Operators see the var in their rc file and assume it's active — but it only takes effect on the next fully-restarted session. /reload-plugins does not re-read shell env.

Scope

  • .claude/skills/setup/SKILL.md Step 2c.5(d): replace the manual-instruction block with the verified 3-line copy-paste, keyed on detected language via this map (verified from discover-plugins docs):

    Language Plugin
    typescript typescript-lsp
    python pyright-lsp
    go gopls-lsp
    rust rust-analyzer-lsp
  • Same step: note that the marketplace add is idempotent and should always be emitted (don't trust the docs' auto-load claim).

  • Same step: instruct the operator to fully restart Claude Code so the env var is inherited.

  • docs/getting-started.md § "Optional: LSP-aware code navigation": add the env-var-not-visible-to-current-process gotcha so the manual-install path users hit the same warning.

Acceptance Criteria

  • Step 2c.5(d) emits the three-line copy-paste block (marketplace add, plugin install, reload-plugins) using the detected language's plugin name from the verified table
  • The "always emit add — it's idempotent" comment is present in the skill so future maintainers don't try to optimise it away
  • The skill prints a "fully restart Claude Code" reminder that explains WHY (env var not re-read by /reload-plugins)
  • docs/getting-started.md § "Optional: LSP-aware code navigation" gains the env-var-not-inherited gotcha
  • Manual smoke test on a fork with the new skill: a fresh --enable-lsp run produces the three commands, copy-paste works without intervention

Risks / Dependencies

  • Low: content-only change to skill markdown + one doc paragraph. The commands have been verified end-to-end on Claude Code 2.1.138.
  • The plugin marketplace command shape could still change in a future Claude Code release; the printed instructions would then need updating. The skill should reference the docs URL so a stale skill is recoverable.

Glossary

Term Definition
LSP Language Server Protocol — semantic code intelligence (definitions, references, hover) via a per-language server (e.g. typescript-language-server). Claude Code's built-in LSP tool is enabled by ENABLE_LSP_TOOL=1 + an installed plugin.
claude-plugins-official The official Anthropic-maintained plugin marketplace. Docs claim it's auto-loaded; in practice the auto-add can be missing on a fresh adopter.
Step 2c The LSP-enablement step inside the /setup skill — language detection, server install, env var, plugin install.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — material gap or user-impactingenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions