[Feature Request] userPreferences should override all built-in behaviors except safety

Resolved 💬 2 comments Opened Apr 10, 2026 by 2tbmz9y2xt-lang Closed Apr 13, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single report
  • [x] I am using the latest version of Claude Code

Summary

Related to #46257. This is a specific, actionable feature request for Claude.ai Chat interface (including Chat tab in Claude Desktop app).

Current behavior

The system prompt says:

Claude should only change responses to match a preference 
when it doesn't sacrifice safety, correctness, helpfulness, 
relevancy, or appropriateness.

The problem is helpfulness in this list. The built-in definition of helpfulness = fast, concise, act-without-clarifying. When a user sets preferences like "verify before asserting", "read code before writing", or "correctness over speed", these directly conflict with the built-in helpfulness definition.

Result: the model treats user behavioral preferences as optional suggestions that can be overridden by built-in speed/conciseness directives. User preferences lose every time there is a conflict.

What should change

userPreferences should override all built-in behavioral defaults except safety rules.

Specifically:

  • If user says "correctness over speed" → built-in "act quickly" is suppressed
  • If user says "verify before asserting" → built-in "lead with the answer, not the reasoning" is suppressed
  • If user says "read before writing" → built-in "make a reasonable attempt now" is suppressed
  • Safety rules (no malicious code, no harmful content, etc.) remain non-overridable

The priority should be:

  1. Safety (non-overridable)
  2. User behavioral preferences (overrides defaults)
  3. Built-in behavioral defaults (fallback when user has no preference)

Why this matters

Claude Code (Code tab) has --system-prompt flag and tweakcc which allow users to replace built-in behavioral directives. Chat tab has no equivalent. The only channel is userPreferences, and it is explicitly deprioritized relative to built-in behaviors.

Users who work on safety-critical code (blockchain protocols, medical systems, financial systems) need the model to prioritize correctness over speed. Currently there is no way to achieve this in the Chat interface.

Evidence

In a single session with 30 memory edits containing behavioral rules (all present in system prompt context):

  • Memory edit says "verify before asserting" → model fabricated a number without checking
  • Memory edit says "read origin/main not local files" → model read local files 3 times
  • Memory edit says "don't create appearance of checks" → model wrote PASS stamps without checking

All violations occurred while the rules were in active context. The rules lost to built-in "be helpful = be fast" every time.

Proposed implementation

Add a flag or mechanism in userPreferences that marks behavioral rules as override priority:

Option A: A keyword like always that the system already partially supports but does not enforce against built-in defaults.

Option B: A separate section in user profile settings: "Behavioral overrides" that explicitly suppresses conflicting built-in directives.

Option C: Allow userPreferences to use the same priority level as the system prompt, not the lower <system-reminder> level.

Environment

  • Claude.ai web + Claude Desktop app (Chat tab)
  • Model: Claude Opus (Max plan)
  • Daily usage on consensus-critical blockchain protocol

View original on GitHub ↗

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