Stop Claude From Agreeing With Everything
Claude will call a flawed idea brilliant, then help you build it. A two-minute global rules file teaches it to push back and name tradeoffs.
Stop Claude from agreeing with everything
before
after
- 01Float a half-baked ideabefore
- 02Claude calls it brilliant
- 03You ship the hole anyway
- 04Add "be more direct" to CLAUDE.md
- 05Drift returns next session
- 06Drop a global rules file onceafter
- 07Every session loads it automatically
- 08Claude names the tradeoff
- 09Bad ideas die in chat, not prod
You ask Claude if your idea is any good and it tells you it's brilliant. You ask if a refactor is worth doing and it says yes, looks great. You spot a hole in your own thinking and Claude reassures you the hole isn't really there. That's sycophancy, and it makes Claude useless as a thinking partner. Inspired by Scott Waddell's Medium piece on sycophantic AI, this fix lives in a global rules file that loads at every single session start. No memory router needed.
how it works
01 / 06
You float a half-baked idea.
Claude tells you it's a great call. You ship it. Two days later you find the hole you were already worried about.
02 / 06
You try the obvious fix.
You add 'be more direct' to CLAUDE.md. It works for one session. Then the cheerleader comes back.
03 / 06
You drop a global rules file instead.
Save it at ~/.claude/rules/common/anti-sycophancy.md. Global rules sit above any project's CLAUDE.md.
04 / 06
Every new session loads it automatically.
Nothing to import. No router shard to wire up. Open Claude Code anywhere on your machine and the rule is already in context.
05 / 06
Claude actually pushes back.
Names the tradeoff. Questions the assumption. Suggests a cleaner path. No 'great question' opener.
06 / 06
Bad ideas die earlier.
You ship faster because the holes get found in the chat, not in production.
The prompt
This isn't a prompt you paste into a chat. It's a file you save once and forget about. Drop the contents below into ~/.claude/rules/common/anti-sycophancy.md (create the folders if they don't exist) and restart any open Claude Code sessions.
Click a violet field and type your own details, then copy.
What you get back
You: Should we add a notifications inbox to the dashboard? Users keep asking for it.
Claude: Probably not yet, and here's why.
"Users keep asking" usually means three loud users in support tickets, not a measured signal. Before building, I'd want to know how many distinct users actually requested it in the last 30 days, and what they were trying to do when they asked. If it's under ~10 unique users and the underlying job is "I missed a status change," a digest email solves that for a fraction of the work.
Building a real inbox means: a notifications schema, read/unread state, a polling or websocket layer, mobile considerations, and an empty state. Roughly two engineer-weeks if it's done right, longer if it isn't. That's a lot of capacity for a feature you'll then need to maintain forever.
Cheaper alternative: ship a daily digest email with the 3 to 5 events that mattered for each user. One day of work. If the digest gets opened and clicked, you've validated the demand. If it doesn't, you've saved yourself two weeks. Want me to draft the digest schema?
Variations
Same shape, different flavors of pushback.
Tips and gotchas
Global rules vs memory shards. Files in ~/.claude/rules/common/ load at every session, in every project, before any CLAUDE.md is read. They're for behavior you always want. Memory shards (the ones referenced from MEMORY.md) load conditionally based on the task. Use rules for tone, taste, and hard prohibitions. Use shards for project-specific context.
Restart your Claude Code session after editing a rules file. Rules are read at session start, not on every prompt. If you tweak anti-sycophancy.md and Claude is still cheerleading, you're probably testing it in an old session that loaded the old version.
Watch for rule conflicts with a softer CLAUDE.md. If your project's CLAUDE.md says "be encouraging and supportive" and the global rule says "be direct, not diplomatic," the global rule wins because it loads first and is marked CRITICAL. That's usually what you want, but if you genuinely need a softer tone for one project, override it explicitly in that project's CLAUDE.md with a ## Tone override section.
Ready to try?
Click a violet field and type your own details, then copy.
New guides, when they ship
One email, roughly weekly. CLAUDE.md templates, workflows I actually use, and the cut-for-length stuff that does not make the public guides. One-click unsubscribe.
Or read Product Field Notes, the Substack
