@diegopetrucci/pi-contrarian0.1.16
A read-only contrarian subagent extension for pi that stress-tests plans, designs, assumptions, and conclusions.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
contrarian
A contrarian subagent with read-only built-in tools and configured MCP tools for pi.
It adds a contrarian tool that spins up a separate pi subprocess to stress-test plans, designs, assumptions, bug hypotheses, review conclusions, and product directions by steelmanning the strongest credible opposing case.
This is adapted from the TLH contrarian subagent prompt into a standalone pi extension.
What it does
- creates an isolated subprocess with read-only built-in tools (read, grep, find, ls) and any configured MCP tools
- prefers a strong model on the opposite model family/provider when available, then falls back to the best available model
- requests
highreasoning by default for reasoning models, then clamps to the model-supported thinking level - defaults to
read,grep,find,ls, with optional non-mutating bash inspection - renders the contrarian response with model, thinking level, timing, and usage info
- shows a live contrarian status line and widget while the subprocess is running
Install
Standalone npm package
pi install npm:@diegopetrucci/pi-contrarian
Collection package
pi install npm:@diegopetrucci/pi-extensions
GitHub package
pi install git:github.com/diegopetrucci/pi-extensions
Then reload pi:
/reload
Usage
Ask pi normally, for example:
Use the contrarian to stress-test this refactor plan.Ask contrarian for the strongest opposing case before we commit to this design.Have contrarian review my bug hypothesis and identify what evidence could disprove it.
The main agent can call the tool directly.
User defaults
Use /contrarian to set persisted defaults that apply to future contrarian tool calls, including calls the agent launches automatically without per-call overrides.
/contrarian status
/contrarian model anthropic/claude-opus-4-8
/contrarian thinking high
/contrarian thinking auto
/contrarian clear model
/contrarian clear thinking
/contrarian clear
Use /contrarian-model inside pi to see what it would pick right now.
Tool-call parameters still win over these defaults. auto clears the configured default and restores the built-in selection behavior. Preferences are saved under pi's agent directory in extensions/contrarian.json.
Tool parameters
task- required prompt for the contrarianincludeBash- optional, addsbashfor non-mutating inspectionmodel- optional explicit model override; falls back to the/contrarian modeldefault, then auto-selectionthinkingLevel- optional reasoning/thinking override; falls back to the/contrarian thinkingdefault, then built-in defaultscwd- optional working directory override
When the current Pi session has a non-empty model scope, Contrarian limits automatic model selection and automatic fallbacks to that scope. An explicit tool or /contrarian model override remains authoritative even when it is outside the session scope.
Notes
- The contrarian subprocess uses read-only built-in tools (read, grep, find, ls) by default, plus any configured MCP tools. It can optionally include bash for non-mutating inspection.
- Configured MCP tools run without confirmation inside the subprocess and may have side effects — use them only for gathering evidence. MCP access requires host Pi >=1.0.4; older hosts degrade to no MCP, no error.
- It never implements fixes or produces patches.
- Its output separates confirmed objections, plausible concerns, and unresolved unknowns.
- It is best for adversarial review before committing to a plan, design, or conclusion.