К основному содержанию
скилл CX Codex

lsp-docs — скилл для Claude Code: поиск документации и установка

Скилл ищет сведения о символе через LSP, документацию локального toolchain и исходное определение. Выручает, когда hover пустой или зависимость не индексируется.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add blackwell-systems/agent-lsp --skill lsp-docs -a claude-code
Открыть на GitHub

Что делает lsp-docs

Поиск идёт в три этапа: сначала скилл запрашивает hover у LSP, затем обращается к локальной документации toolchain, а при неудаче находит определение и показывает исходный код. Для второго этапа передайте полное имя символа и language_id; file_path можно добавить, чтобы улучшить разрешение Go-пакета. Исходные файлы скилл не меняет.

Для работы нужен MCP-сервер agent-lsp. Второй этап использует локальный toolchain: например, go doc, pydoc или cargo doc. Если документацию получить не удалось, скилл переходит к исходному определению; результат этого этапа — код, а не оформленная документация. Это важно учитывать при чтении ответа.

Какие задачи решает

  • найти описание символа, когда hover возвращает пустой результат
  • получить документацию для транзитивной зависимости
  • посмотреть сигнатуру и описание символа из локального toolchain
  • прочитать исходное определение, если документация недоступна

Примеры запросов агенту

  • Найди документацию для символа fmt.Println в Go-проекте.
  • Объясни, что делает os.path.join, если LSP не показывает описание.
  • Покажи исходное определение символа std::vec::Vec::new.

Как установить lsp-docs

1Через Skills CLI (Vercel)

npx skills add blackwell-systems/agent-lsp --skill lsp-docs -a claude-code

2Вручную: положить файлы

~/.claude/skills/lsp-docs/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/lsp-docs/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о lsp-docs

Как установить lsp-docs в Claude Code?

Выполните npx skills add blackwell-systems/agent-lsp --skill lsp-docs -a claude-code. Файл скилла находится по пути ~/.claude/skills/lsp-docs/SKILL.md.

Что делает lsp-docs?

Ищет сведения о символе через hover, локальную документацию toolchain, а затем исходное определение. Поиск устроен так, чтобы продолжить работу, если предыдущий способ не дал результата.

Что нужно для работы lsp-docs?

Нужен MCP-сервер agent-lsp. Для получения документации на втором этапе используется локальный toolchain, например go doc, pydoc или cargo doc.

Исходный текст

SKILL.md · MIT
---
name: lsp-docs
description: Three-tier documentation lookup for any symbol — hover → offline toolchain doc → source definition. Use when hover text is absent, insufficient, or the symbol is in an unindexed dependency.
argument-hint: "[symbol-name]"
user-invocable: true
allowed-tools: mcp__lsp__inspect_symbol mcp__lsp__get_symbol_documentation mcp__lsp__go_to_definition mcp__lsp__get_symbol_source
license: MIT
compatibility: Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)
metadata:
  required-capabilities: hoverProvider
  optional-capabilities: definitionProvider
---

> Requires the agent-lsp MCP server.

# lsp-docs

Three-tier documentation lookup for any symbol. Works when the language server
is unavailable, when hover returns empty results, or when the symbol lives in a
transitive dependency that gopls or pyright does not index.

Read-only — does not modify any files.

**Invocation:** User provides `symbol_name` in fully-qualified form (e.g.
`"fmt.Println"`, `"std::vec::Vec::new"`, `"os.path.join"`). Optionally provide
`file_path` for any file in the same module, which improves Go package resolution.

---

## Decision table

| Situation | Recommended tier |
|-----------|-----------------|
| Symbol in current workspace | Tier 1 (hover) |
| Symbol in direct dependency | Tier 2 (toolchain doc) |
| Symbol in transitive dep (not indexed by LSP) | Tier 2 |
| No LSP server available | Tier 2 → Tier 3 |
| No toolchain installed (e.g., Rust without cargo) | Tier 3 |

---

## Tier 1 — LSP hover (fast, live, position-based)

Call `inspect_symbol` with the file path and cursor position (1-based).

```
mcp__lsp__inspect_symbol({
  "file_path": "/abs/path/to/file.go",
  "line": 42,
  "column": 8
})
```

If the result contains a non-empty `contents` field with useful type and doc
information, **stop here and return it**. Hover is the fastest path and should
always be tried first.

If hover returns empty `contents`, or the language server is not initialized,
proceed to Tier 2.

---

## Tier 2 — Offline toolchain documentation (authoritative, name-based)

Call `get_symbol_documentation` with the fully-qualified symbol name and
`language_id`. This fetches documentation from the local toolchain (go doc,
pydoc, cargo doc) without requiring an LSP session. Works for transitive
dependencies that the language server does not index.

```
mcp__lsp__get_symbol_documentation({
  "symbol": "fmt.Println",
  "language_id": "go",
  "file_path": "/abs/path/to/any/file/in/the/module.go",  // optional, improves Go pkg resolution
  "format": "markdown"   // optional: wraps signature in code fence
})
```

**Interpreting the result:**

- If `source == "toolchain"`: return the `doc` and `signature` fields to the
  user. These are authoritative — sourced directly from the installed toolchain,
  ANSI-stripped, and ready for display.
- If `source == "error"`: note the `error` field (toolchain failure reason) and
  proceed to Tier 3.

---

## Tier 3 — Source definition (last resort)

Call `go_to_definition` to navigate to the symbol definition, then call
`get_symbol_source` to extract the source text. This always works when the
symbol exists in the workspace or module cache, even without a language server.

```
mcp__lsp__go_to_definition({
  "file_path": "/abs/path/to/caller.go",
  "line": 42,
  "column": 8
})
// → returns definition location

mcp__lsp__get_symbol_source({
  "file_path": "<definition file from above>",
  "line": <definition line from above>
})
// → returns full function/type source text
```

Present the source text to the user with a note that it is raw source, not
rendered documentation.

---

## lsp-impact integration note

Before running `lsp-impact` on an unfamiliar symbol, call
`get_symbol_documentation` to understand its signature and semantics. This
prevents misinterpreting the impact report due to incorrect assumptions about
what the symbol does.

---

## Example

```
Goal: look up documentation for http.ListenAndServe in a Go project

Tier 1 — inspect_symbol: cursor on "ListenAndServe" in main.go:14:6
  → contents: "" (empty — server not initialized)
  Proceed to Tier 2.

Tier 2 — get_symbol_documentation:
  symbol: "net/http.ListenAndServe"
  language_id: "go"
  file_path: "/Users/you/code/myapp/main.go"
  format: "markdown"

  Result:
  {
    "symbol": "net/http.ListenAndServe",
    "language": "go",
    "source": "toolchain",
    "doc": "func ListenAndServe(addr string, handler http.Handler) error\n\nListenAndServe listens on the TCP network address addr and then calls Serve...",
    "signature": "func ListenAndServe(addr string, handler http.Handler) error",
    "error": ""
  }

  source == "toolchain" → return doc and signature to user. Done.

Tier 3 — skipped (Tier 2 succeeded)
```

© blackwell-systems · MIT · blackwell-systems/agent-lsp

Похожие скиллы

Все скиллы по теме «Тексты и документация» →
grill-with-docs Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну и по ходу создаёт ADR и глоссарий. Подойдёт перед началом сложной разработки. 1 219 756установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок handoff Matt Pocock Собирает текущий диалог в документ передачи, чтобы другой агент продолжил работу с нужным контекстом. Нужен при смене сессии или исполнителя. 1 038 491установок triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. 990 453установок domain-modeling Matt Pocock Скилл помогает уточнять термины проекта, вести GLOSSARY.md и фиксировать архитектурные решения в ADR. Нужен, когда модель предметной области меняется. 876 391установок

Из того же набора25

lsp-extract-function Выносит выделенный блок кода в отдельную функцию через LSP-сервер или вручную. Помогает безопасно декомпозировать функции с проверкой типов и скоупа. CX Codex +1 ★ 165звёзд репо lsp-explore Собирает сведения о символе: определение, тип, реализации, вызывающие функции и ссылки. Пригодится, когда нужно разобраться в незнакомом коде. CX Codex +1 ★ 165звёзд репо lsp-edit-symbol Меняет функцию, тип или переменную по имени, когда точный файл и позиция неизвестны. Работает через MCP-сервер agent-lsp. CX Codex +1 ★ 165звёзд репо lsp-edit-export Пошаговый сценарий безопасного изменения публичных функций, типов и API. Сначала находит все вызовы через LSP, запрашивает подтверждение и проверяет сборку. CX Codex +1 ★ 165звёзд репо lsp-dead-code Скилл перечисляет экспортируемые символы файла и проверяет каждый на ссылки по всему проекту. Помогает понять, какие экспорты можно удалять. CX Codex +1 ★ 165звёзд репо lsp-cross-repo Находит вызовы символов общей библиотеки во всех зависимых репозиториях через LSP. Помогает оценить последствия рефакторинга до внесения ломающих правок. CX Codex +1 ★ 165звёзд репо lsp-concurrency-audit Скилл проверяет поля типа или файла на доступ из конкурентных контекстов и выдаёт отчёт по безопасности. Пригодится перед рефакторингом или при разборе потенциальных гонок данных. CX Codex +1 ★ 165звёзд репо lsp-architecture Собирает структурный обзор кодовой базы: языки, пакеты, точки входа, зависимости и горячие файлы. Один вызов вместо ручного обхода репозитория. CX Codex +1 ★ 165звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой