thinking-steel-manning — Claude Code skill: how to install
Builds the strongest opposing argument before rejecting or adopting a technical plan. Useful for architecture reviews and preventing sycophantic AI agreement.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a claude-codeWhat thinking-steel-manning does
The skill enforces the steel-manning method during design reviews and technical debates. Instead of knocking down a weak caricature, the agent crafts the strongest plausible version of the opposing argument. It identifies legitimate concerns behind the alternative view and checks concrete evidence that could challenge the chosen path.
The workflow runs through five steps and outputs a structured template. Output fields include claim, core_insight, steel_man, overturn_if, looked_for_overturn, response_to_steel_man, decision, update, and residual_risks. The agent cannot stop at listing counterarguments; it must select accept_opposing, revise, or reaffirm with explicit residual risks.
This routine is strictly blocked for factual bugs or security anti-patterns. Trying to rationalize broken code or running lengthy debates during an active incident delays the fix. In an emergency, resolve the issue first and defer steel-manning to the post-mortem.
What it helps with
- stress-test architecture proposals against the strongest counter-arguments
- prevent AI sycophancy when validating engineer proposals
- establish explicit conditions to overturn a technical decision
- surface residual risks before locking in a design choice
Example prompts for the agent
- Run thinking-steel-manning on our proposal to migrate the database to DynamoDB.
- Before approving this microservices split, steel-man the case against it.
- Evaluate whether we should drop our custom auth system using thinking-steel-manning.
How to install thinking-steel-manning
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a claude-code2Manually: put the files in place
~/.claude/skills/thinking-steel-manning/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thinking-steel-manning/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a codex2Manually: put the files in place
.agents/skills/thinking-steel-manning/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a cursor2Manually: put the files in place
.cursor/skills/thinking-steel-manning/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-steel-manning2Manually: put the files in place
.github/skills/thinking-steel-manning/SKILL.md1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a gemini-cli2Platform CLI
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-steel-manningManually: put the files in place
.devin/skills/thinking-steel-manning/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thinking-steel-manning
How to install thinking-steel-manning in Claude Code?
Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-steel-manning -a claude-code in your terminal.
What does thinking-steel-manning do?
It requires the agent to formulate the strongest faithful argument against a proposal before deciding. The agent must test its position against that case and either accept the opposing view, revise the plan, or reaffirm with stated residual risks.
When should you avoid using thinking-steel-manning?
Do not run it for factual errors, security flaws, or active production incidents. It is also unnecessary for trivial, reversible choices where the debate costs more than the outcome.
Source text
SKILL.md · MIT
--- name: thinking-steel-manning description: Before rejecting a proposal or reflexively agreeing, build the strongest faithful opposing case, state agreement conditions, then update or reaffirm. disable-model-invocation: true --- # Steel-Manning **Core rule:** Engage the best form of the opposing case, not a weak one. If your position survives that, reaffirm; if not, update. ## When to Use - About to reject a proposal, design, or alternative approach. - Inclined to agree with the user/plan and risk sycophancy — construct the best case *against* first. - Design review, architecture debate, or conflict where trade-offs are real. - Validating your own preferred decision before locking it (strongest-countercase check). ## When NOT to Use - Settled fact, security anti-pattern, or violated hard requirement — correct it; do not invent a defense of what is wrong. - You already agree for stated, weighed reasons — do not perform a fake debate. - Trivial or fully reversible choices where deliberation cost exceeds downside. - Live emergency — act first; steel-man in the post-incident review. - Need definition/assumption cleanup, not opposition — use socratic. - Need failure scenarios for a plan — use pre-mortem; need attacker paths — use red-team. ## Procedure 1. **State the target claim or decision** you are about to accept or reject, in one sentence. Name the real alternative if one exists. 2. **Extract the core insight** behind the opposing position (or against your preferred path): the legitimate concern even if the proposed solution is wrong. 3. **Construct the strongest faithful case** an informed advocate would make: best evidence, incentives, and failure modes — no mockery, no cherry-picked weak version, no motive attacks. Include base rates or concrete alternatives that could overturn the preferred path when relevant. 4. **State agreement / overturn conditions.** Write one observation or result that would make you accept the opposing case (or abandon your preferred path), and whether you have looked for it. 5. **Engage that strong version, then decide.** Respond to the steel-manned case on the merits. Output one of: accept opposing path, revise synthesis, or reaffirm original with explicit residual risks. Naming the countercase without accept/revise/reaffirm is incomplete. Stop once the decision updates or is reaffirmed with conditions. ## Output ```text claim: <decision or proposal under test> core_insight: <legitimate concern behind the opposition> steel_man: <strongest faithful opposing argument> overturn_if: <concrete observation that would change your mind> looked_for_overturn: yes | no | partial response_to_steel_man: <engagement on the merits> decision: accept_opposing | revise | reaffirm update: <what changed in belief or plan, or why reaffirm stands> residual_risks: <what remains even after reaffirm/revise> ``` ## Verification - **Falsify / stop:** If the "steel man" is weaker than the original or attacks a caricature, rebuild it. If no overturn condition is stated, the check is incomplete. If evidence meets the overturn condition, you must update — reaffirmation is then false. - **Over-application guard:** Do not steel-man factual errors or hard constraints. Do not run a full adversarial brief for near-zero-cost reversible choices. Do not use this skill to delay an emergency response.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills