Skip to content
Back to skills

Choose An Adversary

ASecurity

Use when a review must be run by a different model family than the one that authored the work — an independent adversary, not a self-review. Called by critique skills that need real independence.

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
content-marketingrustbash

Works with

  • cli

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add sidereal-io/sidereal --skill choose-an-adversary --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Choose An Adversary?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Choose An Adversary
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sidereal-io-choose-an-adversary/badge)](https://www.skillsdirectory.com/skills/sidereal-io-choose-an-adversary)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: choose-an-adversary
description: Use when a review must be run by a different model family than the one that authored the work — an independent adversary, not a self-review. Called by critique skills that need real independence.
---

# Choosing an Adversary

A critic that inherits the author's reasoning just confirms it. Independence is a property of the model family that answers, not the CLI that launches it. This skill picks an independent family, runs the critique read-only, and hands the raw findings back. The caller verifies and presents them.

## Establish the author family

Find who wrote the work. First answer wins:

- **A provenance note** on the artifact.
- **This session** — you wrote or shaped the work here.
- **Ask the author.** Do not guess. A wrong answer turns the review into a rubber stamp.

## Pick the reviewer family

Take the first family that is not the author's and whose executor is installed (`command -v`).

| Family | Executor | Reasoning dial |
|---|---|---|
| `gpt` | `codex` | `-c model_reasoning_effort=` |
| `claude` | `claude` | model choice |
| `gemini` | `agy` | folded into model choice |

Order: `gpt` → `claude` → `gemini`. If the only installed family is the author's, stop and report "no independent adversary available" so the caller can fall back to an in-session critique.

## Scale the scrutiny

Score what the work changes, not its length.

| Tier | Fits |
|---|---|
| `low` | Narrow fix or polish; one unit; no new contracts |
| `medium` | Single subsystem on known patterns; contained blast radius |
| `high` | Multiple units; new contracts, migrations, or trust boundaries; architecture-changing |

Use the reviewer's strongest reasoning model. Run `low` and `medium` in the foreground. Run `high` in the background with a long timeout. Discover current model ids at run time (for example, `agy models`) rather than trusting names written here — ids rot.

## Run it read-only

Write the critique prompt to a scratch file. Run from the work's directory. Every recipe below is read-only.

```bash
# codex — read-only sandbox; reasoning is its own dial
codex exec -s read-only -m <model> -c model_reasoning_effort="<tier>" \
  -o <scratch>/critique-raw.md - < <scratch>/critique-prompt.md

# claude — plan mode is read-only
claude -p --permission-mode plan --model <model> \
  < <scratch>/critique-prompt.md > <scratch>/critique-raw.md

# agy — plan mode is read-only; the prompt is the value of -p and comes last
agy --mode plan --model "<a gemini model from agy models>" --print-timeout <timeout> \
  -p "$(cat <scratch>/critique-prompt.md)" > <scratch>/critique-raw.md
```

This costs real tokens. Never loop it. Re-run only when the work or the question changed. If an executor errors or runs out of credit, fall to the next family and tell the caller about the substitution.

## Hand back the raw findings

Return the raw findings file to the caller. Do not triage here. The caller has the product context to judge which findings matter.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…