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

lsp-implement — скилл для Claude Code: поиск реализаций

Скилл находит типы, реализующие интерфейс, и подтипы абстрактного типа. Запустите его перед изменением интерфейса, чтобы увидеть, какие реализации затронет правка.

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

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

Скилл ищет объявление типа, затем собирает места, где его реализуют, и строит иерархию подтипов и суперклассов. Результаты оформляет в отчёт с файлами, строками и списком найденных типов. Файлы он не меняет.

Для работы нужен MCP-сервер agent-lsp. Скилл сначала проверяет возможности языкового сервера: поиск реализаций и иерархия типов поддерживаются не всеми серверами. Если не доступна ни одна из этих функций, поиск останавливается; значит, результат зависит от возможностей сервера. Можно передать имя типа и при необходимости workspace_root.

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

  • найти все типы, реализующие интерфейс
  • составить список мест для обновления после добавления метода
  • проверить подтипы перед изменением базового типа
  • разобраться в иерархии типов незнакомого проекта

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

  • Найди все реализации интерфейса Handler в проекте.
  • Перед добавлением метода в io.Reader перечисли типы, которые нужно изменить.
  • Покажи подтипы BaseHandler и оформи результат отчётом.

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

1Через Skills CLI (Vercel)

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

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

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

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

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

Вопросы о lsp-implement

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

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

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

Находит реализации интерфейса или подтипы абстрактного типа и перечисляет их в отчёте с расположением в файлах. Скилл работает только на чтение.

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

Нужен MCP-сервер agent-lsp. Поиск реализаций и иерархии типов зависит от того, поддерживает ли эти функции языковой сервер.

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

SKILL.md · MIT
---
name: lsp-implement
description: Find all concrete implementations of an interface or abstract type. Use when you need to know what types satisfy an interface, or what subtypes exist before changing a base type.
argument-hint: "[interface-or-type-name]"
user-invocable: true
allowed-tools: mcp__lsp__start_lsp mcp__lsp__get_server_capabilities mcp__lsp__go_to_symbol mcp__lsp__go_to_implementation mcp__lsp__type_hierarchy mcp__lsp__open_document
license: MIT
compatibility: Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)
metadata:
  required-capabilities: implementationProvider
  optional-capabilities: typeHierarchyProvider workspaceSymbolProvider
---

> Requires the agent-lsp MCP server.

# lsp-implement

Find every concrete type that implements an interface, or every subtype of an
abstract type. Read-only — does not modify any files.

Use this skill **before** changing an interface signature, adding a method to
an interface, or removing a base-type method. It tells you every type that
must be updated.

**Invocation:** User provides `type_name` (e.g. `"Handler"`, `"io.Reader"`).
Optionally provide `workspace_root`.

---

## Prerequisites

Check server capabilities — `go_to_implementation` and `type_hierarchy` are
optional features not implemented by all language servers:

```
mcp__lsp__get_server_capabilities()
```

Note which of `go_to_implementation` and `type_hierarchy` appear in
`supported_tools`. The steps below depend on this result.

If neither is supported, report `"Server does not support implementation
lookup"` and stop.

---

## Step 1 — Locate the interface or type

```
mcp__lsp__go_to_symbol({
  "symbol_path": "<TypeName>",
  "workspace_root": "/abs/path"   // optional
})
→ returns: file, line, column (1-indexed)
```

Open the file so the language server tracks it:

```
mcp__lsp__open_document({
  "file_path": "<file from go_to_symbol>"
})
```

Record `file`, `line`, `column` for subsequent steps.

---

## Step 2 — Find all implementations

Only if `go_to_implementation` appears in `supported_tools`.

```
mcp__lsp__go_to_implementation({
  "file_path": "<file>",
  "line": <line>,
  "column": <column>
})
```

Returns a list of locations — each is a concrete type that satisfies the
interface. Group by file. Record type names and locations.

If `go_to_implementation` is **not** supported: skip; note in report.

---

## Step 3 — Type hierarchy (subtypes and supertypes)

Only if `type_hierarchy` appears in `supported_tools`.

```
mcp__lsp__type_hierarchy({
  "file_path": "<file>",
  "line": <line>,
  "column": <column>,
  "direction": "subtypes"   // use "both" to also see what this type extends
})
```

`subtypes` returns concrete types that extend or embed this type.
`supertypes` returns what this type itself implements.

Cross-reference with Step 2 results — the union gives the complete
implementation surface.

If `type_hierarchy` is **not** supported: skip; note in report.

---

## Step 4 — Report

```
## Implementation Report: <TypeName>

### Definition
- File: <file>:<line>
- Kind: interface / abstract type / base struct

### Concrete Implementations (<N> found)
- TypeA — <file>:<line>
- TypeB — <file>:<line>
...

### Type Hierarchy
Supertypes: [list or "none"]
Subtypes: [list or "same as implementations above" or "not supported"]

### Risk Assessment
| N implementations | Recommendation |
|---|---|
| 0 | Interface unused or no external implementors found. May be internal-only. |
| 1–3 | Low risk. All implementors can be updated together. |
| 4–10 | Medium risk. Plan updates package by package. |
| > 10 | High risk. Changing the interface is a breaking API change. |
```

---

## Common use cases

**Before adding a method to an interface:**
Run lsp-implement to find all types that will need the new method. Each
implementation site must be updated — this is your required change list.

**Before removing a method:**
Find all types that implement it. Check whether any external (outside this
repo) packages may be affected.

**Understanding polymorphism in an unfamiliar codebase:**
Run lsp-implement on the primary interface to see the full type hierarchy
before making any changes.

---

## Language notes

| Language | `go_to_implementation` finds... |
|---|---|
| Go | All types with matching method sets |
| TypeScript | All classes implementing the interface |
| Java/C# | All classes/structs implementing the interface |
| Rust | All structs with `impl Trait for ...` |

For Go: `go_to_implementation` on an interface finds all types that satisfy
it, even without an explicit `implements` declaration.

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

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

Каталог скиллов SKILL.md →
find-skills vercel-labs Ищет и устанавливает готовые скиллы для ИИ-агентов через каталог skills.sh. Пригодится, когда для рабочей задачи нужен специализированный воркфлоу. CX Codex +1 4 000 000установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. 1 025 790установок grill-me Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну, чтобы найти пробелы и уточнить решения. Подойдёт перед началом разработки. 1 424 476установок grill-with-docs Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну и по ходу создаёт ADR и глоссарий. Подойдёт перед началом сложной разработки. 1 219 756установок improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок

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

lsp-refactor Организует цепочку безопасного рефакторинга кода через LSP: оценивает охват изменений, симулирует правки в памяти, вносит их на диск, проверяет сборку и запускает тесты. CX Codex +1 ★ 165звёзд репо lsp-onboard Исследует новый проект через LSP и собирает профиль с языками, сборкой, тестами, точками входа и архитектурными связями. CX Codex +1 ★ 165звёзд репо lsp-local-symbols Показывает, какие функции и типы объявлены в файле, где используется переменная и какой у неё тип. Пригодится перед правкой одного файла. CX Codex +1 ★ 165звёзд репо lsp-inspect Проводит глубокий аудит качества кода в файле или директории через протокол LSP. Находит мёртвые символы, подавленные ошибки и проблемы многопоточности. CX Codex +1 ★ 165звёзд репо lsp-impact Показывает всех вызывающих, супертипы и подтипы, число ссылок на символ или файл до того, как вы что-то поменяете. Пригодится при рефакторинге и удалении кода. CX Codex +1 ★ 165звёзд репо lsp-generate Запускает генерацию кода через языковой сервер: создаёт заглушки интерфейсов, каркасы тестов и недостающие методы. Пригодится при написании нового кода по типам. CX Codex +1 ★ 165звёзд репо lsp-format-code Форматирует целый файл или выбранный диапазон через языковой сервер. Пригодится после генерации кода и перед коммитом, чтобы привести отступы и стиль к правилам проекта. CX Codex +1 ★ 165звёзд репо lsp-fix-all Прогоняет все диагностики в файле и применяет доступные quick-fix от языкового сервера. Пригодится, когда в файле накопились ошибки и предупреждения перед новой работой. CX Codex +1 ★ 165звёзд репо

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

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