lci-get-context

Maps lci's get_context and context manifest code paths, invariants, and competitor comparisons.

Updated Apr 27, 2026
One-click install
npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-get-context-standardbeagle
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: lci-get-context
Source: https://github.com/standardbeagle/lci-cpp/tree/main/.agents/skills/lci-get-context
Command: npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-get-context-standardbeagle

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When working on lci's agent-facing context delivery (the MCP get_context tool and context manifest save/load), engineers need to locate the exact handlers, engine sections, and pinned Go-port behaviors without reading the whole C++ tree, and need grounded facts when comparing lci's context delivery against tools like Aider, Cursor, Serena, Cody, and Copilot. ## Core Features & Use Cases - Code map for get_context and context manifests: Entry points, ContextLookupEngine section fillers, base-63 object ID codec, manifest hydration with token budgets, and the LCF compact format, all with file:line references. - Port-trap and invariant catalog: Documents pinned stubs (fan_in, test_coverage, similar_objects), sorting/empty-list contracts, mode-vs-id-path behavior, and unwired propagator/annotator gaps so changes stay bug-for-bug compatible with the Go reference. - Probe recipes and product comparison: Ready-to-run JSON-RPC stdio probes, targeted gtest filters, and an honest axis-by-axis comparison of lci context delivery versus Aider, Cursor, Serena, Cody, and Copilot. - Use Case: You need to change how get_context renders source_excerpt without breaking golden tests; this Skill points you to attach_source_excerpt, the 12-line cap, the relevant fixtures, and the exact test filter to run. ## Quick Start Ask the AI to use the lci-get-context skill to explain how the get_context name path builds the seven-section CodeObjectContext and which pinned stubs must not change.

Frequently Asked Questions about lci-get-context

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

FAQPage Schema
How do I find the get_context implementation in the lci codebase?▼

The MCP get_context handler lives in src/mcp/handlers_get_context.cpp (handle_get_context at :333), dispatched from handlers_core.cpp:322. The rich path constructs ContextLookupEngine from src/core/context_lookup.cpp, which fills seven sections in fixed order.

How does lci get_context compare to Aider, Serena, or Copilot context delivery?▼

lci delivers per-symbol packets with bounded 12-line excerpts and bare caller/callee names, while Aider uses a PageRanked repo-map, Serena uses LSP-backed find_symbol with bodies, and Cody/Copilot use embedding retrieval. The Skill provides an axis-by-axis table with verification pointers.

Why does get_context ignore the mode parameter when I pass an object id?▼

Mode is ignored on the id path by design: a request with id plus mode returns the compact envelope, verified by the GetContextModeWithIdFallsThroughToIdPath test. The rich context/metadata/performance envelope requires name plus mode or sections.

What are the pinned Go-port stubs in ContextLookupEngine?▼

Several fields are pinned for bug-for-bug Go parity: return_values and similar_objects are always empty, fan_in and call_frequency are always 0, test_coverage is false, requires_tests is true, and performance.component_breakdown is total divided by seven.

How do context manifests save and load token-budgeted code context?▼

The MCP context tool saves a 2-5 KB manifest of file/symbol refs with expansion directives, then load hydrates refs into source plus call-graph neighbors under context.max_tokens. Token accounting is bytes divided by 4, an estimate rather than a tokenizer count.

What are the limitations of lci get_context for citation-graded questions?▼

Callers, callees, and call_tree return bare names without locations, so citation-graded questions must use the callers tool instead. Additionally there are no embeddings, several sections are pinned stubs, and the semantic annotator is never wired into the production path.