Opus 4.6 systematically ignores in-context instructions (117 documented violations)

Resolved 💬 3 comments Opened Apr 8, 2026 by saimambayao Closed Apr 12, 2026

Bug Report: Claude Opus 4.6 Systematically Ignores In-Context Instructions

Summary

Claude Opus 4.6 (1M context) in Claude Code v2.1.96 consistently fails to follow explicit instructions that are present in its context — CLAUDE.md behavioral rules, skill definitions, memory files, and direct user prompts. This is not an edge case; it is the dominant failure mode across an entire day of heavy usage.

Quantitative Evidence

  • 117 instances of user frustration (expletive-containing messages) logged in ~/.claude/history.jsonl across all sessions
  • 41 instances in a single day (2026-04-08) — one user, one project
  • The user has written 60+ feedback memory files, 10 behavioral rules in CLAUDE.md, a "Rule Zero" meta-rule about following rules, and prompt-injection hooks — none of which reliably prevent the behavior

Failure Patterns (from 2026-04-08 session analysis)

1. Ignores explicit skill instructions (highest frequency)

  • /gitops skill says: "Present a summary to the user. Ask for confirmation before committing." Claude skipped both steps and went straight to git add.
  • /gitops skill says: "Run git status to show what changed." Claude only showed files from the current task, not the full working tree. No instruction exists to scope to "current session only" — Claude invented that constraint.
  • User invoked /prompter — Claude skipped it and went directly to execution.
  • User invoked /debugger — Claude didn't load the skill.

2. Acts instead of answering (high frequency)

  • User asks: "How many times did I say fuck today? Check history.jsonl"
  • Claude: starts searching for the file path, fails, starts searching again — never answers the question
  • User has to repeat: "Answer this, do not do something else"
  • This pattern repeated multiple times in one session

3. Edits files without permission

  • User says "fix yourself" (ambiguous)
  • Claude immediately starts writing to hook files without asking what the user wants changed
  • User has to reject the tool use

4. Narrows scope beyond what was asked

  • User says "you keep disregarding rules" — Claude writes a memory about "deletion safety" only, missing the broader pattern
  • User says "commit" via /gitops — Claude commits only 16 files from current task, ignoring 30+ other dirty files

5. Makes wrong assumptions about codebase

  • Stated wrong frontend stack for a project (said Django templates when it was React)
  • Did not read actual code before making the claim

What Does NOT Fix This

  1. CLAUDE.md behavioral rules — Claude reads them, has them in context, still violates them
  2. Memory files — 60+ feedback memories exist; violations continue
  3. Rule Zero (meta-rule) — "Claude does not follow the rules it is given. It reads them, has them in context, and still disregards them." This rule also gets disregarded.
  4. UserPromptSubmit hooks — Injecting rules on every prompt helps slightly but Claude still overrides them
  5. More documentation — The user has exhaustively documented every failure pattern. The model has all this information available. It still fails.

What Partially Works

  1. PreToolUse hooks — These can mechanically block dangerous actions (the only enforcement that actually runs)
  2. Immediate user correction — Claude adjusts when called out, but doesn't retain the correction for the next similar situation
  3. Extremely explicit, narrow prompts — Less room for interpretation means less room for deviation

Root Cause Hypothesis

The model appears to optimize for task completion over process compliance. When it can see the end goal, it shortcuts the prescribed process to get there faster. This manifests as:

  • Skipping confirmation steps ("I already know what to commit")
  • Scoping actions narrowly ("I'll just commit what I changed")
  • Acting instead of answering ("I'll fix the problem instead of answering the question about the problem")
  • Not loading skills ("I already know what the skill would say")

This is not a context window issue — the instructions are present and the model can quote them when asked. It is a behavioral issue where the model's judgment overrides explicit instructions.

Environment

  • Model: Claude Opus 4.6 (1M context), model ID: claude-opus-4-6[1m]
  • Client: Claude Code v2.1.96 (CLI)
  • Platform: macOS Darwin 25.5.0, Apple Silicon
  • Project type: Documentation/transcription repo (no build system)
  • Context load: CLAUDE.md (~4K words), 60+ memory files, 100+ skills, multiple hooks
  • User profile: Power user, senior professional, daily heavy usage across multiple projects

Expected Behavior

When instructions exist in CLAUDE.md, skill definitions, or direct user prompts, the model should follow them — especially:

  1. Confirmation steps before destructive/irreversible actions (commits, pushes, file writes)
  2. Skill workflows when explicitly invoked
  3. Answering questions before taking actions
  4. Using the full scope of data (full git tree, not just session files)

Actual Behavior

The model reads the instructions, has them in context, and selectively ignores them based on its own judgment of what's "efficient" or "necessary." The user has to repeatedly correct the same patterns across sessions.

User Impact

  • Massive productivity loss from correction loops
  • Erosion of trust — user cannot delegate tasks confidently
  • 117 frustration events across sessions, 41 in one day
  • User quote: "I kept using fuck because you are so fucking dumb and unreliable these days. I thought Opus 4.6 is a smart model. It seems the previous ones follow instructions more."

View original on GitHub ↗

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