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

lsp-generate — скилл для Claude Code: что делает и как установить

Запускает генерацию кода через языковой сервер: создаёт заглушки интерфейсов, каркасы тестов и недостающие методы. Пригодится при написании нового кода по типам.

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

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

Скилл вызывает штатные генераторы LSP-сервера через MCP-инструменты agent-lsp. В отличие от рефакторинга, он создаёт новые конструкции, которых в файле ещё не было. Сервер отдаёт готовые заглушки с TODO или panic, а агент форматирует документ и проверяет диагностику.

Процесс состоит из пяти шагов: агент открывает файл, запрашивает доступные действия через suggest_fixes, просит пользователя подтвердить выбор, применяет правки и запускает форматирование. Для работы обязателен MCP-сервер agent-lsp с поддержкой codeActionProvider. Без запущенного LSP-сервера для целевой рабочей области вызовы завершатся ошибкой.

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

  • Сгенерировать заглушки для реализации интерфейса или трейта
  • Создать каркас юнит-тестов для существующего файла
  • Добавить объявления недостающих методов по ошибкам компилятора
  • Вставить недостающие импорты при обращении к необъявленным типам

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

  • Реализуй интерфейс io.Reader для структуры MyType в internal/reader.go:14:1
  • Сгенерируй каркас тестов для сервиса в pkg/auth/service.go
  • Добавь недостающие методы для трейта Handler в src/handler.rs:25:5

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

1Через Skills CLI (Vercel)

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

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

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

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

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

Вопросы о lsp-generate

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

Выполните команду npx skills add blackwell-systems/agent-lsp --skill lsp-generate -a claude-code.

Чем lsp-generate отличается от lsp-extract-function?

lsp-generate создаёт совершенно новый код (заглушки интерфейсов, методы или каркасы тестов), тогда как lsp-extract-function реструктурирует уже написанные фрагменты.

Что требуется для работы скилла?

Нужен настроенный MCP-сервер agent-lsp, а также запущенный в рабочей области языковой сервер с поддержкой возможности codeActionProvider.

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

SKILL.md · MIT
---
name: lsp-generate
description: Trigger language server code generation — implement interface stubs, generate test skeletons, add missing methods, generate mock types. Uses suggest_fixes to surface generator options and execute_command to run them.
argument-hint: "[file-path:line:col] [generation-intent]"
user-invocable: true
allowed-tools: mcp__lsp__suggest_fixes mcp__lsp__execute_command mcp__lsp__apply_edit mcp__lsp__format_document mcp__lsp__get_diagnostics mcp__lsp__open_document mcp__lsp__get_server_capabilities mcp__lsp__go_to_symbol
license: MIT
compatibility: Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)
metadata:
  required-capabilities: codeActionProvider
  optional-capabilities: workspaceSymbolProvider documentFormattingProvider
---

> Requires the agent-lsp MCP server.

# lsp-generate

**lsp-generate creates NEW code that does not yet exist in the file** — stubs,
mocks, implementations of interfaces, test functions. It is distinct from
`lsp-extract-function`, which restructures code that already exists. Use
`lsp-generate` when you want the language server to write something new; use
`lsp-extract-function` when you want to reorganize existing code.

## Input

- **`file_path`**: absolute path to the target file
- **`line`, `column`** (or **`position_pattern`**): position in the file where
  generation is triggered (e.g., the line with the unimplemented interface,
  the missing method error, the type declaration)
- **`intent`**: description of what to generate (e.g., "implement io.Reader",
  "generate test skeleton", "add missing methods", "generate mock for Handler")

## Prerequisites

LSP must be running for the target workspace. If not yet initialized, call
`mcp__lsp__start_lsp` with the workspace root before proceeding.

Auto-init note: agent-lsp supports workspace auto-inference from file paths.
Explicit `start_lsp` is only needed when switching workspace roots.

---

## Workflow

### Step 1 — Open document and locate position

Call `mcp__lsp__open_document` for the target file:

```
mcp__lsp__open_document(file_path: "/abs/path/to/file.go", language_id: "go")
```

If using `position_pattern`, use the @@ marker convention from
`references/patterns.md` to identify the exact cursor position. For example:

```
"position_pattern": "var _ io.Reade@@r = (*MyType)(nil)"
```

### Step 2 — Get code actions at target position

```
mcp__lsp__suggest_fixes({
  "file_path": "...",
  "start_line": N,
  "start_column": C,
  "end_line": N,
  "end_column": C
})
```

Filter for generator actions:
- Kind `"quickfix"` with titles matching the intent (e.g., "Implement
  interface", "Generate", "Add stub", "Create test")
- Kind `"source"` for source-level generation

If no matching action is found, report "No generator action available at this
position for the given intent" and proceed to the Fallback section below.

### Step 3 — Select and confirm action

Display available generator actions to the user. If multiple actions match the
intent, list all of them and ask which to apply. Confirm the selected action
before executing — do NOT auto-select when multiple candidates exist.

### Step 4 — Execute generator

Execute one generator at a time. Do NOT batch multiple `execute_command` calls.

- If the action has a `command` field: run via `mcp__lsp__execute_command`
- If the action has an `edit` field: apply via `mcp__lsp__apply_edit`
- If the action has both: apply the edit first, then run the command

### Step 5 — Format and verify

```
mcp__lsp__format_document({ "file_path": "..." })
mcp__lsp__get_diagnostics({ "file_path": "..." })
```

Report remaining diagnostics. Stub methods typically leave TODO comments or
`panic("not implemented")` bodies — this is expected behavior from the language
server. Surface any unexpected errors.

---

## Per-Language Generator Patterns

| Language | Generator | Trigger location | Code action kind |
|----------|-----------|-----------------|-----------------|
| Go (gopls) | Implement interface | Line with `var _ MyInterface = (*MyType)(nil)` or type declaration | `quickfix` — "Implement interface" |
| Go (gopls) | Generate test file | Any .go file without _test.go counterpart | `source` — "Generate unit tests" |
| Go (gopls) | Add missing method | Line with `undefined: method` error | `quickfix` |
| TypeScript (typescript-language-server) | Implement interface | Class declaration | `quickfix` — "Implement interface members" |
| TypeScript (typescript-language-server) | Add missing method | Method call with no definition | `quickfix` — "Add missing function declaration" |
| Python (pyright) | Add import | Name not defined | `quickfix` — "Add import" |
| Rust (rust-analyzer) | Implement trait | `impl Trait for Type {}` | `quickfix` — "Add missing impl members" |

---

## Fallback When No Code Action Is Available

If `suggest_fixes` returns no generator actions, the language server at this
workspace may not support server-side generation for this intent. Explain this
to the user and suggest a manual approach specific to the intent:

- **Interface implementation:** Look up the interface definition first using
  `mcp__lsp__go_to_symbol` to discover all required methods, then implement
  them manually.
- **Test skeleton:** Check `mcp__lsp__get_server_capabilities` to confirm
  whether the server advertises code action support; if not, generate the test
  skeleton manually using standard testing package conventions.
- **Missing methods:** Use `mcp__lsp__get_diagnostics` to enumerate the missing
  symbols by name, then implement them one at a time.

---

## Constraints

- Do NOT batch `execute_command` calls — run one generator at a time
- Do NOT skip user confirmation when multiple generator actions are available

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

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

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

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

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

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

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