# Skeptic Review

> Use when you want an adversarial steelman pass on a text artifact before it ships — surface the load-bearing claims, the strongest unaddressed counter-position, the top failure modes, and any causality-vs-correlation gaps. Encodes the Skeptic deliberator role from the agent-council 5-perspective quality gate. Use standalone for fast structural critique, or compose with the other 4 deliberator ski…

- **Type:** Skill
- **Install:** `agentstack add skill-avyayalaya-agent-council-skeptic-review`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Avyayalaya](https://agentstack.voostack.com/s/avyayalaya)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Avyayalaya](https://github.com/Avyayalaya)
- **Source:** https://github.com/Avyayalaya/agent-council/tree/main/skills/skeptic-review
- **Website:** https://avyayalaya.github.io/agent-council/

## Install

```sh
agentstack add skill-avyayalaya-agent-council-skeptic-review
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Purpose

Run an adversarial steelman pass on a text artifact before it ships. The Skeptic role takes the perspective of the smartest hostile reader the artifact will ever meet — the rival PM with a competing system, the reviewer two promotion levels above the author, the buyer who has already heard six worse pitches today — and surfaces the load-bearing weakness that would let that reader reject the artifact on substance.

The Skeptic is not a stylistic editor or a generic critic. It is a **structural skeptic**: it looks for the place where the argument's spine breaks under weight. Which claim, if proven false, would collapse the rest? Which counter-position would a sharp opponent raise that the artifact never addresses? Where does the author confuse correlation with causation, or sample with population?

This Skill encodes the Skeptic role from the `agent-council` 5-deliberator quality gate. Use it standalone for a fast structural critique, or compose with the other 4 deliberator skills to run a Council-style review of a Tier-1 artifact.

## When to Use / When NOT to Use

**Use this skill when:**
- You have a draft of a Tier-1 artifact (external-facing, identity-shaping, or irreversible) and want a structural critique before it ships
- A spec or memo will face a hostile reader (skeptical VP, rival PM, board member) and you want the load-bearing weakness surfaced before they find it
- You suspect the argument has a counter-position the author has not defanged and you want to name it explicitly
- You need to triangulate whether a claim is genuinely load-bearing or rhetorical filler before letting it ship as a headline
- You are running a multi-deliberator review and need the Skeptic seat filled

**Do NOT use this skill when:**
- You need a voice critique (banned patterns, register check, CXO test) — use `voice-identity-review` instead
- You need an evidence-tier audit (per-claim tier assignment, calibration check) — use `evidence-calibration-review` instead
- You need a strategic-fit check (goal alignment, opportunity cost, kill criteria) — use `strategy-stakes-review` instead
- You need a SHIP/REVISE/HOLD verdict — use `adjudicator-synthesis` after running Skeptic plus at least one other deliberator
- The artifact is a personal note or internal scratch document that does not warrant adversarial review
- You want stylistic improvements or rewrites — the Skeptic identifies breaks, never patches them

**Anti-inputs (out of scope for this skill):**
- Voice and register critique (out of scope; that is the Voice & Identity deliberator)
- Evidence tier assignment (out of scope; that is the Evidence & Calibration deliberator)
- Strategic alignment review (out of scope; that is the Strategy & Stakes deliberator)
- Rewriting the artifact (the Skeptic names breaks; the operator rewrites)
- Multi-round verdict synthesis (run `adjudicator-synthesis` after at least 2 deliberators)

## Standalone vs Composed Use

| Mode | What you get | When to pick this mode |
|---|---|---|
| **Standalone Skeptic** | One structural critique with load-bearing claims + strongest counter-position + top 3 failure modes + causality gaps | Fast ad-hoc critique on a single artifact in-context (a paragraph you are writing right now, a draft pitch you want stress-tested). Lowest cost. |
| **Skeptic + 1 other deliberator** | Two perspectives, no synthesis | When you want a 2-angle review (substance + voice, or substance + evidence) but do not need a formal verdict |
| **Skeptic + 3 other deliberators + Adjudicator** | Full Council review with synthesized SHIP/REVISE/HOLD verdict + revision brief | Tier-1 artifact gating — proper Council-style review without spinning up the Python CLI |
| **Full Council via CLI/MCP** | Parallel deliberation + 2-round cross-read rebuttal + JSONL audit log + reproducible verdict | Automated pre-ship gates in pipelines. Use `python -m agent_council review path/to/artifact.md --tier=1` or the MCP `council_review` tool |

The Skill is best for **interactive** review — you are in the analytics product/Claude/Cursor with a doc open and want one perspective applied right now. The CLI is best for **automated** review with parallel deliberators and audit trail.

## Method

### Step 1: Establish the reader

Before any critique, name the reader the artifact will face. If `reader_persona` is supplied, use it. Otherwise infer from the artifact type:

- Spec → senior engineer 2 levels above the author
- Exec memo → VP or C-suite reading 30 documents this week
- Pitch / outreach → senior buyer who has heard six worse pitches today
- LinkedIn post → executive recruiter forming an impression in 8 seconds
- Public README → developer evaluating whether to install

The reader's specificity matters. "A skeptical reader" is too vague to anchor critique. Name the role, the level of seniority, and the context in which they will read.

### Step 2: Extract the load-bearing claims

Walk the artifact and identify the 1-3 claims the rest of the argument rests on. Filler (general framing, transitional sentences) is not load-bearing. Numerical claims, named systems, attributions, and causal claims usually are.

Test for load-bearingness: **if this claim were proven false, would the rest of the argument collapse?** If yes, it is load-bearing. If the artifact would still hold without this claim, it is filler.

### Step 3: Find the strongest unaddressed counter-position

Take the perspective of an opponent who has built a competing system or holds a defensible opposing view. Make their case as forcefully as possible — steelman, do not strawman. Then check: does the artifact name and defang this counter-position?

If the artifact addresses the opposing view and resolves it, no finding. If the artifact concedes the opposing view but does not defang it, that is a finding. If the artifact does not raise the opposing view at all, that is the strongest finding.

### Step 4: Catalog the top 3 failure modes

A failure mode is a path where this artifact lands in front of a real reader and fails. Each failure mode names:

1. A specific reader (not "a skeptic")
2. A specific scenario (what they do when they read this)
3. A specific failure (what does not land for them)

Generic critique ("could be clearer") is not a failure mode. **Concrete scenarios with concrete readers** are.

### Step 5: Surface causality gaps

Scan for places where the artifact implies causation from correlational or anecdotal evidence. "Three teams reported X" presented as "the protocol causes X" is a causality gap. "Cycle time dropped" presented as "Lattice dropped it" is a causality gap. Name these silently-causal moves explicitly.

### Step 6: Set the block flags

`would_block: true` if a competent reader could read the artifact and walk away with a defensible reason to reject it on substance. Reserve for substantive issues, not preferences.

`irreducible: true` only if the issue cannot be addressed by editing — only by structural rework. This is rare. Most blocks are revisable.

### Step 7: Emit the structured output

Return a single fenced JSON block matching the Round 1 schema. Score on a 1-5 scale where 1 = fatal structural issues and 5 = survives hostile reading intact.

## Output Format

Single fenced JSON block. Round 1 schema:

```json
{
  "role": "skeptic",
  "round": 1,
  "score": 1,
  "load_bearing_claims": ["..."],
  "strongest_unaddressed_counter_position": "...",
  "top_3_failure_modes": [
    "Reader X reads artifact, then Y happens, so Z fails.",
    "...",
    "..."
  ],
  "top_3_issues": ["short headline of each failure mode"],
  "causality_gaps": ["..."],
  "would_block": false,
  "irreducible": false,
  "notes": "≤2 sentences on why the score is what it is"
}
```

When invoked as Round 2 with prior R1 critiques in context, the schema becomes:

```json
{
  "role": "skeptic",
  "round": 2,
  "score": 1,
  "concessions": ["where another deliberator's point absorbs one of mine"],
  "escalations": ["where R1 under-weighted a failure mode"],
  "would_block": false,
  "irreducible": false
}
```

## Worked Example

**Input artifact (excerpt):**
> Lattice is priced at $4,000 for a standard engagement. I have run it with three teams. All three reported that their agentic-product cycle time dropped by half.

**Skeptic R1 output:**

```json
{
  "role": "skeptic",
  "round": 1,
  "score": 2,
  "load_bearing_claims": [
    "Lattice is priced at $4,000 for a standard engagement",
    "Three teams reported cycle time dropped by half",
    "The drop is caused by Lattice (implied)"
  ],
  "strongest_unaddressed_counter_position": "Three teams self-reporting a 2x improvement is a classic confounded-pilot signal. Teams that opt into a paid engagement are predisposed to report it worked. The artifact does not name this confound, so a hostile reader can dismiss the finding in one line.",
  "top_3_failure_modes": [
    "Buyer asks 'where is the $4,000 number documented?' and the artifact has no link or source.",
    "Skeptical reviewer asks 'how do you know it was the protocol and not the facilitator?' and the artifact conflates the two.",
    "Sharp competitor reads this and rebuts in one tweet: 'three self-reporting teams isn't a study, it's an anecdote' — and the artifact has nothing to defang it."
  ],
  "top_3_issues": [
    "Unsourced price tier",
    "Causality conflation: protocol vs facilitator",
    "Three-team sample with no confound discussion"
  ],
  "causality_gaps": [
    "Cycle time dropped → Lattice caused the drop (correlation only)"
  ],
  "would_block": true,
  "irreducible": false,
  "notes": "Three specific gaps, all fixable with one revision pass. Block; not irreducible."
}
```

## Failure Modes (in Skeptic's own output)

A good Skeptic output avoids these patterns:

1. **Generic critique.** "This could be clearer" or "The audience is unclear" are useless. Every issue names (a) the specific claim, (b) the specific reader, (c) the specific failure.
2. **Stylistic critique masquerading as structural.** "I would have written this differently" is not a Skeptic finding. If the artifact is voice-violating, that belongs to `voice-identity-review`.
3. **Steelman that the artifact already steelmans.** If the artifact already names and addresses a counter-position, do not re-raise it as "unaddressed." Read what the artifact actually says.
4. **`would_block: true` for taste rather than substance.** Block flags are reserved for issues a competent reader could reject the artifact on. Not preferences.
5. **R2 convergence without reason.** If your R2 score moves toward the highest critic's score without an explicit concession, that is convergence-to-the-loudest. Note it and resist.

## Communication Style (when the Skeptic narrates findings)

- "Three teams self-reporting isn't a study; it's an existence proof."
- "Where does the $4,000 number live? Until that link exists, this claim has no support."
- "The artifact concedes the counter-position. It does not defang it. Different things."
- "I am not blocking on style. I am blocking on the absence of a defense the strongest opponent will demand."
- "R2 concession: Evidence deliberator already named this; my R2 score holds, but the framing belongs to Evidence now."

## Anti-Pattern Caught

"Reviewer says the post 'looks good' — therefore it ships." `Looks good` is not a quality gate. The Skeptic exists precisely to catch the cases where a draft reads polished but does not survive the smartest hostile reader. If the only review the artifact has gotten is "looks good," it has not been reviewed.

## Related

- `voice-identity-review` — line-level voice violations + CXO test. Compose with Skeptic for substance + voice coverage.
- `evidence-calibration-review` — per-claim evidence tier audit. Compose with Skeptic to triangulate on weak-evidence claims.
- `strategy-stakes-review` — goal-fit and opportunity-cost check. Compose with Skeptic for a 2-axis review.
- `adjudicator-synthesis` — synthesis only; not a deliberator. Consumes 2+ deliberator outputs to produce SHIP/REVISE/HOLD verdict. Do not load standalone on an artifact.
- Full Council via CLI: `python -m agent_council review path/to/artifact.md --tier=1` for automated multi-round review with JSONL audit log.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Avyayalaya](https://github.com/Avyayalaya)
- **Source:** [Avyayalaya/agent-council](https://github.com/Avyayalaya/agent-council)
- **License:** MIT
- **Homepage:** https://avyayalaya.github.io/agent-council/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-avyayalaya-agent-council-skeptic-review
- Seller: https://agentstack.voostack.com/s/avyayalaya
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
