devils-advocate · git:20260719.fbbb6f9 · 2026-07-19 · sha256 c614b81aa5496390

devils-advocate git:20260719.fbbb6f9A

Immutable. This exact content is served forever at /api/v1/blob/c614b81aa5496390.

---
name: devils-advocate
description: Adversarially review a research artifact (`<topic-slug>-survey.md`) or a user-supplied claim. Searches for counter-evidence, names the strongest objections, and routes each to a verdict — either a confidence-rating downgrade or a do-not-resolve verdict for an irreducible tension where both sides are well-evidenced under different conditions. Grounded in ACH (evidence-against column — the discipline that catches premature closure) and GIJN investigative-journalism practice ("what does the other side say"). Auto-invoked by `/desk-research` deep mode against `<topic-slug>-survey.md`; runs standalone against any user-supplied claim. Produces `<topic-slug>-counterpoints.md` linking back to the source artifact. Depth cues — `quickly`, `top three`, `briefly`, `summary only` for the strongest objections; `comprehensively`, `exhaustively`, `in depth`, `extensive` for the full set.
---

# /devils-advocate

The adversarial review pass. Reads a finding, an artifact, or a claim,
and tries to take it down with cited counter-evidence.

## When to invoke

- **Auto-invoked** by `/desk-research` deep mode against `<topic-slug>-survey.md`.
- **Standalone** against a user-supplied claim ("argue against this
  finding"). The skill body handles both invocations.
- **In the decision pipeline**, against `<topic-slug>-hypotheses.md` to surface
  the counter-evidence each hypothesis must answer.

## Invocation shapes

This skill runs in two shapes:

- **Pipeline invocation** — expects a target artifact in the working
  directory (`<topic-slug>-survey.md` from `/desk-research`, or
  `<topic-slug>-hypotheses.md` from `/compare-hypotheses`). The artifact's
  findings are the input set.
- **Standalone invocation** — targets a user-supplied claim. The user
  supplies the claim explicitly; no upstream artifact is required.

## Methodology

Two convergent disciplines:

1. **ACH evidence-against column** — Analysis of Competing Hypotheses
   forces the analyst to list evidence *against* each hypothesis,
   alongside evidence for. The discipline catches premature closure:
   the model finds three supporting sources, stops, declares done. ACH
   refuses that move.

2. **GIJN investigative-journalism practice** — Global Investigative
   Journalism Network's standard rule: before publication, ask "what
   does the other side say?" and seek it out. The pack borrows the
   *seek-the-other-side* discipline as a final-step gate.

## Procedure

1. **Read the target.** Pipeline mode: load the upstream artifact.
   Standalone mode: take the user's claim verbatim.
2. **Enumerate counter-positions** — for each finding or claim, what
   would a serious critic say? Generate the strongest version of the
   objection, not the weakest.
3. **Retrieve counter-evidence** — dispatch `evidence-retriever`
   subagent against each counter-position. The main session does the
   reasoning; the subagent supplies the material.
4. **Route each substantive evidence-against to a verdict** — for each
   finding whose evidence-against is substantive, pick one of two
   verdicts:
   - **Rating downgrade** — the evidence-against weakens the finding:
     propose the new confidence rating (`[high]` → `[moderate]`, or
     `[moderate]` → `[low]`, etc., per `references/confidence-schema.md`)
     and name the downgrade factor. This is the default verdict.
   - **Do-not-resolve** — the evidence-against does *not* weaken the
     finding; it establishes a credible *opposing* position that is
     itself well-evidenced, so the finding and its counter are both
     right under different conditions. See *The do-not-resolve verdict*
     below. Reach for this only when a downgrade would misrepresent the
     situation.
5. **Moderator pass** — before declaring done, scan retrieved-but-
   uncited counter-material and consider one more query from the
   highest-signal unused snippet (Co-STORM contribution).
6. **Write `<topic-slug>-counterpoints.md`**, linking back to the source
   artifact. `<topic-slug>` matches the survey it reviews; the naming rule
   lives in the `/desk-research` skill body (§ Typed, topic-named artifacts).

## The do-not-resolve verdict

A rating downgrade says *"trust this finding less — the evidence is
weaker than it was rated."* It is the right verdict when the
counter-evidence undercuts the finding: a single source where three
were claimed, an unaccounted contested-in-field factor, a benchmark
that doesn't replicate.

But sometimes the counter-evidence is not a weakness in the finding —
it is a credible, well-evidenced position that *opposes* it, and both
survive scrutiny because they are right under **different conditions**.
The disagreement is in the world, not in a gap in the evidence.
Downgrading the finding here is wrong twice over: it implies the
finding is shaky (it isn't), and it implies that more evidence would
settle the question (it won't). The honest verdict is **do-not-resolve**:
name the productive tension, state the conditions under which each side
holds, and leave both standing.

Use the test: *would more or better evidence collapse this to one
answer?* If yes, it is a confidence question — downgrade. If no — if
the two positions are answers to subtly different questions, or hold in
different regimes — it is an irreducible tension, and you record it
rather than adjudicate it. Do-not-resolve is the `/devils-advocate`
counterpart to the tension map `/identify-perspectives` builds upstream:
the same irreducibility, surfaced adversarially against a finding rather
than enumerated across camps.

Do-not-resolve is **not** an escape hatch for "the evidence is thin so I
won't commit." Thin evidence is `[uncertain]` (a `/desk-research` rating) or
a known-unknown (a `/desk-research` gap entry) — not a tension. A
do-not-resolve verdict requires *substantive evidence on both sides*.

## `<topic-slug>-counterpoints.md` output schema

```markdown
# Counterpoints — <target artifact or claim>

## Finding: <quoted from target>

- **Counter-position:** <strongest objection, one paragraph>.
- **Counter-evidence:** <citations>.
- **Verdict:** rating downgrade — `[high]` → `[moderate]`. Reason:
  contested-in-field.

## Finding: <next>

- **Counter-position:** <a credible, well-evidenced opposing position>.
- **Counter-evidence:** <citations — substantive, on both sides>.
- **Verdict:** do-not-resolve. Both hold under different conditions:
  <finding> holds when <conditions>; <counter-position> holds when
  <conditions>. More evidence would not collapse this to one answer.
```

The `Verdict` line carries exactly one of the two outcomes from step 4 —
a rating downgrade *or* do-not-resolve, never both for the same finding.

## Citation discipline

Every counter-evidence claim carries a citation. A counter-position
that the model invents without cited backing is marked `[inference]`
and tagged as such in the counterpoints.

## Depth cues

- `quickly`, `top three`, `briefly`, `summary only` — return the
  strongest one or two objections per finding only.
- `comprehensively`, `exhaustively`, `in depth`, `extensive` —
  enumerate every credible counter-position; include weaker objections
  for completeness.