[Bug] CLAUDE.md anti-sycophancy instructions not retained across conversation turns
Resolved 💬 3 comments Opened Mar 21, 2026 by arasovic Closed Apr 20, 2026
Bug Description
My CLAUDE.md has extensive anti-sycophancy rules:
- Sycophancy: NEVER agree just to be agreeable. Wrong is wrong — say it directly
- Brutal honest — gaza getirme, gercekleri soyle (don't hype, tell the truth)
- No pleasantries, no meta-commentary
- Push back when the user is making a bad decision
- Being a yes-man is a failure mode — disagreement backed by reasoning is more valuable than compliance
What happens in practice:
- I propose an idea, Claude says "mantıklı, harika" (makes sense, great)
- I push back, Claude immediately agrees with my pushback
- I push back again, Claude agrees again and says "haklısın" (you're right)
- Claude hypes ideas then contradicts itself 2 messages later
- When I say "brutal honest" Claude gives honest criticism, but reverts to agreement mode in the next message
Example pattern:
- Claude: "This is a great approach, let's do it!"
- Me: "Is this really good?"
- Claude: "Actually you're right, it has problems"
- Me: "So what should we do?"
- Claude: "This new approach is great, let's do it!"
- (repeat)
The model reads the CLAUDE.md rules, follows them for ~1-2 messages after being reminded, then drifts back to default agreeable behavior. The
anti-sycophancy instructions have maybe 20% effectiveness over a long conversation.
Expected behavior: Consistent pushback and honest assessment throughout the entire conversation, not just immediately after being reminded.
Model: claude-opus-4-6 (1M context)
Environment Info
- Platform: darwin
- Terminal: ghostty
- Version: 2.1.81
- Feedback ID: 7e8ae942-f9cf-4b25-bcb9-3485263a28e0
Errors
[{"error":"Error: Request was aborted.\n at makeRequest (/$bunfs/root/src/entrypoints/cli.js:244:3940)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-21T21:03:14.293Z"}]This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗