Zurück zu Fähigkeiten

lsp-fix-all

blackwell-systems
Aktualisiert 5 days ago
53
2
53
Auf GitHub ansehen
Designaiautomationdesign

Über

Die lsp-fix-all-Fähigkeit wendet automatisch alle verfügbaren Quick-Fix-Codeaktionen für Diagnosen in einer Datei an, verarbeitet sie sequenziell und sammelt zwischen den Korrekturen erneut Diagnosen ein, um Zeilennummernverschiebungen zu berücksichtigen. Sie ist darauf ausgelegt, Fehler und Warnungen massenhaft zu beheben, die der Sprachserver automatisch korrigieren kann, und unterscheidet sich dadurch von bearbeitungsbasierten Fähigkeiten. Dies erfordert den agent-lsp-MCP-Server mit der codeActionProvider-Funktionalität.

Schnellinstallation

Claude Code

Empfohlen
Primär
npx skills add blackwell-systems/agent-lsp -a claude-code
Plugin-BefehlAlternativ
/plugin add https://github.com/blackwell-systems/agent-lsp
Git CloneAlternativ
git clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-fix-all

Kopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren

Dokumentation

Requires the agent-lsp MCP server.

lsp-fix-all

Apply available quick-fix code actions for all current diagnostics in a file, one at a time, re-collecting diagnostics between each fix because line numbers shift after each application.

Important distinction from /lsp-safe-edit: This skill fixes pre-existing diagnostics in a file — errors and warnings that already exist before any edit session begins. /lsp-safe-edit has a code-action step (Step 7) for fixing errors introduced by a specific edit you just made. Use this skill for systematic bulk-fixing of existing issues, independent of any edit session.

When to use / not use

Use this skill when:

  • A file has accumulated errors or warnings you want to resolve automatically
  • You want to clean up a file before starting new work
  • You want to apply all available language-server quick-fixes in bulk

Do NOT use this skill when:

  • You just made an edit and want to fix newly introduced errors — use /lsp-safe-edit
  • You want to apply structural refactors — this skill applies quick-fixes only (see filtering below)
  • The file has zero diagnostics (the skill will report clean and stop)

Input

  • file_path: Absolute path to the file to fix.

Workflow

Step 1 — Open and collect initial diagnostics

Call mcp__lsp__open_document with the target file path to ensure it is loaded in the language server. Then call mcp__lsp__get_diagnostics to retrieve all current diagnostics.

If zero diagnostics are returned: report "No diagnostics found — file is clean." and stop. No further steps are needed.

Record the initial count of errors and warnings for the summary output.

Step 2 — Classify and filter code actions

For EACH diagnostic (process one at a time, not in batch):

  1. Call mcp__lsp__suggest_fixes at the diagnostic's position/range.
  2. Filter the returned actions to quick-fix kind only.
  3. Skip any diagnostic for which no applicable quick-fix exists — note it in the summary.

Decision gate — which code actions to apply:

Action kindApply?
quickfixYES
quickfix.*YES
refactorNO — structural change
refactor.extractNO — structural change
refactor.inlineNO — structural change
source.organizeImportsYES — safe formatting
source.* (others)NO — skip unless organizeImports
(no kind / empty)NO — unknown, skip

A code action qualifies if: kind == "quickfix", OR kind starts with "quickfix.", OR kind == "source.organizeImports".

Reject actions whose kind is "refactor", starts with "refactor.", or has no kind field at all.

Step 3 — Apply one fix and re-collect (the core loop)

This is the critical correctness constraint: never apply more than one fix per iteration. After each apply_edit call, line numbers in the file shift. Always re-call get_diagnostics before processing the next diagnostic.

Loop:

iteration = 0
max_iterations = 50

while iteration < max_iterations:
    diagnostics = mcp__lsp__get_diagnostics(file_path)
    if diagnostics is empty: break

    for each diagnostic in diagnostics:
        actions = mcp__lsp__suggest_fixes(diagnostic.range)
        applicable = filter to quickfix / source.organizeImports kinds (see Step 2)
        if applicable is not empty:
            apply the first applicable action via mcp__lsp__apply_edit
            record: (line, message, action title) in "Fixed" list
            iteration += 1
            break  # restart the outer loop — line numbers have shifted

    if no diagnostic in this pass had an applicable quick-fix:
        break  # no progress possible — exit loop

Exit the loop when:

  • The diagnostics list is empty, OR
  • No remaining diagnostic has an applicable quick-fix action, OR
  • The iteration counter reaches 50 (safety guard against edge cases where a fix introduces a new fixable diagnostic, preventing infinite loops)

If apply_edit returns an error: stop the loop immediately and report the failure in the summary. Do not attempt further fixes.

Step 4 — Verify and format

After the loop exits:

  1. Call mcp__lsp__get_diagnostics one final time to capture the post-fix state.
  2. For any remaining diagnostics that had no applicable quick-fix, list them in the "Skipped" section with explanation.
  3. Call mcp__lsp__format_document to clean up any indentation drift introduced by the applied edits.

Output format

## lsp-fix-all Summary

File: /path/to/file.go
Initial diagnostics: N errors, M warnings
Fixes applied: K
Remaining (no auto-fix available): J

### Fixed
- line X: <message> → applied: <action title>

### Skipped (no quick-fix available)
- line Y: <message>

If apply_edit failed mid-loop, append:

### Loop stopped
- apply_edit returned error on line Z: <error message>
- Fixes applied before failure: K

Safety rules

  • Never apply more than one code action per loop iteration
  • Always re-collect diagnostics after each apply_edit before the next fix
  • Never apply refactor or structural code actions — quick-fix and source.organizeImports only
  • If apply_edit returns an error, stop the loop and report the failure; do not continue
  • Maximum iterations: 50 (safety guard against infinite loops in edge cases where a fix introduces a new fixable diagnostic)
  • Do not use execute_commandapply_edit is sufficient for all quick-fixes

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.

GitHub Repository

blackwell-systems/agent-lsp
Pfad: skills/lsp-fix-all
0
agentskillsai-agentsai-toolingclaudeclaude-codecode-intelligence

Verwandte Skills

executing-plans

Design

Verwenden Sie die Fähigkeit "executing-plans", wenn Sie einen vollständigen Implementierungsplan zur Ausführung in kontrollierten Batches mit Überprüfungspunkten vorliegen haben. Sie lädt den Plan und überprüft ihn kritisch, führt dann Aufgaben in kleinen Batches (standardmäßig 3 Aufgaben) aus und meldet den Fortschritt zwischen jedem Batch zur Überprüfung durch den Architekten. Dies gewährleistet eine systematische Implementierung mit integrierten Qualitätskontrollpunkten.

Skill ansehen

requesting-code-review

Design

Diese Fähigkeit sendet einen Unteragenten für Code-Review, um Codeänderungen anhand der Anforderungen zu analysieren, bevor fortgefahren wird. Sie sollte nach dem Abschließen von Aufgaben, der Implementierung größerer Funktionen oder vor dem Zusammenführen in den Hauptzweig verwendet werden. Die Überprüfung hilft dabei, Probleme frühzeitig zu erkennen, indem die aktuelle Implementierung mit dem ursprünglichen Plan verglichen wird.

Skill ansehen

connect-mcp-server

Design

Diese Fähigkeit bietet Entwicklern eine umfassende Anleitung, um MCP-Server über HTTP-, stdio- oder SSE-Transports mit Claude Code zu verbinden. Sie behandelt Installation, Konfiguration, Authentifizierung und Sicherheit für die Integration externer Dienste wie GitHub, Notion und benutzerdefinierter APIs. Nutzen Sie sie beim Einrichten von MCP-Integrationen, bei der Konfiguration externer Tools oder bei der Arbeit mit Claude's Model Context Protocol.

Skill ansehen

web-cli-teleport

Design

Diese Fähigkeit unterstützt Entwickler bei der Wahl zwischen Claude Code Web- und CLI-Schnittstellen basierend auf Aufgabenanalysen und ermöglicht nahtloses Session-Teleporting zwischen diesen Umgebungen. Sie optimiert den Workflow, indem sie den Sitzungsstatus und Kontext beim Wechsel zwischen Web, CLI oder Mobilgeräten verwaltet. Nutzen Sie sie für komplexe Projekte, die in verschiedenen Phasen unterschiedliche Werkzeuge erfordern.

Skill ansehen