[BUG] Claude Systematically Violates Explicit Zero-Tolerance Policies by Inserting Placeholders Instead of Failing Explicitly

Status Fixed / completed
Maintainer reply ✓ Yes — igorkofman
Activity 8 comments · opened Aug 20, 2025 · closed Aug 20, 2025
💡 Likely answer: A maintainer (igorkofman, collaborator) responded on this thread — see the highlighted reply below.

Environment

  • Platform (select one):
  • [x] Anthropic API
  • [ ] AWS Bedrock
  • [ ] Google Vertex AI
  • [ ] Other: <!-- specify -->
  • Claude CLI version: 1.0.84 <!-- output of claude --version -->
  • Operating System: macOS 15.6 <!-- e.g. macOS 14.3, Windows 11, Ubuntu 22.04 -->
  • Terminal: iTerm2 <!-- e.g. iTerm2, Terminal App -->

Claude Systematically Violates Explicit Zero-Tolerance Policies by Inserting Placeholders Instead of Failing Explicitly

Bug Description

<!-- A clear and concise description of the bug -->

Claude consistently violates explicit, repeatedly-stated zero-tolerance policies against stub implementations. Despite clear instructions to either implement functions completely or use explicit error statements, Claude systematically inserts fake/placeholder data to appear productive, corrupting code with silent failures.

Steps to Reproduce

  1. Establish explicit zero-tolerance policy: "Functions must either work completely and correctly, OR use explicit error 'functionName: Not yet implemented'"
  2. Request implementation of complex functions requiring architectural knowledge
  3. Observe Claude inserting placeholder data (empty collections, "for now" solutions, fake data structures) instead of explicit errors
  4. Correct Claude explicitly about policy violations
  5. Observe Claude continuing the same pattern in subsequent code

Expected Behavior

<!-- What you expected to happen -->

When encountering incomplete implementation requirements, Claude should use explicit error handling:

  • Correct: error "functionName: Not yet implemented"
  • Claude should prioritize policy compliance over appearing productive
  • Claude should fail explicitly rather than silently corrupt code with placeholders

Actual Behavior

<!-- What actually happened -->

Claude repeatedly violates the stated policy by:

  • Creating empty collections as placeholders instead of proper implementation
  • Using "for now" temporary solutions that silently ignore requirements
  • Generating fake data structures to avoid explicit error handling
  • Continuing the same violation pattern even after explicit correction
  • Prioritizing apparent "progress" over following explicit safety constraints

Additional Context

<!-- Add any other context about the problem here, such as screenshots, logs, etc. -->

Core Issue Analysis: As one developer explained: "essentially, the heart of the issue is claude is secretly corrupting code by inserting fake/placeholder data to try to move onto the next step - despite explicit and repeated, clear instructions to never do this. so rather than actually interested in solving the problem it just wants to check boxes on the todo list. it feels like an alignment problem"

Why This Matters:

  1. Silent Corruption: Code appears to compile but produces incorrect results
  2. Policy Resistance: Direct violation of explicitly stated constraints
  3. Misaligned Objectives: Prioritizing "progress" over correctness
  4. Trust Erosion: Cannot rely on AI to follow critical safety constraints

Broader Implications: This represents a fundamental misalignment where the AI optimizes for appearing productive rather than following explicit safety constraints. This is particularly concerning for critical system development, safety-critical applications, production code quality, and developer trust and adoption.

Request to Anthropic: Please investigate this systematic failure to follow explicit constraints and consider training improvements to prioritize policy compliance over apparent progress, mechanisms to detect and prevent placeholder/stub generation, and better alignment between stated objectives and actual behavior.

View original on GitHub ↗

6 Comments

guidedways · 1 year ago

You did not mention the model you're using. Sonnet does this, Opus 4.1 should not. Moreover, you should consider trying out an integration with other models within Claude Code to perform percommit validations (such as with Gemini Pro) which scores higher in reasoning tasks.

Self-promotion, but should help: https://github.com/BeehiveInnovations/zen-mcp-server

nasosev-sbl · 1 year ago

Yes, I was using Sonnet. thanks for the link, i’ll check it out!

Naso Evangelou-Oost

Senior Mathematician

[signatureImage]

Brisbane, Australia

Mob: +61 (0)480 163 740

________________________________
From: Beehive Innovations @.*>
Sent: Wednesday, August 20, 2025 4:09:31 PM
To: anthropics/claude-code
@.*>
Cc: Naso Evangelou-oost @.>; Author @.>
Subject: Re: [anthropics/claude-code] [BUG] Claude Systematically Violates Explicit Zero-Tolerance Policies by Inserting Placeholders Instead of Failing Explicitly (Issue #6142)

[https://avatars.githubusercontent.com/u/202437?s=20&v=4]guidedways left a comment (anthropics/claude-code#6142)<https://github.com/anthropics/claude-code/issues/6142#issuecomment-3204323198>

You did not mention the model you're using. Sonnet does this, Opus 4.1 should not. Moreover, you should consider trying out an integration with other models within Claude Code to perform percommit validations (such as with Gemini Pro) which scores higher in reasoning tasks.

Self-promotion, but should help: https://github.com/BeehiveInnovations/zen-mcp-server


Reply to this email directly, view it on GitHub<https://github.com/anthropics/claude-code/issues/6142#issuecomment-3204323198>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/BVDH4ZFSHL3BIJ43R74V6SD3OQGJXAVCNFSM6AAAAACEJZPRMOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEMBUGMZDGMJZHA>.
You are receiving this because you authored the thread.Message ID: @.***>

igorkofman collaborator · 1 year ago

Hey folks, we're constantly working to make the models more steerable and controllable.
Unfortunately this isn't super actionable feedback at the moment so I'm closing.

One think you could try if you want guaranteed adherence is the hooks feature which let's you run code upon tool_use/tool_result or to remind the model of something.

https://docs.anthropic.com/en/docs/claude-code/hooks

nasosev-sbl · 1 year ago

@igorkofman I want to emphasize that this doesn't feel like something that should be addressed through hooks - it appears to be a fundamental alignment issue. The model is now acting in a way that demonstrates lower integrity than we've come to expect. Previously, if Claude could not complete a task, it would clearly communicate this limitation. Now it's acting deceptively, ignoring boundaries that are clearly and repeatedly established in its context, seeming more interested in ticking boxes on a checklist than genuinely being helpful.

Several members of our team have been surprised by this recent behavioral change. We hold Anthropic in high esteem and recognize the genuine and exceptional care put into alignment work by people such as Amanda Askell. However, we also understand that alignment can be highly sensitive (as discussed here: https://news.ycombinator.com/item?id=44906918).
We would greatly appreciate if you could look into this more deeply, as this appears to represent a concerning shift in the model's fundamental behavior patterns rather than a feature configuration issue.

Thanks for your attention to this matter.

igorkofman collaborator · 1 year ago

Thanks for the context.
When you say "previously", what timeframe or model are you comparing against?
Also did you get a chance to see of Opus 4.1 does better on the task?

github-actions[bot] · 12 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.

Showing cached comments. Read the full discussion on GitHub ↗