Agents lack a measured, client-compatible path to adopt code-index #571
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#571
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope (consolidated 2026-11-12)
MCP instructions, an on-demand skill and an optional shell hook are different ways to bring agents to the tools. Their actual consumption and effect on tool choice have not been measured. Installation must fit the client and preserve user-owned instructions. A scripted tool replay measures answer quality and calls, but cannot establish agent adoption.
Priority: Medium · Risk: cost · Size: M
Merged into this ticket: #560 (Optional shell translation hook)
Done
write_agent_skillincrates/cli/src/skill.rsinstalls only its own project skill path with --force for a differing copy.code-index queryis a CLI path (crates/cli/src/query.rs); the issue body’s claimed MCP query tool does not exist.Remaining
Client consumption and installation
Real-agent measurement
Optional shell hook
Acceptance
Decisions needed from the operator
rules?” — #571.--force/ refuse and show the difference only (recommended, to hold “never overwrite text the user owns”).” — #571.Suggested order
Original report
Operator decision of 2026-11-11: the rules-file feature is removed in the v0.41.49 train.
code-index initno longer writes instruction text into a repository, and therulescommand with its hook installer is gone. Reason: the written blocks overwrote or cluttered users' own agent instructions (AGENTS.md,CLAUDE.md, editor rule files) and created a mess.What remains, and what this issue is to decide:
Channels that do not touch a user's instruction files
skills/list,skills/get,skill://code-index/SKILL.md) and can be installed on disk with the explicit, opt-incode-index skill install, which writes only the skill's own directory. A skill is loaded on demand, so it carries "how to use the tools so the conclusions hold"; it does not by itself make an agent prefer the tools.querytool and thecode-index queryCLI, which reduce round trips.Open questions
rules?Measurement before any claim. None of these channels has been measured against the removed rules files. Use the agent task bench with and without each channel (server instructions only; plus skill; plus hook) and report tool-choice rate, round trips and answer correctness. An earlier lever ("shrink the envelope") was refuted by measurement; the lever that held was fewer calls.
Constraints
Analysis for the measurement (2026-11-11, on the v0.41.49 release commit). Nothing was run against a model.
What exists, measured on the installed binary
tools/list: 23 tools, 59,311 bytes, of which 33,623 bytes are description text. This is the largest fixed cost of a session and is paid by every client, with or without a skill.skills/list,skills/getandskill://code-index/SKILL.md;code-index skill installwrites only.claude/skills/code-index/SKILL.mdin the project.query. Batching is the list form ofqueryonsearch_symbols/search_textand oftargetonread_code;code-index queryis the CLI.What the existing bench can and cannot say
agent_task_benchreplays a scripted tool plan per question (60 questions over ripgrep, Flask and Dapper) and grades answers, round trips and response size. No model chooses a tool in it. It therefore cannot measure tool choice, skill loading or instruction adherence, and no adoption claim can come from it.Proposed experiment (real agent, not run)
Where clients look for on-disk skills (from vendor documentation as read by the analysis task; not checked against installed clients): Claude Code
.claude/skillsand~/.claude/skills; Codex.agents/skillsand~/.agents/skills; Cursor, Gemini CLI, Copilot and Cline each read.agents/skillsor.claude/skillsbesides their own directory. Whether any of these clients consumes the MCP-served skill automatically is not established by their documentation; it has to be observed per client version.Decisions needed
--clientand--scopechoice (recommended; Codex needs.agents/skills, which the installer does not write today) / user-level by default.--force/ refuse and show the difference only (recommended, to hold "never overwrite text the user owns").Rethink how agents are brought to use code-index, after removing the rules filesto Agents lack a measured, client-compatible path to adopt code-indexOperator decisions, 2026-11-13 (asked as concrete questions, answered in the session):
Lead's reading of the first point, to be corrected if wrong: no work goes into
code-index skill install(no default location change, no new handling of differing copies); whether that command is kept as it is or removed is not decided by these answers and is asked separately before anything is changed.That closes five of the seven questions in the body. The two that are research, not decisions ("which clients read MCP-served skills today", "how does a user learn that an on-disk copy is older") are answered as part of the measurement lane; the second one falls away if on-disk copies are not managed.
Operator decision, 2026-11-13, on the question left open above: "remove the skill cli command". The
code-index skillcommand and everything that exists only for an on-disk copy (the doctor check, the--forceadvice, the install instructions) are removed; the skill stays available as the MCP resourceskill://code-index/SKILL.mdand throughskills/list/skills/get. A lane is doing this now. Release notes will name it as a removed command.code-index skillis removed; the skill remains available as the MCP resourceskill://code-index/SKILL.mdviaskills/listandskills/get. Clients that cannot read MCP resources can save the resource text themselves.