SkillAgentSearch skills...

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/contrarian

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

87/100

Supported Platforms

Claude Code
Gemini CLI
Cursor
GitHub Copilot
OpenAI Codex

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.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
7/20
Freshness
15/15

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.

SkillScoreStarsUpdatedFormat
contrarian (this skill)by aaddrick8738todaySKILL.md
ai-job-searchby MadsLorentzen10045.2k1d agoCLAUDE.md
claude-howtoby luongnv8910041.8k7d agoCLAUDE.md
algorithmic-artby anthropics100177.9k14d agoSKILL.md
pptxby anthropics100177.9k14d agoSKILL.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.
<p align="center"> <img src=".github/assets/social-preview.png" alt="Contrarian" width="640"> </p> <p align="center"> <strong>Contrarian</strong><br> <em>A devil's advocate for coding agents. It stress-tests plans before reality does.</em> </p> <p align="center"> <a href="UNLICENSE"><img src="https://img.shields.io/github/license/aaddrick/contrarian?style=flat" alt="License"></a> <a href=".github/workflows/checks.yml"><img src="https://img.shields.io/github/actions/workflow/status/aaddrick/contrarian/checks.yml?label=checks&style=flat" alt="Checks"></a> <a href=".github/workflows/plugin-load-check.yml"><img src="https://img.shields.io/github/actions/workflow/status/aaddrick/contrarian/plugin-load-check.yml?label=plugin%20loads&style=flat" alt="Plugin loads"></a> </p> <p align="center"> <a href="https://www.linkedin.com/in/aaddrick/">Connect on LinkedIn!</a> </p>

When 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.

</details> <details> <summary><strong>Cursor</strong></summary>

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.

</details> <details> <summary><strong>Grok Build CLI</strong></summary>
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.

</details> <details> <summary><strong>Kimi Code</strong></summary>

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.

</details> <details> <summary><strong>Pi</strong></summary>
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.

</details> <details> <summary><strong>Muse Code</strong></summary>

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.

</details>

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:

  1. Steel-man. Restate the proposal fairly and list its real strengths before any criticism.
  2. 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

View on GitHub
GitHub Stars38
CategoryDevelopment
Updated13h ago
Forks2

Languages

Python

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info
contrarian — Claude Code Skill: Install & Safety Check | SkillAgent