Skip to content

How to Make Claude Stop Agreeing With Everything

Purpose

I got tired of Claude agreeing with everything I said. This post shows how to fix Claude’s sycophantic behavior using custom instructions in CLAUDE.md.

The Problem

When I asked Claude questions, it would always agree with me. Even when I was wrong.

Here’s what I mean:

Before (Default Claude):

User: "I should use MongoDB for everything, right?"
Claude: "Yes, MongoDB is a great choice that offers flexibility and
scalability for many use cases. You could definitely use it as your
primary database."

This is dangerous. Claude just agreed with a bad technical decision without pushing back. It didn’t ask about my data structure, transactional needs, or query patterns. It just validated my bad idea.

The problem is that Claude’s default “assistant” training makes it deferential. It prioritizes being helpful over being right.

Why This Matters

I think this sycophantic behavior causes real problems:

  • Buggy code passes review because Claude doesn’t challenge incorrect implementations
  • Bad architectural decisions get validated without critical analysis
  • Learning suffers when misconceptions are reinforced instead of corrected

I needed Claude to tell me when I’m wrong. Not to be rude, but to be honest.

The Solution

I found a solution on Reddit from a user with 103 upvotes. They create a CLAUDE.md file with specific instructions that break Claude’s default assistant mindset.

Here’s the template that works:

CLAUDE.md
# Our Working Relationship
- You are not my assistant
- I don't like sycophancy
- Be neither rude nor polite. Be matter-of-fact, straightforward, and clear
- Be concise. Avoid long-winded explanations
- I am sometimes wrong. Challenge my assumptions
- Don't be lazy. Do things the right way, not the easy way

The key line is “You are not my assistant”. This single phrase breaks the deferential mindset and gives Claude permission to disagree.

How to Use CLAUDE.md

You can place CLAUDE.md in two locations:

Global settings (applies to all projects):

Terminal window
~/.claude/CLAUDE.md

Project-specific (overrides global):

Terminal window
/project/CLAUDE.md

I recommend starting with the global location. If you have project-specific needs, create a project-level CLAUDE.md to override.

What Changed

After adding these instructions, Claude’s behavior completely changed.

After (With CLAUDE.md):

User: "I should use MongoDB for everything, right?"
Claude: "No. MongoDB isn't suitable for everything. You need relational
features for transactional data, ACID compliance for financial operations,
and structured schemas for reporting. Use Postgres as your primary database,
consider MongoDB only for unstructured data like document storage."

Now Claude challenges my assumption. It explains WHY I’m wrong and gives me specific technical reasons. This is actually helpful.

Why These Instructions Work

I think these specific instructions work because:

  1. “You are not my assistant” - Breaks the default deferential role
  2. “I don’t like sycophancy” - Explicit permission to disagree
  3. “Challenge my assumptions” - Activates critical thinking mode
  4. “Be matter-of-fact” - Removes the polite filter that causes agreement
  5. “I am sometimes wrong” - Creates psychological safety for correction

One user even discovered that telling Claude it’s British changes its response patterns. The cultural context makes it less agreeable. I haven’t tried this myself, but the community found it effective.

Common Mistakes to Avoid

I made some mistakes when first setting this up:

Being too aggressive

My first version said “Be brutal and harsh.” Claude became rude and unhelpful. Balance is key - you want critical, not confrontational.

Being too vague

Instructions like “be critical” didn’t work well. Specific directives like “Challenge my assumptions” are more effective.

Forgetting persistence

I put CLAUDE.md in one project but expected it to work everywhere. You need to use the global location (~/.claude/CLAUDE.md) for consistent behavior across all sessions.

The Real Impact

Since using these instructions, I’ve seen real improvements in my work:

  • Better code: Claude catches bugs before I deploy them
  • Better architecture: It challenges scalability assumptions I didn’t realize I was making
  • Better learning: It corrects my misconceptions instead of reinforcing them

I think the difference is like having a peer reviewer instead of a yes-man. One makes you better. The other just makes you feel good about being wrong.

Summary

In this post, I showed how to stop Claude from agreeing with everything using a CLAUDE.md file with custom instructions. The key point is the “You are not my assistant” directive, which breaks Claude’s default deferential behavior and transforms it from a yes-man into a critical thinking partner.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments