/insights recommends features already in use and emits a fabricated install command

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Aug 1, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

The /insights report's recommendation sections ("Existing CC Features to Try", "New Ways to Use Claude Code") are ungrounded free-text synthesis. They recommend features the user already uses, and emit setup commands that do not exist.

Concrete example from my report:

MCP Servers Connect Claude to Linear, GitHub, and internal tools via Model Context Protocol... Why for you: You manage 24 ticket-completion goals and 51 feature-implementation goals monthly. An MCP Linear server would let Claude read ticket context... Run claude mcp add linear -- npx @modelcontextprotocol/server-linear --token $LINEAR_API_KEY

Two independent defects in that block.

1. It recommends something already in use, using data the pipeline itself computes.

session-meta records a uses_mcp boolean per session. Across my 906 entries, 590 (65%) have uses_mcp: true. I have used Linear MCP heavily for months. The recommender computes this field, aggregates it, and then does not consult it when deciding what to suggest — it pattern-matched my facets (heavy ticket-completion and feature-implementation goals) onto "recommend Linear MCP."

This is a grounding gap, not a model-quality problem: the signal that would suppress the recommendation is already in the input.

2. The setup command is fabricated.

$ npm view @modelcontextprotocol/server-linear version
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@modelcontextprotocol%2fserver-linear

That package does not exist. Linear's MCP is a hosted server, not an npm install, so the suggested command fails outright if run. A user newer to MCP than I am would reasonably paste it and then debug a nonexistent package.

Expected behavior

  • Recommendations consult the signals the pipeline already computes (uses_mcp, uses_task_agent, uses_web_search, uses_web_fetch, tool_counts) and suppress suggestions for capabilities already in active use.
  • Setup commands are either drawn from a fixed, verified table, or omitted in favor of a docs link. Free-text generation of install commands invites exactly this failure.

Environment

  • Claude Code 2.1.220, macOS 15 / darwin-arm64, Max subscription

Important caveat about the model

The prose in my report was generated under a model override — ANTHROPIC_DEFAULT_OPUS_MODEL=claude-haiku-4-5-20251001 — which I was using as the workaround for #70011, where the insights model call fails silently on Opus. So the severity of the fabricated command may be model-dependent, and Opus might not invent a package name.

Defect 1 is model-independent, though: no model can suppress a redundant recommendation if the uses_mcp signal is never put in front of it. And defect 2 is preventable by construction — a fixed command table cannot hallucinate regardless of which model writes the surrounding prose.

I cannot currently produce an Opus-generated report to compare, because of #70011.

View original on GitHub ↗