Agent skill

Lsp Refactor

by blackwell-systems in blackwell-systems/agent-lsp

End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests.

MITAuto-check passedDevelopment

Install Lsp Refactor

skills CLI
$ npx skills add blackwell-systems/agent-lsp --skill lsp-refactor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install blackwell-systems/agent-lsp lsp-refactor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/blackwell-systems/agent-lsp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/lsp-refactor .claude/skills/lsp-refactor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
lsp-refactor
GitHub stars
159
Token cost
~2.8k tokens
SKILL.md length
707 words
Files
2 (incl. references)
Skills in repo
24
Repo updated
First seen
Licence
MIT

At a glance

End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests.

  • Works in 5 steps: Blast-Radius Analysis (inlined from… → Speculative Preview (inlined from… → Apply to Disk → …
  • Tasks that involve Refactoring
  • SKILL.md covers Input, Phase 1 — Blast-Radius…, Phase 2 — Speculative Preview… and Phase 3 — Apply to Disk, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Lsp Refactor is an agent skill from blackwell-systems/agent-lsp. End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests. Inlines lsp-impact + lsp-safe-edit + lsp-verify + lsp-test-correlation into one coordinated sequence.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/patterns.md`). Compatibility notes: Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)

It sits in Development, covering Refactoring. It works with Model Context Protocol. The repository describes itself as: MCP server that orchestrates language servers into agent-native workflows. 65 tools, 30 CI-verified languages. The licence is MIT.

When your agent uses it

  • Tasks that involve Refactoring

Example prompts

  • “/lsp-refactor”

Requirements

  • Compatibility (from SKILL.md): Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)
  • Pre-approved tools (allowed-tools): mcp__lsp__blast_radius, mcp__lsp__preview_edit, mcp__lsp__simulate_chain, mcp__lsp__get_diagnostics, mcp__lsp__run_build, mcp__lsp__run_tests, mcp__lsp__get_tests_for_file, mcp__lsp__apply_edit, mcp__lsp__replace_symbol_body, mcp__lsp__open_document, mcp__lsp__format_document, Edit, Write

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Blast-Radius Analysis (inlined from lsp-impact)
  2. Speculative Preview (inlined from lsp-safe-edit)
  3. Apply to Disk
  4. Build Verification (inlined from lsp-verify)
  5. Run Affected Tests (inlined from lsp-test-correlation)

What it can do on your machine

Read from SKILL.md and the folder at commit 6fa5faf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • mcp__lsp__blast_radius
    • mcp__lsp__preview_edit
    • mcp__lsp__simulate_chain
    • mcp__lsp__get_diagnostics
    • mcp__lsp__run_build
    • mcp__lsp__run_tests
    • mcp__lsp__get_tests_for_file
    • mcp__lsp__apply_edit
    • mcp__lsp__replace_symbol_body
    • mcp__lsp__open_document

    …and 3 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)

    From compatibility in the SKILL.md frontmatter.

Context cost

Lsp Refactor loads about 2.8k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 707 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from blackwell-systems/agent-lsp at commit 6fa5faf, republished under its MIT licence (© blackwell-systems). 707 words, ~2,756 tokens.

Download SKILL.mdSave it as .claude/skills/lsp-refactor/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
lsp-refactor
description
End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests. Inlines lsp-impact + lsp-safe-edit + lsp-verify + lsp-test-correlation into one coordinated sequence.
allowed-tools
mcp__lsp__blast_radius, mcp__lsp__preview_edit, mcp__lsp__simulate_chain, mcp__lsp__get_diagnostics, mcp__lsp__run_build, mcp__lsp__run_tests, mcp__lsp__get_tests_for_file, mcp__lsp__apply_edit, mcp__lsp__replace_symbol_body, mcp__lsp__open_document, mcp__lsp__format_document, Edit, Write
compatibility
Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp)
argument-hint
[symbol-or-file] [intent]
user-invocable
true
license
MIT
metadata.required-capabilities
referencesProvider
metadata.optional-capabilities
documentFormattingProvider

Requires the agent-lsp MCP server.

lsp-refactor

End-to-end safe refactor workflow. Sequences blast-radius analysis, speculative preview, disk apply, build verification, and targeted test execution in one coordinated pass.

This skill does NOT replace lsp-safe-edit or lsp-impact.

  • lsp-safe-edit wraps a single edit with before/after diagnostic comparison — use it when you need to make one targeted change with careful error diffing.
  • lsp-impact is read-only blast-radius analysis — use it when you want to understand scope before deciding whether to proceed.
  • lsp-refactor sequences ALL four workflows (lsp-impact → lsp-safe-edit → lsp-verify → lsp-test-correlation) in order. Use it when you know your target and intent up front and want the complete workflow without switching skills.

Input

  • target: symbol name in dot notation (e.g. "codec.Encode", "Buffer.Reset") OR file path (e.g. "internal/lsp/client.go")
  • intent: description of the change to make (e.g. "rename to ParseConfigV2", "add a second parameter timeout time.Duration")
  • workspace_root: absolute path to the workspace root

Phase 1 — Blast-Radius Analysis (inlined from lsp-impact)

This phase is mandatory. Do not skip it, even for "small" refactors.

Call mcp__lsp__blast_radius with changed_files set to the file containing the target symbol. If the user provided a file path directly, use it. If the user provided a symbol name, resolve the file first (e.g. via mcp__lsp__go_to_symbol).

mcp__lsp__blast_radius({
  "changed_files": ["/abs/path/to/file"],
  "include_transitive": false
})

Returns:

  • affected_symbols — exported symbols with reference counts
  • test_callers — test files and enclosing test function names
  • non_test_callers — production call sites

Display:

  • Affected symbol count
  • Test callers (each with enclosing test function name)
  • Non-test callers (each with file:line)
  • Total reference count

High blast-radius gate: If the total reference count exceeds 20, STOP and ask the user to confirm before continuing:

High blast radius: N callers found. Proceed with refactor? [y/n]

If the user answers "n", abort. Do not proceed to Phase 2.


Phase 2 — Speculative Preview (inlined from lsp-safe-edit)

Only reached if Phase 1 blast radius is acceptable (≤ 20 callers, or user confirmed).

2a — Open file and capture baseline diagnostics
mcp__lsp__open_document({ "file_path": "/abs/path/to/file", "language_id": "go" })
mcp__lsp__get_diagnostics({ "file_path": "/abs/path/to/file" })

Store baseline diagnostics as BEFORE.

2b — Speculative simulation

For a single-file change: use preview_edit:

mcp__lsp__preview_edit({
  "file_path": "/abs/path/to/file",
  "start_line": <N>,
  "start_column": <col>,
  "end_line": <N>,
  "end_column": <col>,
  "new_text": "<replacement text>"
})

For a multi-file change (e.g. rename + call site updates): use simulate_chain:

mcp__lsp__simulate_chain({
  "workspace_root": "/abs/path/to/workspace",
  "language": "go",
  "edits": [
    {
      "file_path": "/abs/path/to/file.go",
      "start_line": <N>, "start_column": <col>,
      "end_line": <N>,   "end_column": <col>,
      "new_text": "<replacement>"
    }
    // additional dependent edits ...
  ]
})
2c — Evaluate simulation result

Display the speculative result using the Diagnostic Diff Output Format from references/patterns.md.

Decision:

net_deltaAction
≤ 0Safe. Proceed to Phase 3.
> 0Abort. Report introduced errors. Do NOT apply to disk.

If net_delta > 0, stop and show the full list of errors the simulation introduced. Do not proceed to Phase 3.


Show full SKILL.md (329 more words)Show less

Phase 3 — Apply to Disk

Only reached if Phase 2 net_delta <= 0.

Apply the change using the Edit or Write tool. When the edit targets a complete function or method body, mcp__lsp__replace_symbol_body is an alternative that resolves the symbol by name and replaces its full range without position math:

mcp__lsp__replace_symbol_body({
  "file_path": "/abs/path/to/file",
  "symbol_path": "Package.Function",
  "new_body": "func Function() error {\n\treturn nil\n}"
})

For edits computed by simulation, mcp__lsp__apply_edit may be used directly if the simulation returned an edit object:

Edit(file_path: "/abs/path/to/file", old_string: "...", new_string: "...")

For multi-file changes, apply each file's edits before moving to Phase 4. If any individual apply fails, stop and report before applying remaining files.

After applying, format the changed file(s):

mcp__lsp__format_document({ "file_path": "/abs/path/to/file" })

Apply the returned TextEdit[] via mcp__lsp__apply_edit if non-empty.


Phase 4 — Build Verification (inlined from lsp-verify)

Run in this order — LSP diagnostics first, then the compiler build:

mcp__lsp__get_diagnostics({ "file_path": "/abs/path/to/file" })
mcp__lsp__run_build({ "workspace_root": "/abs/path/to/workspace" })

Decision:

ResultAction
Diagnostics clean, build passesProceed to Phase 5.
Diagnostics show new errorsDisplay errors and stop. Do not proceed to Phase 5.
Build failsDisplay build output and stop. Do not proceed to Phase 5.

If build fails, report the full build error output and stop. Test execution is skipped until build passes.


Phase 5 — Run Affected Tests (inlined from lsp-test-correlation)

For each file changed in Phase 3, find correlated test files:

mcp__lsp__get_tests_for_file({ "file_path": "/abs/path/to/changed/file" })

Deduplicate the resulting test files if multiple source files were changed. Run only the correlated test files:

mcp__lsp__run_tests({ "workspace_root": "/abs/path/to/workspace", "test_files": [...] })

If no correlated test files are found: note "No test correlation found — run full suite manually to confirm." Do not attempt to run ./... automatically.


Abort Conditions

The following conditions abort the workflow immediately. Each abort displays the relevant output before stopping.

  1. Phase 1: blast radius > 20 callers AND user does not confirm → abort
  2. Phase 2: net_delta > 0 (simulation introduced errors) → abort, show errors
  3. Phase 4: build fails → abort, show build output
  4. Any phase: LSP tool returns an unexpected error → abort, report tool output verbatim

Output Format

After completing all phases, produce this structured report:

## lsp-refactor Complete

### Phase 1 — Blast Radius
Affected symbols: N
Test callers: M  (list each with enclosing test function)
Non-test callers: K

### Phase 2 — Speculative Preview
[Diagnostic Diff Output Format from patterns.md]
net_delta: 0 → safe to apply

### Phase 3 — Applied
Files changed: [list]

### Phase 4 — Build Verification
Diagnostics: N errors (0 new)
Build: PASS

### Phase 5 — Test Results
Test files run: [list]
Result: PASS / FAIL

If the workflow aborted at a phase, report only the phases completed and the abort reason:

## lsp-refactor Aborted at Phase 2

### Phase 1 — Blast Radius
...

### Phase 2 — Speculative Preview
ABORTED: net_delta: +2 (errors introduced)
Errors:
- file.go:34 — undefined: NewType
- file.go:51 — cannot use int as string

Example

Goal: rename exported function ParseConfig → ParseConfigV2 in pkg/config

Phase 1 — Blast Radius
  blast_radius(changed_files=["pkg/config/parser.go"])
  → affected_symbols: 1 (ParseConfig)
  → non_test_callers: 3 (cmd/main.go, internal/app.go, internal/loader.go)
  → test_callers: 1 (pkg/config/parser_test.go — TestParseConfig)
  → total references: 4 — within threshold, proceeding

Phase 2 — Speculative Preview
  open_document(file_path="pkg/config/parser.go")
  get_diagnostics → BEFORE: 0 errors
  simulate_chain(edits: [parser.go rename + 3 call-site updates])
  → cumulative_delta: 0 → safe to apply

Phase 3 — Applied
  Edit parser.go: func ParseConfig → func ParseConfigV2
  Edit cmd/main.go, internal/app.go, internal/loader.go: update call sites
  format_document(parser.go)

Phase 4 — Build Verification
  get_diagnostics → 0 errors
  run_build → success

Phase 5 — Test Results
  get_tests_for_file(parser.go) → pkg/config/parser_test.go
  run_tests(test_files=["pkg/config/parser_test.go"]) → PASS

## lsp-refactor Complete
...

© blackwell-systems, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/lsp-refactor of blackwell-systems/agent-lsp.

  • SKILL.md
  • references/patterns.md

Open the folder on GitHubat commit 6fa5faf

Compare with similar skills

Lsp Refactor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Lsp Refactor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lsp Refactor this skillblackwell-systems/agent-lsp159—~2.8kAutomated safety check: PassMIT
ast-grep Structural Searchcode-yeongyu/oh-my-openagent70k—~3.3kAutomated safety check: PassMIT
Graph-Guided Safe Refactoringtirth8205/code-review-graph32k1 repos~332Automated safety check: PassMIT
Code Review Graph Navigatorhandsontable/handsontable22k—~939Automated safety check: PassCustom licence
Architecturektnyt/cclsp675—~1.6kAutomated safety check: PassMIT
Typed Dependencies with fp-go EffectIBM/fp-go2k—~4.3kAutomated safety check: PassApache-2.0

Similar skills

  • ast-grep Structural Search

    code-yeongyu/oh-my-openagent

    Searches and rewrites code by syntax-tree shape across 25 languages with ast-grep, for codemods, structural queries and YAML lint rules, using a Python wrapper script.

    70k GitHub stars~3.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Graph-Guided Safe Refactoring

    tirth8205/code-review-graph

    Plans a refactor from a code dependency graph, previews renames before applying them and checks that the final impact matches the plan.

    32k GitHub starsUsed in 1 repo~332 tokens
    DevelopmentAuto-check passed
  • Code Review Graph Navigator

    handsontable/handsontable

    Queries a pre-built, Tree-sitter-based code graph of the whole monorepo instead of grepping call chains, for exploring, debugging, refactoring or reviewing code.

    22k GitHub stars~939 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Architecture

    ktnyt/cclsp

    Guides the design of safely disposable code through contracts (traits/interfaces) and dependency inversion.

    675 GitHub stars~1.6k tokensUpdated 7 mo ago
    DevelopmentAuto-check passed
  • Teaches an agent to write fp-go v2 services with the Effect type, carrying dependencies in its type parameter instead of in context.Context or parameters.

    2k GitHub stars~4.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Filescope MCP

    admica/FileScopeMCP

    Codebase intelligence via FileScopeMCP — symbol lookup, dependency mapping, importance ranking, and semantic search.

    302 GitHub stars~1.7k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed

More from blackwell-systems/agent-lsp

All 24 skills in this repo
  • Lsp Dead Code

    blackwell-systems/agent-lsp

    Enumerate exported symbols in a file and surface those with zero references across the workspace.

    159 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Lsp Edit Export

    blackwell-systems/agent-lsp

    Safe workflow for editing exported symbols or public APIs. An agent skill from blackwell-systems/agent-lsp.

    159 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Lsp Fix All

    blackwell-systems/agent-lsp

    Apply available quick-fix code actions for all current diagnostics in a file, one at a time with re-collection between each fix.

    159 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Lsp Generate

    blackwell-systems/agent-lsp

    Trigger language server code generation — implement interface stubs, generate test skeletons, add missing methods, generate mock types.

    159 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Lsp Impact

    blackwell-systems/agent-lsp

    Blast-radius analysis for a symbol or file — shows all callers, type supertypes/subtypes, and reference count before you change it.

    159 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Lsp Rename

    blackwell-systems/agent-lsp

    Two-phase safe rename across the entire workspace. An agent skill from blackwell-systems/agent-lsp.

    159 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Lsp Refactor

What does Lsp Refactor do?

End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests. Lsp Refactor is an agent skill from blackwell-systems/agent-lsp. End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests.

When should I use Lsp Refactor?

Lsp Refactor fits situations like: tasks that involve Refactoring.

How do I install Lsp Refactor in Claude Code?

Run `npx skills add blackwell-systems/agent-lsp --skill lsp-refactor -a claude-code`. Or copy the skill folder (skills/lsp-refactor in blackwell-systems/agent-lsp) into .claude/skills/lsp-refactor in your project. Claude Code loads it when a task matches its description.

How do I install Lsp Refactor in Codex?

Run `npx skills add blackwell-systems/agent-lsp --skill lsp-refactor -a codex`. Or copy the skill folder (skills/lsp-refactor in blackwell-systems/agent-lsp) into .agents/skills/lsp-refactor in your project. Codex loads it when a task matches its description.

Can I use Lsp Refactor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add blackwell-systems/agent-lsp --skill lsp-refactor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lsp-refactor, .gemini/skills/lsp-refactor, .github/skills/lsp-refactor and .opencode/skills/lsp-refactor in your project.

What does Lsp Refactor need to run?

SKILL.md names no scripts, command-line tools or credentials: Lsp Refactor is instructions for the agent only. Its frontmatter pre-approves these tools: mcp__lsp__blast_radius, mcp__lsp__preview_edit, mcp__lsp__simulate_chain, mcp__lsp__get_diagnostics, mcp__lsp__run_build, mcp__lsp__run_tests, mcp__lsp__get_tests_for_file, mcp__lsp__apply_edit, mcp__lsp__replace_symbol_body, mcp__lsp__open_document, mcp__lsp__format_document, Edit, Write. Compatibility (from SKILL.md): Requires the agent-lsp MCP server (github.com/blackwell-systems/agent-lsp).

Does Lsp Refactor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Lsp Refactor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Lsp Refactor use?

Lsp Refactor is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Lsp Refactor use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 499 tokens, read only when the agent opens those files.

What are the alternatives to Lsp Refactor?

Skills that share tags, products or a category with Lsp Refactor: ast-grep Structural Search (code-yeongyu/oh-my-openagent, 70k stars), Graph-Guided Safe Refactoring (tirth8205/code-review-graph, 32k stars), Code Review Graph Navigator (handsontable/handsontable, 22k stars) and Architecture (ktnyt/cclsp, 675 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lsp Refactor?

blackwell-systems (a GitHub user) maintains it in blackwell-systems/agent-lsp, which has 159 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 7, 2026.

Source: blackwell-systems/agent-lsp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.