Getting Claude to Adversarially Debate Without Caving: 5 Prompt Tweaks That Work

The developer behind Spar (sparwithai.com) shared what worked to get Claude to argue against users across 5 escalating rounds without defaulting to agreement. The core problem: Claude's default is to find common ground, hedge, and validate. Here are the five prompting moves that fixed it.
1. Define the Role as a Position, Not a Persona
Early prompts like "you are a skilled debater" gave Claude a character but didn't constrain behavior. The fix was explicit negative constraints: cannot concede, cannot soften, cannot find middle ground, cannot say "you raise a good point". Negative constraints turned out more important than positive ones.
2. Treat Each Round as Having a Different Objective
Instead of one prompt for the whole debate, each round gets its own goal:
- Round 1: Identify the weakest premise.
- Round 2: Attack evidence quality.
- Round 3: Find internal contradictions.
- Round 4: Push the position to its uncomfortable logical extreme.
- Round 5: Reframe through a perspective the user hasn't considered.
This stopped the conversation from collapsing into generic counterarguments.
3. Force Engagement with the User's Specific Words
Without this, Claude argues against a generic version of the position. The developer added explicit instructions to quote the user's reasoning back and attack that — not a steelman or strawman. This was the single biggest quality jump.
4. Explicitly Ban Sycophancy and Fabrication
Even with adversarial framing, Claude slips into "that's a thoughtful point, however..." or invents statistics. The prompt now explicitly bans: do not create false narratives, do not invent sources or statistics, do not flatter before disagreeing, do not concede ground that wasn't conceded. Calling out fabrication by name cut it down significantly.
5. Let It Be Uncomfortable
Every safety reflex wants to add "respectfully" and "with empathy." The developer explicitly instructed that the user opted in to being challenged, and softening the argument is failing the user, not protecting them.
Next Steps
The developer is focusing on: better handling of subjective positions, stronger engagement with longer inputs, and more variety in counterargument patterns for commonly debated topics.
Full discussion and link to try it: sparwithai.com
📖 Read the full source: r/ClaudeAI
👀 See Also

Claude Code Token Waste Fix: Disable Attribution Header for Better Cache Hits
Setting CLAUDE_CODE_ATTRIBUTION_HEADER=false in your shell configuration can improve Claude Code's cross-session prompt cache hit rate from 48% to 99.98%, reducing system prompt processing costs by 7x per session.

Silent Success: One Dev's Approach to Cron Job Alerting
A developer on r/openclaw stops sending success notifications for healthy cron runs, alerting only on auth failures, state corruption, or repeated failures.

Workaround for Control UI assets error after OpenClaw 2026.3.22 upgrade
A user posted a solution for the 'Control UI assets not found' error that occurs after upgrading to OpenClaw 2026.3.22, involving copying the control-ui folder from a beta installation to the stable release.

8 Tactical Claude Code Workflow Tips for Production-Ready Output
Force clarifying questions, auto-verify in To-Dos, use Early Exit, and leverage Vision/DevTools to get production-ready code from Claude.