MCP HubMCP Hub
Вернуться к навыкам

lsp-implement

blackwell-systems
Обновлено 5 days ago
53
2
53
Посмотреть на GitHub
Другоеgeneral

О программе

Этот навык находит все конкретные реализации интерфейса или абстрактного типа с использованием возможностей LSP, помогая разработчикам понять иерархии типов перед внесением изменений. Он работает в режиме только для чтения и требует сервер MCP agent-lsp с поддержкой implementationProvider. Используйте его при изменении сигнатур интерфейсов или базовых типов, чтобы увидеть все затронутые подтипы.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add blackwell-systems/agent-lsp -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/blackwell-systems/agent-lsp
Git клонированиеАльтернативный
git clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-implement

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

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

Languagego_to_implementation finds...
GoAll types with matching method sets
TypeScriptAll classes implementing the interface
Java/C#All classes/structs implementing the interface
RustAll 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.

GitHub репозиторий

blackwell-systems/agent-lsp
Путь: skills/lsp-implement
0
agentskillsai-agentsai-toolingclaudeclaude-codecode-intelligence

Похожие навыки

llamaguard

Другое

LlamaGuard — это модель от Meta с 7–8 миллиардами параметров для модерации входных и выходных данных больших языковых моделей по шести категориям безопасности, таким как насилие и разжигание ненависти. Она обеспечивает точность 94–95% и может быть развернута с помощью vLLM, Hugging Face или Amazon SageMaker. Используйте этот навык, чтобы легко интегрировать фильтрацию контента и защитные механизмы в ваши ИИ-приложения.

Просмотреть навык

cost-optimization

Другое

Этот навык Claude помогает разработчикам оптимизировать облачные расходы за счет правильного подбора ресурсов, стратегий тегирования и анализа затрат. Он предоставляет framework для сокращения облачных расходов и внедрения управления затратами в AWS, Azure и GCP. Используйте его, когда вам нужно проанализировать расходы на инфраструктуру, оптимизировать ресурсы или уложиться в бюджетные ограничения.

Просмотреть навык

quantizing-models-bitsandbytes

Другое

Этот навык выполняет квантизацию LLM до 8-битной или 4-битной точности с использованием библиотеки bitsandbytes, обеспечивая сокращение использования памяти на 50-75% при минимальной потере точности. Он идеально подходит для запуска больших моделей при ограниченной памяти GPU или для ускорения вывода, поддерживая форматы INT8, NF4 и FP4. Навык интегрируется с HuggingFace Transformers и позволяет использовать обучение QLoRA и 8-битные оптимизаторы.

Просмотреть навык

dispatching-parallel-agents

Другое

Этот навык Claude распределяет нескольких агентов для исследования и устранения трёх и более независимых проблем параллельно. Он предназначен для сценариев с несвязанными сбоями, которые можно устранить без общего состояния или зависимостей. Ключевая возможность — параллельное решение проблем, где за каждую независимую предметную область назначается отдельный агент для максимальной эффективности.

Просмотреть навык