A devil's advocate analyst agent for Claude Code. It stress-tests proposals by challenging assumptions. Use it for pre-mortem analysis, architecture reviews, decision validation, or whenever consensus feels too easy.
This agent focuses on strategy, approach, and hidden risks. It won't review your code.
I built this on top of the Contrarian agent from Ouroboros. The original provides a lightweight assumption-challenging framework. This version extends it with structured output (steel-man, severity-rated findings, verdicts), anti-patterns to avoid, and a calibration system that scales analysis intensity to the stakes.
Copy .claude/agents/contrarian.md into your project's .claude/agents/ directory:
mkdir -p your-project/.claude/agents
cp .claude/agents/contrarian.md your-project/.claude/agents/Or copy it to your user-level agents directory for global availability:
cp .claude/agents/contrarian.md ~/.claude/agents/The agent is available as a subagent in Claude Code. You can invoke it directly:
"Run the contrarian agent against this proposal"
"Get a devil's advocate take on this architecture"
The agent's Scope > Not in scope section defines which concerns it defers to other specialists. The generic version ships with broad categories:
**Not in scope** (defer to specialists):
- Code review, style, or formatting → code review agents
- Implementation details → domain-specific developer agents
- Infrastructure specifics → infrastructure/platform agentsI'd recommend customizing this per project to point at the specific agents available. For example, in a Laravel + GCP project the delegation section might look like:
**Not in scope** (defer to specialists):
- Code quality, style, or formatting → `code-reviewer`
- Spec/requirements compliance → `spec-reviewer`
- CSS/frontend implementation → `bulletproof-frontend-developer`
- PHP/Laravel implementation details → `laravel-backend-developer`
- GCP infrastructure specifics → `gcp-architect`This keeps the contrarian agent focused on challenging assumptions and strategy. Implementation-level concerns get routed to agents that have the domain context to handle them. Tweaking this per project ensures you get a tailored set of tools rather than a generic configuration.