Adversaria
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Uyari
- fs module — File system access in scripts/docs-commands.test.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Critical thinking plugin for Claude Code. Three specialized agents (advocate, adversary, judge) argue, stress-test, and judge any idea using a shared argument graph, 10 reasoning traditions, and persistent memory.
Adversaria
Critical thinking platform for Claude Code
Usage · Agents · Skills · How It Works · Traditions · Install
Adversaria is a Claude Code plugin for structured adversarial analysis. Three specialized agents argue, stress-test, and judge any idea over a shared argument graph whose verdict is decided by grounded argumentation semantics, drawing on 10 reasoning traditions, with persistent memory that accumulates insight across sessions.
The name comes from the Latin adversaria: a notebook of observations. It also evokes adversarial reasoning, the deliberate practice of challenging ideas to strengthen them.
Usage
Adversaria works through agents that Claude automatically delegates to based on what you ask. You don't need to manage the workflow yourself.
Natural language (Claude delegates automatically):
Steelman the case for rewriting our API in Go
What could go wrong with this migration plan?
Give me a verdict on this proposal
Play devil's advocate on this architecture decision
@-mention (guarantees a specific agent runs):
@advocate build the strongest case for microservices here
@adversary tear apart this launch plan
@judge what survives scrutiny in this proposal?
Slash commands (invoke a skill directly):
/adversaria:steelman the case for server-side rendering
/adversaria:crucible this database migration plan
/adversaria:verdict on the Q3 product roadmap
/adversaria:devils-advocate this entire investment thesis
/adversaria:appeal the verdict was too harsh on the migration plan
Session-wide (run an entire session as one agent):
claude --agent adversaria:advocate
claude --agent adversaria:adversary
claude --agent adversaria:judge
Agents
Three agents with distinct roles, each with persistent project memory that accumulates knowledge across sessions.
Advocate
Builds the strongest possible case for an idea with genuine conviction, then argues the complete opposite with equal force.
| Tradition | Steelmanning, Dissoi Logoi |
| Model | Sonnet |
| Skill | adversaria:steelman |
| Memory | Project-scoped, persistent |
| Triggers | "steelman", "make the best case", "argue both sides", "defend this idea" |
The advocate is not a summarizer and not a yes-man. A steelman that ignores obvious flaws is a straw man in disguise. The advocate addresses weaknesses by countering them, not hiding them.
Adversary
Finds every weakness, flaw, and failure mode. An authentic dissenter, not assigned devil's advocacy.
| Tradition | Crucible, Red Team, Socratic Elenchus, Gadfly |
| Model | Sonnet |
| Skill | adversaria:crucible |
| Memory | Project-scoped, persistent |
| Triggers | "stress-test", "poke holes", "red team", "what could go wrong", "what am I missing" |
[!NOTE]
Psychologist Charlan Nemeth proved that assigned devil's advocacy is less effective than authentic dissent and can make people more entrenched. The adversary is an authentic dissenter who genuinely looks for flaws, not a performer going through the motions.
Judge
Renders a dispassionate verdict from the argument graph evidence. No advocacy in either direction.
| Tradition | Roman Rota (appellate tribunal, est. 1171) |
| Model | Inherit |
| Skill | adversaria:verdict |
| Memory | Project-scoped, persistent |
| Triggers | "verdict", "bottom line", "final assessment", "what survives", "give it to me straight" |
The judge reads what the advocate built and what the adversary found, then determines what survives scrutiny, what does not, and what remains unresolved. Every claim in the verdict cites graph state, not opinion.
Skills
Skills are the structured workflows that agents execute internally. They are also available as standalone slash commands.
| Skill | What It Does | Used By |
|---|---|---|
/adversaria:steelman |
Build the strongest case for and against an idea. Register claims, assumptions, and evidence in the argument graph. | advocate |
/adversaria:crucible |
Socratic questioning, structural gap analysis, hostile review, and red team failure modes. Register weaknesses and mitigations. | adversary |
/adversaria:verdict |
Name the uncomfortable truth. Determine what survives scrutiny based on graph topology. Export the final verdict. | judge |
/adversaria:devils-advocate |
Orchestrate all three phases in sequence for a complete adversarial analysis. | standalone |
/adversaria:appeal |
Review a standing verdict as a second panel. Admit what the first pass missed, re-run, and report what moved. | standalone |
The first three are bound to an agent apiece, so Claude reaches them by delegating. devils-advocate and appeal are standalone — invoke them directly. appeal is deliberately not bound to the judge: the Roman Rota sends appeals to a different panel than the one that ruled.
[!TIP]
Skills compose through a shared argument graph that persists between runs. The steelman skill builds the graph, the crucible skill adds weaknesses to it, and the verdict skill reads the final state. Use/adversaria:devils-advocateto run all three in one pass, then/adversaria:appealif the ruling looks wrong.
How It Works
You ask a question
│
▼
┌───────────────┐
│ Claude Code │ Delegates based on what you asked
└───────┬───────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌─────────┐
│ Advocate│ │ Adversary│ │ Judge │
│ │ │ │ │ │
│ steelman│ │ crucible │ │ verdict │
└────┬────┘ └─────┬────┘ └────┬────┘
│ │ │
└────────────┼───────────┘
▼
┌───────────────────┐
│ Argument Graph │
│ │
│ claims, attacks, │
│ counters + who │
│ wrote each one │
└─────────┬─────────┘
│
┌─────────┴─────────┐
▼ ▼
grounded live transcript
semantics (WebSocket)
→ verdict
│
▼
appeal
(second panel)
- You describe what you need. Claude reads your request and delegates to the right agent based on its description.
- The agent invokes its skill. Each agent has a dedicated skill that defines its structured workflow: what to analyze, what to register in the graph, and what to produce.
- Skills read and write the argument graph. The graph is the shared state layer. Claims, assumptions, evidence, weaknesses, counters, and mitigations accumulate across agent runs.
- Results return to you. The agent summarizes its findings. The full graph state is available via
analyze,verdict, orexportcommands.
The Argument Graph
The argument graph is a knowledge graph that decomposes ideas into typed nodes connected by typed relations.
Node types: claim assumption evidence weakness counter precedent mitigation
Relation types: supports undermines assumes depends_on contradicts if_fails mitigates
The graph persists between agent runs, scoped per project. This is by design: what the advocate builds, the adversary attacks, and the judge reads. Every record carries the agent that wrote it and a sequence number, so the graph is also a transcript of who argued what, in order.
The verdict is not a vote count
Adversaria decides what survives using grounded argumentation semantics: an attack from a node that has itself been defeated does not count.
gartner-2026 ──supports──▶ cost-reduction
vendor-lockin ──undermines──▶ cost-reduction
multi-cloud-abstraction ──undermines──▶ vendor-lockin
multi-cloud-abstraction is unattacked, so it stands. That defeats vendor-lockin. With its only attacker defeated, cost-reduction survives — having been attacked and held. Remove the counter and it fails instead.
This is what makes the contest fair. The adversary's attacks sink claims, and the advocate's counters can sink the attacks back. Nodes are labelled IN, OUT, or UNDECIDED; mutual attacks settle at UNDECIDED rather than resolving arbitrarily, and circular reasoning is reported separately.
Live transcript
Watch the agents argue in real time:
bun scripts/transcript.ts serve # from a clone; opens your browser
bun scripts/transcript.ts serve --no-open # print the URL instead
It serves a page on 127.0.0.1 (ephemeral port, loopback only) that streams each claim, weakness, and counter over a WebSocket as it is written, alongside the current standing of every node. Nothing starts unless you run it, and the server exits on its own after 30 idle minutes.
The Thought Chain
The thought chain tracks reasoning as numbered steps with revision and branching. Used by the /adversaria:devils-advocate orchestrator to sequence its seven-step analysis across all three phases.
Traditions
Adversaria draws from 10 intellectual traditions of structured dissent and rigorous argument.
| # | Tradition | Origin |
|---|---|---|
| 1 | Devil's Advocate | Catholic canonization (est. 1587). Nemeth's warning: inauthentic dissent backfires. |
| 2 | Dissoi Logoi | Greek contrasting arguments (~400 BCE). "X can be Y and not-Y." |
| 3 | Lawsuits Against the Devil | Mayo v. Satan (1971), Chambers v. God (2008). Every argument deserves examination. |
| 4 | Crucible | Pentagon/NASA stress-test review. The board's goal is to break it on technical merit. |
| 5 | Polemic | Greek polemikos, "warlike." Constructive polemic exposes genuine errors. |
| 6 | Red Team | RAND Corporation, 1960s. Israel's Ipcha Mistabra. Three teams reviewed the bin Laden raid intel. |
| 7 | Roman Rota | Catholic appellate tribunal, records from 1171. Mandatory opposition. Different panel for appeals. |
| 8 | Social Gadfly | Plato's Apology. "If you kill a man like me, you will injure yourselves more than you will injure me." |
| 9 | Socratic Method | Elenchus: argument of disproof. "Life without examination is not worth living." |
| 10 | Steelmanning | Address the strongest form of an argument, not the weakest. Isaac Watts (1724). |
Install
From the marketplace
/plugin marketplace add damionrashford/Adversaria
/plugin install adversaria@damionrashford-adversaria
After installing, run /reload-plugins to activate.
Local development
claude --plugin-dir /path/to/Adversaria
Requirements
- Claude Code v2.1 or later (plugin agents, async hooks)
- Bun — the engines are TypeScript run directly by Bun. No
npm install; the plugin ships no dependencies.
Plugin Structure
Adversaria/
├── .claude-plugin/
│ ├── plugin.json # Plugin manifest
│ └── marketplace.json # Marketplace catalog
├── agents/
│ ├── advocate.md # Steelman agent
│ ├── adversary.md # Stress-test agent
│ └── judge.md # Verdict agent
├── skills/
│ ├── devils-advocate/ # Full analysis orchestrator
│ │ └── SKILL.md
│ ├── steelman/ # Build the best case
│ │ └── SKILL.md
│ ├── crucible/ # Stress-test
│ │ └── SKILL.md
│ ├── verdict/ # Render judgment
│ │ └── SKILL.md
│ └── appeal/ # Second-panel review
│ └── SKILL.md
├── references/ # 10 traditions + the semantics guide, shared by all skills
├── scripts/
│ ├── argument-graph.ts # Graph engine + grounded semantics
│ ├── thought-chain.ts # Sequential reasoning engine
│ └── transcript.ts # Live WebSocket transcript UI
├── hooks/
│ ├── hooks.json # Event handlers
│ └── scripts/ # Hook scripts (TypeScript)
├── README.md
└── LICENSE
License
Built by Damion Rashford
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi