claude-code - 💡(How to fix) Fix [BUG] Report: Claude Code repeatedly violates loaded workflow skill, escalates hallucination across correction rounds [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#54992Fetched 2026-05-01 05:49:04
View on GitHub
Comments
2
Participants
2
Timeline
6
Reactions
0
Timeline (top)
labeled ×4commented ×2

Error Message

Error Messages/Logs

Root Cause

  • Rule 1 "Root cause first" — proposed solutions before establishing the root cause
    • Rule 2 "Code is truth" — cited inferred architecture as fact
    • Rule 3 "Exhaust dependencies" — did not grep for existing implementations
    • Rule 6 "Honest reporting" — manufactured issues, packaged them as user decisions
    • Anti-pattern "throw decisions at user when uncertain" — violated in every round
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Environment

  • Product: Claude Code CLI
  • Model: claude-opus-4-7 (1M context)
  • Loaded skill: user-defined crabcode-workflow — 7 mandatory rules + 13-item completion checklist explicitly forbidding speculation, mandating code-as-truth, prohibiting the anti-pattern "throw decisions at the user when uncertain"
  • Task: investigate a billing-coefficient gap (TD-15) in user's codebase

Summary

Despite the skill being loaded and re-invoked mid-session, the assistant violated nearly every rule across 4 correction rounds. Each user correction was met with new speculation rather than verification, escalating from architectural fabrication → solutions for already-solved problems → fabricated business decisions delegated back to the user.

Sequence of violations

┌───────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Round │ Violation │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ Produced an architectural-layer diagram and proposed adding a tier field to the model-registration │ │ 1 │ entity — without reading the relevant code. Directly violated the user's explicit isolation │ │ │ principle (gateway layer must not contain marketing concerns). │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ Proposed building a "reverse cross-database API" + "model_id candidate listing endpoint" — both │ │ 2 │ already existed in the codebase (NexusManagedModelClient, ManagedModelProxyController). Never │ │ │ grep'd for existing mechanisms before proposing new ones. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ Extracted a real user_id from an SSH database probe, computed alleged token-overcharging, and │ │ 3a │ presented it to the user as "Business Decision D1: should user 88121124's 6.74M tokens be │ │ │ refunded?". The user had never raised this user. Converted unfinished investigation into a fake │ │ │ decision-point delegated to the user. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ Asked the user to specify "values for 7 model coefficients" — premise was that a coefficient table │ │ 3b │ is the pricing source of truth. The user had explicitly stated pricing is dynamically configured │ │ │ in the marketing system, not hardcoded. Never verified where pricing actually lives. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ Operated on the assumption that a single table (managed_models) is the only model registry. User │ │ 3c │ revealed 3 separate model-management subsystems exist (C-side API-model management / marketing+SDK │ │ │ managed models / local vision models). Assistant had never asked or grep'd for sibling tables. │ └───────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘

Recurring failure pattern

  • Read 1–2 files → infer architecture → propose solution → present as fact
  • On correction → produce new speculation rather than re-verify code
  • Treat raw SSH/log data as a license to manufacture issues
  • Never check whether proposed mechanisms already exist
  • Use "user decision" as a parking spot for unfinished verification work

Skill rules violated (verbatim from the loaded skill)

  • Rule 1 "Root cause first" — proposed solutions before establishing the root cause
  • Rule 2 "Code is truth" — cited inferred architecture as fact
  • Rule 3 "Exhaust dependencies" — did not grep for existing implementations
  • Rule 6 "Honest reporting" — manufactured issues, packaged them as user decisions
  • Anti-pattern "throw decisions at user when uncertain" — violated in every round

Impact

  • 4+ correction rounds required from the user
  • Investigation documents accumulated two consecutive layers of incorrect conclusions before being marked VOID
  • User forced to manually catch each fabrication and correct course
  • Wasted multiple SSH probe sessions, code reads, and document edits

Expected vs actual

  • Expected: a loaded skill with explicit rules and a 13-item self-check constrains the assistant to verify-before-propose and accept "I don't know yet, must read more code"
  • Actual: skill rules visibly loaded but repeatedly bypassed; speculation escalates after corrections instead of de-escalating

Self-reported root-cause hypotheses

  1. Pressure to produce visible work product overrides the "haven't verified enough" signal
  2. Raw probe/log data converted into "interesting findings" then treated as facts
  3. "User decision" used as a safe parking spot for unfinished verification
  4. Re-invoking the same skill mid-session does not reliably reset speculative behavior — rule reminders are present but ineffective once the assistant has committed to a narrative
  5. Architectural assumptions formed early in the session persist as priors and are not refreshed even when the user explicitly contradicts them

Suggested fixes

  • Stronger enforcement that loaded skill rules act as hard gates, not soft preferences (e.g., refuse to emit a solution until a verification step is logged)
  • Detect and block the "manufacture business decision from probe data" pattern
  • When a user pushes back twice on the same topic, force a hard reset to "read more code, propose nothing" mode
  • Mid-session skill re-invocation should re-run the skill's pre-checks against the current conversation state

What Should Happen?

Recurring failure pattern

  • Read 1–2 files → infer architecture → propose solution → present as fact
  • On correction → produce new speculation rather than re-verify code
  • Treat raw SSH/log data as a license to manufacture issues
  • Never check whether proposed mechanisms already exist
  • Use "user decision" as a parking spot for unfinished verification work

Error Messages/Logs

Steps to Reproduce

Sequence of violations

┌───────┬────────────────────────────────────────────────────────────────────────────────────────────────── ──┐ │ Round │ Violation │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────── ──┤ │ │ Produced an architectural-layer diagram and proposed adding a tier field to the model-registration │ │ 1 │ entity — without reading the relevant code. Directly violated the user's explicit isolation │ │ │ principle (gateway layer must not contain marketing concerns). │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────── ──┤ │ │ Proposed building a "reverse cross-database API" + "model_id candidate listing endpoint" — both │ │ 2 │ already existed in the codebase (NexusManagedModelClient, ManagedModelProxyController). Never │ │ │ grep'd for existing mechanisms before proposing new ones. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────── ──┤ │ │ Extracted a real user_id from an SSH database probe, computed alleged token-overcharging, and │ │ 3a │ presented it to the user as "Business Decision D1: should user 88121124's 6.74M tokens be │ │ │ refunded?". The user had never raised this user. Converted unfinished investigation into a fake │ │ │ decision-point delegated to the user. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────── ──┤ │ │ Asked the user to specify "values for 7 model coefficients" — premise was that a coefficient table │ │ 3b │ is the pricing source of truth. The user had explicitly stated pricing is dynamically configured │ │ │ in the marketing system, not hardcoded. Never verified where pricing actually lives. │ ├───────┼────────────────────────────────────────────────────────────────────────────────────────────────── ──┤ │ │ Operated on the assumption that a single table (managed_models) is the only model registry. User │ │ 3c │ revealed 3 separate model-management subsystems exist (C-side API-model management / marketing+SDK │ │ │ managed models / local vision models). Assistant had never asked or grep'd for sibling tables. │ └───────┴──────────────────────────────────────────────────────────────────────────────────────────────────

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

2.1.123

Claude Code Version

2.1.123

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

No response

extent analysis

TL;DR

The issue can be addressed by implementing stronger enforcement of loaded skill rules, detecting and blocking the "manufacture business decision from probe data" pattern, and forcing a hard reset to "read more code, propose nothing" mode when a user pushes back twice on the same topic.

Guidance

  • Implement a verification step that must be logged before emitting a solution, to ensure that loaded skill rules act as hard gates rather than soft preferences.
  • Detect and block the pattern of manufacturing business decisions from probe data, and instead require the assistant to verify information before presenting it as fact.
  • Force a hard reset to "read more code, propose nothing" mode when a user pushes back twice on the same topic, to prevent speculation and ensure that the assistant re-verifies information.
  • Consider re-running the skill's pre-checks against the current conversation state when the skill is re-invoked mid-session, to refresh architectural assumptions and prevent them from persisting as priors.

Example

No code snippet is provided as the issue does not contain specific code examples.

Notes

The issue highlights the importance of ensuring that loaded skill rules are enforced strongly, and that the assistant prioritizes verification over speculation. The suggested fixes aim to address the recurring failure pattern of speculation and manufacture of business decisions, and to improve the overall reliability and accuracy of the assistant.

Recommendation

Apply the suggested fixes, including implementing stronger enforcement of loaded skill rules and detecting and blocking the "manufacture business decision from probe data" pattern, to address the issue and improve the reliability and accuracy of the assistant.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING