Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
antonbabenko avatar

Code Intelligence

  • 52 installs
  • 31 repo stars
  • Updated July 27, 2026
  • antonbabenko/agent-plugins

code-intelligence is a Claude Code skill that guides an agent in choosing between language-server, exact-text, and semantic search when navigating or refactoring code.

About

This skill is model-triggered guidance for navigating and refactoring code with a language server across any language. It tells an agent when to use semantic LSP calls versus exact-text ripgrep versus fuzzy semantic search, how to anchor LSP calls by position, and how to gate empty results before falling back. It also requires disclosing any tool substitution on the first line of the response.

  • Guides choosing between LSP, ripgrep, and semantic search by task, not habit
  • Anchors LSP calls by position and gates degraded/empty results with a three-part check
  • Requires disclosing any tool substitution on the first line of the response

Code Intelligence by the numbers

  • 52 all-time installs (skills.sh)
  • Ranked #577 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

code-intelligence capabilities & compatibility

Capabilities
refactoring · code navigation · code review
Use cases
refactoring · code review
From the docs

What code-intelligence says it does

Pick the search tool by task, not by habit.
SKILL.md
State any tool substitution OR omission on the FIRST line of the response, not in a later summary
SKILL.md
npx skills add https://github.com/antonbabenko/agent-plugins --skill code-intelligence

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs52
repo stars31
Last updatedJuly 27, 2026
Repositoryantonbabenko/agent-plugins

What it does

Choose the right code-navigation tool (LSP vs ripgrep vs semantic search) and gate degraded results when refactoring code.

Who is it for?

Deciding which search tool to use for symbol relationships, exact text, or fuzzy discovery

Skip if: Using LSP for counts or completeness claims, or passing a bare symbol name and expecting resolution

When should I use this skill?

Navigating or refactoring code and choosing between LSP, ripgrep, and semantic search

What you get

The right search tool is chosen by task, empty results are properly gated, and any substitution is disclosed up front.

  • Guidance on tool choice and disclosure of any substitution

By the numbers

  • three-part degradation gate before a text fallback is warranted

Files

SKILL.mdMarkdownGitHub ↗

Code Intelligence

Pick the search tool by task, not by habit. Generic and language-agnostic; domain skills extend it with server capability matrices and ecosystem prerequisites - for example the terraform-skill plugin (same marketplace) owns the terraform-ls capability matrix and Terraform setup. It is model-triggered guidance, not enforcement.

Tool Precedence

GoalUseTradeoff
Symbol relationships: definition, references, call sites, rename safetyLanguage server (LSP) at a positionNeeds a running server + indexed workspace
Exact text, known name, exhaustive enumeration, config/value filesrg then ReadNo semantic scope; matches strings in comments too
Conceptual / fuzzy / "where might this live" / cross-repo discoveryA semantic/neural search tool, if the host provides oneNot exact; never use for counts or completeness claims

Detail: Precedence Table, When LSP Is Wrong.

Calling the LSP

  • DO call at a position (file:line:character). Anchor the position with a

text search for a known occurrence first.

  • DON'T pass a bare symbol name and expect resolution. A name-only call that

returns empty is a usage defect, not server failure.

  • DO Read the returned locations for source text; LSP returns locations and

symbols, not the lines.

  • DO retry once on a cold start: the first call after launch may return empty

while the server indexes.

  • DO prefer the server's own operation when it advertises it: use rename /

prepareRename for renames and call hierarchy for callers - they carry language-specific semantics a manual pass misses.

  • DON'T report an unsupported operation as a finding. When the server lacks

one, redirect: findReferences (then filter to call sites) instead of call hierarchy; enumerate references then hand-edit instead of a rename provider.

Detail: Position Anchoring, Unsupported Operations.

Degradation Gate

Two distinct cases:

  • No LSP at all (host exposes no language-server tool, or the server fails

to start): that IS unavailability. Disclose it on the first line (see below) and use text search. The gate does not apply - there is nothing to gate.

  • LSP callable but a position-anchored call returns empty: do NOT conclude

"unavailable" yet. Pass ALL three: 1. documentSymbol on an in-scope file returns symbols -> server responsive (responsiveness only, NOT proof of complete reference coverage). 2. The failing call was position-anchored (not symbol-name-only). 3. That anchored call still returned empty after a cold-start retry.

Only after the three-part case passes is a disclosed text fallback warranted.

Detail: Degradation Gate.

Disclose Substitutions

State any tool substitution OR omission on the FIRST line of the response, not in a later summary (post-hoc accounting is a rule violation):

Intended: <tool>. Actual: <tool>. Reason: <why>. Impact: <completeness/confidence>.

Detail: Disclosure Format.

Do Not Invent a Missing Tool

Before claiming a tool (e.g. rg) is shimmed, aliased, or absent, prove it: type -a <tool>, ls -l the resolved path, <tool> --version shows the expected banner. An unproven "tool is missing" claim followed by a fallback is a verification failure, not a sanctioned substitution.

If genuinely absent or aliased: prefer the LSP for semantic tasks; for exact text use the host-approved text search; git grep / grep only as an explicitly disclosed last resort, never the default substitute.

Detail: Anti-Phantom-Shim Proof.

Related skills

FAQ

How should LSP calls be made?

Anchor the call at a position (file:line:character) found via a text search first; a bare symbol name is a usage defect, not server failure.

When is a text fallback warranted?

Only after a three-part gate passes: documentSymbol returns symbols, the failing call was position-anchored, and it still returned empty after a cold-start retry.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.