Back to Skills

lsp-onboard

blackwell-systems
Updated 6 days ago
1 views
53
2
53
View on GitHub
Metatestingdesign

About

The lsp-onboard skill performs initial project analysis using LSP tools to detect build systems, test runners, entry points, and architectural patterns. It creates a structured project profile for the agent to reference throughout the session, making it essential for first-time onboarding. This skill requires the agent-lsp MCP server and focuses on document symbol analysis.

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-onboard

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

Documentation

lsp-onboard

First-session project onboarding. Run this when connecting to a new project for the first time. Explores the codebase via LSP tools and produces a structured project profile: languages, build system, test runner, entry points, key types, and architecture patterns.

The profile helps the agent make better decisions throughout the session without re-exploring the same ground. Run once per project; skip on subsequent sessions unless the project structure has changed significantly.

When to Use

  • First time working in a new codebase
  • After major structural changes (new packages, build system migration)
  • When the agent seems confused about project conventions

Do NOT run this on every session. It's a one-time exploration.


Step 1: Detect languages and servers

mcp__lsp__detect_lsp_servers({ "workspace_dir": "<root>" })

Record which languages are present and which servers are available. This tells you what the project is built with.

Step 2: Initialize and verify

mcp__lsp__start_lsp({ "root_dir": "<root>" })

Wait for initialization. Call list_symbols on one key file to verify the workspace is indexed.

Step 3: Identify entry points

Search for common entry point patterns:

mcp__lsp__find_symbol({ "query": "main" })
mcp__lsp__find_symbol({ "query": "Run" })
mcp__lsp__find_symbol({ "query": "Handler" })

Record entry points with their file paths. These are where execution starts.

Step 4: Map the package structure

For each top-level directory that contains source files, call list_symbols on one representative file:

mcp__lsp__list_symbols({ "file_path": "<dir>/main.go", "format": "outline" })

Build a mental map: which packages exist, what they export, how they relate. Cap at 10 packages to avoid spending too long.

Step 5: Detect build and test commands

mcp__lsp__run_build({ "workspace_dir": "<root>" })
mcp__lsp__run_tests({ "workspace_dir": "<root>" })

Record whether build and tests pass, and what language/toolchain was detected. Note the test count and any failures.

Step 6: Identify hotspots

Pick the 3-5 files that appear most central (entry points, shared types, core logic). For each:

mcp__lsp__blast_radius({ "changed_files": ["<file>"] })

Files with the most non-test callers are the architectural hotspots. Changes to these files have the widest blast radius.

Step 7: Check for diagnostics

mcp__lsp__get_diagnostics({ "file_path": "<entry-point>" })

Note any pre-existing errors or warnings. This sets the baseline so the agent knows what was broken before it started.

Step 8: Produce the project profile

Write a structured summary:

## Project Profile: <name>

### Languages
- Go (primary), TypeScript (frontend)

### Build & Test
- Build: `go build ./...` (passes)
- Test: `go test ./...` (142 tests, 0 failures)

### Entry Points
- cmd/server/main.go:15 (main)
- cmd/worker/main.go:22 (main)

### Package Map
- cmd/server/     (HTTP server, routing)
- cmd/worker/     (background job processor)
- internal/api/   (handler layer)
- internal/store/ (database access)
- internal/types/ (shared type definitions)

### Hotspots (most referenced)
1. internal/types/models.go: 85 callers across 12 files
2. internal/store/queries.go: 42 callers across 8 files
3. internal/api/handlers.go: 31 callers across 6 files

### Pre-existing Issues
- 0 errors, 2 warnings (unused imports in test files)

### Conventions Observed
- Error wrapping with fmt.Errorf
- Table-driven tests
- Handler functions return (result, error)

This profile is for the agent's reference during the session. It does not need to be saved to disk; it lives in the conversation context.


Notes

  • Cap exploration at 10 packages and 5 hotspot files to keep the onboarding under 2 minutes
  • If blast_radius is slow (large files), skip the hotspot step and note "hotspot analysis skipped (large codebase)"
  • The profile is advisory; update it mentally as you learn more during the session

GitHub Repository

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

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill