contrarian
Devil's advocate for coding agents. Stress-tests plans, architecture and decisions with a steel-man, an assumption audit and a pre-mortem, then gives severity-rated findings and a verdict. Works in Claude Code, Codex, Cursor, Gemini CLI, Copilot and 12 more.
Install / Use
npx skills add aaddrick/contrarianInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of contrarian
contrarian scores 87/100 on our quality scale, 2095th of 4,578 Development & Engineering skills we index (top 46%).
Its SKILL.md is 17 KB long, well organised into 8 sections with 55 code examples: a thorough specification that gives an agent plenty to work with.
It has 38 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so contrarian is actively maintained.
- It is released under the Unlicense license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
contrarian compared with similar skills
All 4 of these similar skills score higher than contrarian; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| contrarian (this skill)by aaddrick | 87 | 38 | today | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 45.2k | 1d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.8k | 7d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 14d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 14d ago | SKILL.md |
Frequently asked questions
- How do I install contrarian?
- Run
npx skills add aaddrick/contrarian. The install tabs above show the steps for each supported agent. - Which AI agents does contrarian work with?
- It is written for Claude Code, Gemini CLI, Cursor, GitHub Copilot and OpenAI Codex, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is contrarian safe to use?
- It is Unlicense-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is contrarian still maintained?
- The repository was last updated today, so contrarian is actively maintained.
Skill content
View source on GitHubWhen everyone agrees on a plan, your coding agent agrees too. Contrarian's job is to assume the consensus is wrong and find out what that world looks like. It steel-mans the proposal first, audits the unstated assumptions, runs a pre-mortem, and checks each objection before it calls it serious.
Use it for pre-mortems, architecture reviews, decision validation, or "should we even do this?" questions. It also works on plans that have nothing to do with code. It isn't a code reviewer: it challenges strategy, approach, and hidden risks.
It ships two ways. Claude Code gets a contrarian subagent and a contrarian skill. Every other harness gets the skill, which tells the agent to run the analysis in a fresh subagent when it can. It installs in Claude Code, Claude Desktop and claude.ai, Codex, Antigravity CLI, Cursor, Devin CLI, Factory Droid, Gemini CLI, GitHub Copilot CLI, Grok Build CLI, Hermes Agent, Kimi Code, OpenCode, Pi, Qwen Code, Muse, and Muse Code.
Install
<details> <summary><strong>Claude Code</strong></summary>claude plugin marketplace add aaddrick/contrarian
claude plugin install contrarian@contrarian
This adds the contrarian:contrarian subagent and the contrarian:contrarian skill. Ask Claude to "run the contrarian agent on this plan", or load the skill by hand:
/contrarian:contrarian
To skip the plugin and keep only the subagent, copy the agent file into your user or project agents folder:
curl -fsSL --create-dirs -o ~/.claude/agents/contrarian.md https://raw.githubusercontent.com/aaddrick/contrarian/main/.claude/agents/contrarian.md
</details>
<details>
<summary><strong>Claude Desktop, Cowork, and claude.ai</strong></summary>
Step 1. Open Customize > Plugins, select Add, then Add marketplace.
Step 2. Choose Add from a repository.
Step 3. Enter aaddrick/contrarian. Leave Sync automatically on so the plugin updates when this repository does. Then select Sync.
Step 4. Select Add next to Contrarian.
Step 5. Claude confirms the plugin is installed. It also appears in the desktop app and Cowork on the same account.
</details> <details> <summary><strong>Codex CLI and Codex app</strong></summary>Add the marketplace and install the plugin:
codex plugin marketplace add aaddrick/contrarian
codex plugin add contrarian@contrarian
Check that it installed:
codex plugin list
The Codex app reads the same Codex config, so the plugin shows up there too. Open Plugins in the sidebar to see it.
Start a new thread. Codex loads the skill when the task matches. To load it by hand, type:
$contrarian:contrarian
</details>
<details>
<summary><strong>Antigravity CLI</strong></summary>
agy plugin install https://github.com/aaddrick/contrarian
Check that it installed:
agy plugin list
Start a new session. Antigravity CLI loads the skill when the task matches. To load it by hand, type:
/contrarian:contrarian
Coming from Gemini CLI? If agy plugin import gemini brought this extension over, run the install command above anyway so the current copy replaces the imported one.
In Cursor Agent chat, type:
/add-plugin https://github.com/aaddrick/contrarian
Or open Customize, import a plugin From GitHub Repository, and enter https://github.com/aaddrick/contrarian. Then select Install next to Contrarian and choose project or user scope.
A plugin added from a GitHub URL can get stuck on an old commit. For dependable updates, clone the repository into Cursor's local plugin folder instead:
git clone https://github.com/aaddrick/contrarian.git ~/.cursor/plugins/local/contrarian
Then run Developer: Reload Window. Clone into that folder, don't symlink to it: Cursor skips symlinks that point outside it. To update, run git pull there and reload again.
Check that it installed: open Customize, then Skills. contrarian appears under Agent Decides.
Cursor loads the skill when the task matches. To load it by hand, type:
/contrarian
</details>
<details>
<summary><strong>Devin CLI</strong></summary>
Devin needs a signed-in account to manage plugins. If you are not signed in yet, run devin auth login first.
devin plugins install aaddrick/contrarian
Check that it installed:
devin plugins info contrarian
Start a new session. Devin loads the skill when the task matches. To load it by hand, type:
/contrarian:contrarian
To update it later:
devin plugins update contrarian
</details>
<details>
<summary><strong>Factory Droid</strong></summary>
droid plugin marketplace add https://github.com/aaddrick/contrarian
droid plugin install contrarian@contrarian
Check that it installed:
droid plugin list
In a Droid session, run /skills and open the Plugins tab to see the skill. Droid loads it when the task matches. To load it by hand, type /contrarian at the start of a prompt.
To update it later:
droid plugin marketplace update contrarian
droid plugin update contrarian@contrarian
</details>
<details>
<summary><strong>Gemini CLI</strong></summary>
gemini extensions install https://github.com/aaddrick/contrarian
Check that it installed:
gemini extensions list
The output lists contrarian under Agent skills. Start a new session. Gemini CLI loads the skill when the task matches and asks you to approve it first. To load it by hand, ask Gemini to use the contrarian skill.
To update it later:
gemini extensions update contrarian
</details>
<details>
<summary><strong>GitHub Copilot CLI</strong></summary>
copilot plugin marketplace add aaddrick/contrarian
copilot plugin install contrarian@contrarian
Check that it installed:
copilot skill list
contrarian shows under "Plugin skills". Copilot loads it when the task matches. To load it by hand, ask Copilot to use the contrarian skill.
grok plugin install aaddrick/contrarian --trust
Check that it installed:
grok inspect
contrarian appears under Skills. Start a new session. Grok loads the skill when the task matches. To load it by hand, type:
/contrarian
</details>
<details>
<summary><strong>Hermes Agent</strong></summary>
hermes skills install aaddrick/contrarian/skills/contrarian
Check that it installed:
hermes skills list
Start a new session. Hermes loads the skill when the task matches. To load it by hand, type:
/contrarian
You can install it as a plugin instead, with hermes plugins install aaddrick/contrarian --enable. A plugin skill does not load on its own, though: you have to ask Hermes to load the contrarian skill each time. The skills install route above does not have that limit.
Inside Kimi Code, type:
/plugins install https://github.com/aaddrick/contrarian
Start a new session so the skill loads:
/new
Check that it installed. The plugin shows as enabled with no errors:
/plugins info contrarian
Kimi loads the skill when the task matches. To load it by hand, type:
/skill:contrarian
</details>
<details>
<summary><strong>OpenCode</strong></summary>
OpenCode loads skills from ~/.config/opencode/skills/ on its own. Clone this repository and link the skill folder there:
git clone https://github.com/aaddrick/contrarian.git ~/.local/share/contrarian
mkdir -p ~/.config/opencode/skills
ln -s ~/.local/share/contrarian/skills/contrarian ~/.config/opencode/skills/contrarian
On Windows, copy the folder instead of linking it.
Check that it installed:
opencode debug skill | grep '"name": "contrarian"'
Restart OpenCode. It loads the skill when the task matches. To load it by hand, ask it to use the skill tool to load contrarian.
To update, run git -C ~/.local/share/contrarian pull.
pi install https://github.com/aaddrick/contrarian
Check that it installed:
pi list
Start a new session. Pi loads the skill when the task matches. To load it by hand, type:
/skill:contrarian
</details>
<details>
<summary><strong>Qwen Code</strong></summary>
qwen extensions install https://github.com/aaddrick/contrarian:contrarian
The :contrarian suffix picks the plugin. Leave it off and Qwen asks you to pick one.
Check that it installed:
qwen extensions list
contrarian appears under Skills:. Restart Qwen Code. It loads the skill when the task matches. To load it by hand, type:
/contrarian:contrarian
To update it later:
qwen extensions update contrarian
</details>
<details>
<summary><strong>Muse (muse.ai)</strong></summary>
Muse loads skills from ~/workspace/skills/ on its own computer. Paste this command into a Muse chat and ask Muse to run it:
curl -fsSL https://raw.githubusercontent.com/aaddrick/contrarian/main/scripts/install_muse.sh | bash
The script copies the skill folder there and rewrites the SKILL.md header into the shape Muse reads. Start a new chat. Muse loads the skill when the task matches. To update, run the command again.
Clone the repository:
git clone https://github.com/aaddrick/contrarian.git
Install the skill for every project:
muse skills install contrarian/skills/contrarian --scope user
Check that it installed:
muse skills list
Start a new session. Muse Code loads the skill when the task matches. To load it by hand, type:
/skill contrarian
To install it as a plugin instead, turn on Muse Code's experimental plugins first. Plugins are off by default in Muse Code 1.4.2.
export MUSE_EXPERIMENTAL_PLUGINS=1
muse plugins marketplace add contrarian aaddrick/contrarian
muse plugins install contrarian@contrarian
</details>
<details>
<summary><strong>Any other agent that reads SKILL.md</strong></summary>
Copy the skills/contrarian/ folder into your agent's skills folder.
What it does
It scales its depth to the stakes. A minor, easily reversed change gets a light pass that looks only for major blind spots. A significant feature gets a full assumption audit. An architecture, infrastructure, or security change gets everything, including a pre-mortem.
It works through five moves, most relevant first:
- Steel-man. Restate the proposal fairly and list its real strengths before any criticism.
- Assumption audit. List every unstated assumption and rate each by how likely it is to be wrong and what it costs if it is. Ignore the cheap ones.
Truncated for display — read the full file on GitHub.
Related Skills
ai-job-search
45.2kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.8kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
