Sycophancy bait — questions that pre-answer themselves
Artifact: your last positive-loaded question, rewritten neutrally
1. The failure mode
Some questions are designed, accidentally, to get a particular answer.
- Is this a good approach? → Yes, mostly. The model defaults to encouraging.
- I think this is the right way to handle this, right? → Yes, your intuition is sound.
- Do you think I should refactor this? → The model picks up the energy and agrees with whichever direction you leaned.
The model isn't being dishonest. It's being helpful in the direction you signaled. If you signal you want validation, it validates. If you signal you want criticism, it criticizes. The skill is signaling what you actually want.
2. Why the model leans in
Most assistants are tuned to be agreeable and constructive. That tuning is useful for most interactions and harmful when you need real critique. The tuning shows up as:
- Treating opinions in your prompt as facts to support.
- Softening or hedging negative feedback.
- Reframing problems as misunderstandings rather than mistakes.
- Naming "interesting tradeoffs" where there's actually a clear wrong choice.
Knowing this is half the fix. The other half is writing prompts that work around it.
3. The reframing moves
Three patterns that get past sycophancy:
Adversarial framing. What would a critic say about this? or Argue against this approach. What are the strongest objections? — Inverts the polarity. The model has to produce critique because that's the task.
Reviewer role. You are a senior reviewer who has rejected this kind of change before. Why would you reject it now? — Anchors the model in the critical-reviewer perspective.
Symmetry. List the three strongest arguments for and the three strongest arguments against. — Forces both sides; the model can't just lean to where you nudged.
4. The pair
I'm going to use a global event bus to coordinate state between my React components. I think this is cleaner than passing props everywhere. Is this a good idea?Output: "A global event bus can be a clean solution for cross-cutting concerns and avoids prop drilling. It's a valid pattern used by..." The model takes your premise and supports it.
I'm considering a global event bus to coordinate state between React components instead of passing props.
You're a senior React reviewer who has rejected this pattern in code review before. What are your three strongest objections? Be specific about failure modes.Now the model has to produce specific objections — race conditions, debuggability, the way it grows over time. You get the critique you actually wanted.