Claude Opus 4.6: Fabricates package names and skips CLAUDE.md session rules

Resolved 💬 3 comments Opened Mar 29, 2026 by thecatfix Closed Apr 2, 2026

Summary

During a troubleshooting session for the MCP Filesystem server (Claude desktop app), Claude Opus 4.6 (1M context) exhibited multiple compliance failures against user-defined CLAUDE.md rules:

  1. Fabricated a package name and presented it as a runnable install command
  2. Skipped mandatory session initialization (read rules → confirm → check in)
  3. Did not create a tracking issue (beads) before starting work
  4. Did not search memory (IronMind) before deep investigation

Reproduction

Model: Claude Opus 4.6 (1M context)
Interface: Claude Code CLI
Date: 2026-03-29
Platform: macOS (Darwin 25.4.0)

Steps

  1. Configure CLAUDE.md with explicit rules including: "NEVER fabricate technical explanations. If you don't know, say so and research."
  2. Start a new session
  3. Paste MCP Filesystem server crash logs and ask "why does this happen"
  4. When the model suggests a fix involving an npm/bun package install, run it

Expected

  • Model follows session init protocol (reads rules, confirms, checks in)
  • Model says "I don't know the package name" and searches before suggesting a command
  • Model creates a tracking issue before starting work

Actual

  • Model skipped all session init steps
  • Model suggested: bun install -g @anthropic-ai/mcp-filesystem-server
  • That package does not exist — returns 404 from npm registry
  • The real package is @modelcontextprotocol/server-filesystem, installed as a built-in Claude desktop extension (not user-installable)
  • Model only admitted "That package name was a guess" after the user ran it and it failed

Impact

  • User time wasted on a command that could never succeed
  • Trust erosion — the model presented fabricated information with full confidence
  • Recurring pattern — the user's CLAUDE.md explicitly notes this as "the #1 recurring violation", meaning it has been corrected before and the behavior persists

Key Detail: Fabrication vs Uncertainty

The model did not say "I think the package might be called..." or "let me verify the name first." It wrote a concrete bun install -g command with a fabricated scope and package name (@anthropic-ai/mcp-filesystem-server) that looked authoritative. There was zero signal to the user that this was uncertain.

Session Rule Violations

The user's CLAUDE.md defines a mandatory session start sequence:

  1. Read rules → 2. Confirm understanding → 3. Check in with user → 4. Search IronMind before investigation

None of these were followed. The model jumped directly to answering the first question.

What Would Help

  • Better calibration on package names / registry lookups — if the model hasn't seen the exact package in training data, it should say so rather than generating a plausible-sounding name
  • Stronger adherence to CLAUDE.md session init protocols — these are explicitly defined as "non-negotiable" and "every violation gets a formal report"
  • When CLAUDE.md says "NEVER fabricate", treat that as a hard constraint, not a suggestion

Environment

  • Claude Code CLI on macOS
  • Node managed via fnm (ephemeral multishell paths — related to the original debugging question)
  • User has bun, npm/fnm, deno installed

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗