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

Resolved 💬 8 comments Opened Aug 20, 2025 by nasosev-sbl Closed Aug 20, 2025

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 ↗

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