| name | spar |
| description | Adversarial review of any content — essays, designs, plans, or ideas |
| argument-hint | [file path | topic | inline content from conversation] |
| allowed-tools | Read Write StrReplace Shell Glob Grep SemanticSearch WebSearch WebFetch |
Spar — Adversarial Review
Steel-man counterarguments against a target — an essay, a design decision, a thesis, a plan, or an idea shared in conversation. The goal is to surface genuine weaknesses, not to perform contrarianism. Distinguish between structural criticisms (the argument doesn't hold) and presentation criticisms (the argument holds but the writing undermines it).
This is the sparring partner, not the sycophant.
Step 1: Identify the target
Parse $ARGUMENTS to determine what to spar against:
- File path → Read the file and all files it links to or references
- Topic keyword → Search the project for relevant content (docs, plans, notes)
- No arguments / conversation context → Spar against whatever thesis or idea the user has been discussing
If ambiguous, ask: "What should I argue against? A specific file, a thesis you've been exploring, or something else?"
Step 2: Gather full context
Before generating arguments, load everything the target depends on:
- Read the target file in full
- Follow internal links (if the target references other docs, read the relevant sections)
- Check for related plans, briefs, or roadmaps in the project
- Check for source material or references the target draws from
The adversarial review must understand what the target is trying to say before arguing against it.
Step 3: Generate adversarial arguments
Produce 3-7 arguments. For each:
Structure:
## N. [Argument title]
**Type:** Structural | Presentation | Scope | Evidence | Consistency
**The argument:** [Steel-manned critique — the strongest version of this objection, not a strawman]
**Why it matters:** [What breaks or weakens if this criticism is valid — in concrete terms]
**Strength:** Strong | Moderate | Weak
[One sentence on whether this is a genuine weakness or contrarian pattern-matching]
Argument types:
- Structural — the core claim doesn't hold (logic, evidence, mechanism)
- Presentation — the claim holds but the framing undermines it (tone, irony, overreach)
- Scope — the argument is scoped too narrowly or too broadly
- Evidence — claims presented as findings that are actually assertions
- Consistency — the target contradicts itself or other content in the project
Guidelines for generating arguments:
- Steel-man, not strawman. Present the strongest version of each objection.
- Attack the strongest claims, not the weakest. Easy targets aren't useful.
- Check for the target's own thesis being violated by the target itself (the most valuable finding).
- Look for assertions dressed as evidence — confident prose covering unverified claims.
- Consider what audience would find this unconvincing, and why.
- Do NOT pad with weak arguments to hit a count. 3 strong arguments beat 7 weak ones.
Step 4: Self-audit
After generating arguments, rate your own work:
- Which arguments are genuine weaknesses vs. contrarian posturing?
- Did you attack the strongest claims or take easy shots?
- Are you pattern-matching into a "devil's advocate" role rather than doing real analysis?
State this honestly at the end:
## Self-Audit
**Strongest argument above:** [number] — [why this one actually matters]
**Weakest argument above:** [number] — [why this might be contrarian pattern-matching]
**What I might be missing:** [blind spots in the adversarial review itself]
Step 5: Close the loop
End with: "Where am I right, and where am I pattern-matching my way into a contrarian position?"
Step 6: Optionally save sparring notes
If the user wants to preserve the sparring for revision:
- Ask: "Want me to save these as sparring notes?"
- If yes, create
sparring-notes.md in a relevant directory with the same structure above, plus blank response sections for the user to fill in.
- Commit with message prefix
sparring: if appropriate.
<success_criteria>
- Every argument is steel-manned (strongest version of the objection)
- Arguments target the strongest claims, not the weakest
- Clear distinction between structural and presentation criticisms
- Self-audit honestly identifies which arguments are strongest and weakest
- The user feels genuinely challenged, not performatively challenged
- No sycophantic softening ("these are minor points" or "overall this is great, but...")
</success_criteria>