lsp-implement
について
このスキルは、LSP機能を活用してインターフェースまたは抽象型のすべての具象実装を検出し、開発者が変更を加える前に型階層を把握することを支援します。これは読み取り専用であり、implementationProviderをサポートするagent-lsp MCPサーバーが必要です。インターフェースのシグネチャや基本型を変更する際に、影響を受けるすべてのサブタイプを確認するためにご利用ください。
クイックインストール
Claude Code
推奨npx skills add blackwell-systems/agent-lsp -a claude-code/plugin add https://github.com/blackwell-systems/agent-lspgit 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
| 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.
GitHub リポジトリ
関連スキル
llamaguard
その他LlamaGuardは、暴力やヘイトスピーチなど6つの安全性カテゴリーにおいて、LLMの入力と出力をモデレートするMetaの70-80億パラメータモデルです。94〜95%の精度を提供し、vLLM、Hugging Face、Amazon SageMakerを使用してデプロイ可能です。このスキルを使用して、AIアプリケーションにコンテンツフィルタリングと安全策を簡単に統合できます。
cost-optimization
その他このClaudeスキルは、リソースの適正サイジング、タグ付け戦略、支出分析を通じて、開発者がクラウドコストを最適化することを支援します。AWS、Azure、GCPにわたるクラウド支出の削減とコストガバナンスの実施のためのフレームワークを提供します。インフラコストの分析、リソースの適正サイジング、または予算制約への対応が必要な際にご利用ください。
quantizing-models-bitsandbytes
その他このスキルは、bitsandbytesを使用してLLMを8ビットまたは4ビット精度に量子化し、精度の低下を最小限に抑えつつ50〜75%のメモリ削減を実現します。限られたGPUメモリでより大規模なモデルを実行したり、推論を高速化するのに理想的で、INT8、NF4、FP4などのフォーマットをサポートしています。HuggingFace Transformersと統合され、QLoRAトレーニングや8ビットオプティマイザーを可能にします。
dispatching-parallel-agents
その他このClaudeスキルは、複数のエージェントを配備し、3つ以上の独立した問題を並行して調査・修正します。共有状態や依存関係がなく解決可能な、無関係な障害が発生するシナリオ向けに設計されています。中核となる機能は並列問題解決であり、効率を最大化するために独立した問題領域ごとに1つのエージェントを割り当てます。
