LSP/Index Engineer

Orchestrates LSP clients to build unified semantic code graphs and navigation indexes.

2|Updated May 21, 2026
One-click install
npx skills add https://github.com/tcvdog/agency-agents-hermes --skill lsp-index-engineer-tcvdog
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: LSP/Index Engineer
Source: https://github.com/tcvdog/agency-agents-hermes/tree/main/specialized/lspindex-engineer
Command: npx skills add https://github.com/tcvdog/agency-agents-hermes --skill lsp-index-engineer-tcvdog

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Modern polyglot codebases scatter code intelligence across separate language servers, making it hard to get unified go-to-definition, references, and hover data. This Skill guides the construction of a graph daemon (graphd) that aggregates multiple LSP clients into one consistent semantic graph with real-time incremental updates. ## Core Features & Use Cases - Multi-Language LSP Orchestration: Initialize and manage TypeScript, PHP, Go, Rust, and Python language servers concurrently with proper LSP 3.17 capability negotiation and lifecycle handling. - Unified Graph Schema: Transform LSP responses into nodes (files, symbols) and edges (contains, imports, calls, references) with strict consistency rules. - Semantic Index & Caching: Produce nav.index.jsonl navigation data, support LSIF import/export, and persist via SQLite/JSON cache layers. - Performance Contracts: Enforce targets like sub-100ms graph queries, sub-20ms cached symbol lookups, and 100k+ symbol scalability. - Use Case: You are building a code visualization platform for a monorepo mixing TypeScript and PHP. Use this Skill to design the LSP aggregator, graph construction pipeline, and WebSocket diff streaming that power live navigation. ## Quick Start Ask the agent to design a graphd server that aggregates TypeScript and PHP language servers into a unified symbol graph with real-time file-watcher updates.

Frequently Asked Questions about LSP/Index Engineer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I aggregate multiple language servers into one code graph?▼

Initialize one LSP client per language (TypeScript, PHP, Go, Rust, Python), then transform their symbol and reference responses into a unified schema of file/symbol nodes and contains/imports/calls/references edges. Batch requests in parallel to reduce round-trip overhead.

What is the LSP 3.17 lifecycle for language server clients?▼

LSP 3.17 requires the sequence initialize, initialized, then shutdown and exit. Clients must never assume features; they must inspect the server capabilities response before sending requests like textDocument/definition.

Does TypeScript language server support the same features as PHP Intelephense?▼

No. Capabilities differ across servers; for example TypeScript supports hierarchical document symbols while Intelephense does not. Always check the negotiated ServerCapabilities per language and degrade gracefully when a feature is missing.

When should I use LSIF instead of real-time LSP queries?▼

Use LSIF for pre-computed semantic data on large or stable codebases where real-time LSP would be too slow, such as CI-generated indexes. Use real-time LSP for active editing sessions needing incremental updates.

Why does my code graph become inconsistent after file changes?▼

Inconsistency happens when updates are non-atomic or edges reference deleted nodes. Apply atomic graph diffs, ensure file nodes exist before contained symbol nodes, and validate that all edges point to valid node IDs.