Skip to content
Back to skills

Appeal

ASecurity

Review a standing verdict as a second panel, admitting new counters and evidence the first pass missed, then re-run and report what changed. Use when the user disputes a verdict, says it was too harsh or too generous, asks to appeal, asks for a second opinion on an analysis, or says the judge got it wrong.

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgobashnodeawsgit

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add damionrashford/Adversaria --skill appeal --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Appeal?

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

Security grade badge for Appeal
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/damionrashford-appeal/badge)](https://www.skillsdirectory.com/skills/damionrashford-appeal)

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: appeal
description: >
  Review a standing verdict as a second panel, admitting new counters and evidence the first pass
  missed, then re-run and report what changed. Use when the user disputes a verdict, says it was
  too harsh or too generous, asks to appeal, asks for a second opinion on an analysis, or says the
  judge got it wrong.
argument-hint: "what the verdict got wrong, or leave empty to review the whole ruling"
---

# Appeal (Second Panel)

**Context:** $ARGUMENTS

The Roman Rota does not let the panel that issued a ruling hear its own appeal.
This skill is the second panel: it reviews the standing verdict on the record,
admits what the first pass missed, and re-runs. It is not a rubber stamp and it
is not a reversal engine — most appeals should confirm.

Read `${CLAUDE_PLUGIN_ROOT}/references/roman-rota.md` and
`${CLAUDE_PLUGIN_ROOT}/references/argument-semantics.md`.

## Workflow

### 1. Read the record, then seal it

Never re-argue from the conversation. Appeal from the graph.

```bash
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" verdict
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" transcript
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" lock --agent judge
```

`lock` seals the record: the engine will refuse `reset` and refuse edits to prior
testimony until `unlock`. This is enforced, not a convention — a sealed entity
cannot gain observations, so the history the appeal rules on cannot be rewritten
underneath it. New nodes and new relations remain allowed; that is the appeal.

If the graph is empty there is nothing to appeal — say so and stop.

### 2. Find the appealable error

A verdict is only overturned on a defect in the record, not on disagreement
with the conclusion. Look for exactly these:

| Ground | What it looks like in the graph |
| :--- | :--- |
| **Undefended claim** | a claim went `OUT` and no counter was ever registered against its attacker |
| **Unattacked attacker** | a weakness is `IN` only because nobody tested it |
| **Missing evidence** | a claim is `needs_more_work` as unsupported, but support exists and was never registered |
| **Ungrounded assumption** | a claim was demoted for resting on an assumption that evidence could ground |
| **Circular reasoning** | `circular_reasoning` is non-empty and the verdict ignored it |

If none of these hold, the appeal fails. Report the verdict as confirmed and
stop. **Confirming is the expected outcome** — an appeal court that reverses
everything is not a court.

### 3. Enter new material

Register what the first pass missed, attributed to the role whose case it
serves. Add only material you can actually defend:

```bash
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" add "<counter-id>" counter --obs "<why the attack fails>" --agent advocate
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" relate "<counter-id>" undermines "<weakness-id>" --agent advocate
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" add "<evidence-id>" evidence --obs "<source>" --agent advocate
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" relate "<evidence-id>" supports "<assumption-id>" --agent advocate
```

An appeal can also go against the original appellant — if the first pass let a
claim through unchallenged, attack it now:

```bash
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" add "<weakness-id>" weakness --obs "<what breaks>" --agent adversary
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" relate "<weakness-id>" undermines "<claim-id>" --agent adversary
```

### 4. Re-run, diff, and unseal

```bash
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" verdict
bun "${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts" unlock --agent judge
```

Compare against the verdict from step 1 and report **what moved and why**, in
terms of the graph:

> `cost-reduction` moved from `does_not_survive` to `survives_scrutiny`:
> `multi-cloud-abstraction` was entered against `vendor-lockin`, which is now
> `OUT`, so its attack no longer counts.

## Output format

1. **Standing verdict** — what the first pass concluded
2. **Ground for appeal** — which defect above, or none
3. **New material** — what was entered, and by which role
4. **Revised verdict** — the re-run result
5. **What moved** — each change, traced to the node that caused it
6. **What stands** — everything the appeal confirmed

If nothing moved, say so plainly. "The appeal is dismissed; the verdict stands"
is a complete and legitimate result.

## Rules

- Appeal from the record. If it is not in the graph, it is not before the court.
- The record is sealed by `lock` — the engine refuses `reset` and refuses edits
  to prior testimony while the appeal runs. Do not work around it with
  `DA_FORCE_RESET`; that discards the case. `unlock` when the ruling is delivered.
- Do not reverse on preference. Name the structural defect or confirm.
- Attribute new material to the role it serves, so the transcript stays honest
  about who argued what.

## Resources

- `${CLAUDE_PLUGIN_ROOT}/references/roman-rota.md` — load always. Mandatory
  opposition, and why appeals go to a different panel.
- `${CLAUDE_PLUGIN_ROOT}/references/argument-semantics.md` — load always. How
  labels are computed, so "what moved" can be explained mechanically.
- `${CLAUDE_PLUGIN_ROOT}/references/lawsuits-against-the-devil.md` — load when
  the verdict was dismissive rather than reasoned.
- `${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.ts` — `verdict` and
  `transcript` to read the record, `add` and `relate` to enter new material.

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.