Back to Skills

lsp-cross-repo

blackwell-systems
Updated 5 days ago
53
2
53
View on GitHub
Othergeneral

About

This skill performs cross-repository analysis to find all callers of a library symbol across multiple consumer codebases. It's essential when refactoring shared libraries to understand downstream usage patterns. The skill leverages LSP capabilities like references and call hierarchy providers through the agent-lsp MCP server.

Quick Install

Claude Code

Recommended
Primary
npx skills add blackwell-systems/agent-lsp -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/blackwell-systems/agent-lsp
Git CloneAlternative
git clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-cross-repo

Copy and paste this command in Claude Code to install this skill

Documentation

Requires the agent-lsp MCP server.

lsp-cross-repo

Multi-root cross-repo caller analysis for library + consumer workflows. Finds all usages of a library symbol across one or more consumer codebases in a single call.

Read-only — does not modify any files.

When to use

  • Before changing a library API: find all callers in every consumer
  • Before deleting a symbol: verify it has no cross-repo dependents
  • When a change in repo A might break repo B or C
  • Auditing how internal packages are used across services

Use /lsp-impact instead for single-repo blast-radius analysis.

Workflow

Step 1 — Initialize the primary workspace

Start the language server on the library root if not already running:

mcp__lsp__start_lsp({ "root_dir": "/path/to/library" })

Step 2 — Locate the library symbol

Find the symbol's definition to get file_path, line, and column:

mcp__lsp__find_symbol({ "query": "<symbol-name>" })

Pick the result in the library repo (not a test file).

Step 3 — Find all cross-repo references (primary step)

Call get_cross_repo_references with the symbol location and all consumer repo roots. This adds each consumer as a workspace folder, waits for indexing, runs find_references across all roots, and returns results partitioned by repo:

mcp__lsp__get_cross_repo_references({
  "symbol_file": "/abs/path/to/library/file.go",
  "line": <line>,
  "column": <column>,
  "consumer_roots": [
    "/abs/path/to/consumer-a",
    "/abs/path/to/consumer-b"
  ]
})

Returns:

  • library_references — usages within the library itself
  • consumer_references — a map of consumer-root → [file:line ...]
  • warnings — any roots that could not be indexed (check these manually)

Decision after Step 3:

ResultAction
No consumer refsSafe to change — verify warnings is empty first
Consumer refs foundRun /lsp-impact on each call site before editing
warnings non-emptyRe-add that root manually and retry Step 3

Step 4 — Callers and implementations (optional)

For a deeper look at how consumers call the symbol:

mcp__lsp__find_callers({
  "file_path": "<library-file>",
  "line": <line>,
  "column": <column>,
  "direction": "incoming"
})

For interfaces — all consumer-side implementations:

mcp__lsp__go_to_implementation({
  "file_path": "<library-file>",
  "line": <line>,
  "column": <column>
})

Output format

## Library-internal references
- file:line — brief context

## Consumer references

### /path/to/consumer-a
- file:line — brief context

### /path/to/consumer-b
- file:line — brief context

Decision guide

SituationAction
No consumer refs, warnings emptySafe to change
Consumer refs foundRun /lsp-impact on each call site before editing
warnings lists a consumer rootThat root failed indexing — check LSP logs
Consumer uses interface, not concrete typeUse go_to_implementation to find all implementors

Example

# Refactoring ParseConfig in a shared config library used by 3 services

start_lsp(root_dir="/repos/config-lib")
find_symbol(query="ParseConfig")        # find definition → file:42:6
get_cross_repo_references(
  symbol_file="/repos/config-lib/pkg/config/parser.go",
  line=42, column=6,
  consumer_roots=["/repos/api-service", "/repos/worker-service", "/repos/batch-job"]
)
# → library_references: 2
# → consumer_references: {api-service: [main.go:14, app.go:31], worker-service: [runner.go:8]}
# → warnings: []

GitHub Repository

blackwell-systems/agent-lsp
Path: skills/lsp-cross-repo
0
agentskillsai-agentsai-toolingclaudeclaude-codecode-intelligence

Related Skills

llamaguard

Other

LlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.

View skill

cost-optimization

Other

This Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.

View skill

quantizing-models-bitsandbytes

Other

This skill quantizes LLMs to 8-bit or 4-bit precision using bitsandbytes, achieving 50-75% memory reduction with minimal accuracy loss. It's ideal for running larger models on limited GPU memory or accelerating inference, supporting formats like INT8, NF4, and FP4. The skill integrates with HuggingFace Transformers and enables QLoRA training and 8-bit optimizers.

View skill

dispatching-parallel-agents

Other

This Claude Skill dispatches multiple agents to investigate and fix 3+ independent problems concurrently. It is designed for scenarios involving unrelated failures that can be resolved without shared state or dependencies. The core capability is parallel problem-solving, assigning one agent per independent problem domain to maximize efficiency.

View skill