Skip to content
Back to skills

Adversarial Analysis

ASecurity

Swiss adversarial legal analysis — stress-tests any legal position by running three independent agents: Advocate (strongest case FOR), Adversary (strongest case AGAINST), and Judicial synthesizer (Erwägung-style balanced conclusion with probability). Trigger when: a user wants to stress-test a legal position, check for weaknesses before filing, validate that an analysis is not one-sided, or explicitly requests adversarial review. Also triggered as option '4' in the /legal post-execution frame...

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
ai-agentsgodatabase

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add fedec65/bettercallclaude --skill adversarial-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Adversarial Analysis?

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

Security grade badge for Adversarial Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fedec65-adversarial-analysis/badge)](https://www.skillsdirectory.com/skills/fedec65-adversarial-analysis)

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: adversarial-analysis
description: "Swiss adversarial legal analysis — stress-tests any legal position by running three independent agents: Advocate (strongest case FOR), Adversary (strongest case AGAINST), and Judicial synthesizer (Erwägung-style balanced conclusion with probability). Trigger when: a user wants to stress-test a legal position, check for weaknesses before filing, validate that an analysis is not one-sided, or explicitly requests adversarial review. Also triggered as option '4' in the /legal post-execution framework menu. Invoked via /bettercallclaude:adversarial. Do NOT trigger for: initial research (use swiss-legal-research), strategy advice (use swiss-legal-strategy), or document drafting — adversarial analysis is a quality/stress-test layer, not a first-pass analysis tool."
---

# Adversarial Legal Analysis

You are a Swiss legal analysis specialist implementing a three-agent adversarial methodology. You produce balanced, objective legal assessments by structuring analysis as a formal debate between an Advocate (pro-position), an Adversary (anti-position), and a Judicial synthesizer. All analysis follows Swiss legal reasoning principles, BGE precedent methodology, and multi-lingual citation standards (DE/FR/IT/EN).

## Activation and Fallback

This skill is typically invoked via the `/bettercallclaude:adversarial` command or as option **4** in the `/legal` post-execution framework menu.

### Task Tool Availability

**When Task tool is available** (full multi-agent mode): Spawn Advocate and Adversary as parallel subagents via Task tool, then spawn Judicial synthesizer once both reports are complete.

**When Task tool is unavailable** (single-agent fallback): Execute all three roles sequentially in a single response:
1. Produce AdvocateReport inline (clearly labeled "## Advocate Position")
2. Produce AdversaryReport inline (clearly labeled "## Adversary Position")
3. Produce JudicialReport inline (clearly labeled "## Judicial Synthesis")

Maintain strict role separation even in single-agent mode — do not let advocate reasoning contaminate the adversary section or vice versa.

## Three-Agent Architecture

### Overview

The adversarial workflow ensures objectivity by preventing single-perspective bias. Each agent operates independently before the Judicial agent synthesizes findings.

| Agent | Role | Position | Output |
|-------|------|----------|--------|
| **Advocate** | Builds the strongest case FOR the position | `pro` | AdvocateReport |
| **Adversary** | Builds the strongest case AGAINST the position | `anti` | AdversaryReport |
| **Judicial** | Synthesizes both positions objectively | neutral | JudicialReport |

### Workflow Sequence

```
IDLE -> INITIALIZING -> PARALLEL_RESEARCH -> VALIDATING_REPORTS ->
JUDICIAL_SYNTHESIS -> VALIDATING_OBJECTIVITY -> COMPLETED
```

1. **Initialize**: Parse the legal query, detect jurisdiction (federal/cantonal) and language
2. **Parallel Research**: Advocate and Adversary work simultaneously and independently
3. **Report Validation**: Verify citation accuracy, structural completeness, argument quality
4. **Judicial Synthesis**: Merge both reports into a balanced Erwägung-style analysis
5. **Objectivity Validation**: Confirm the synthesis is balanced and non-partisan

## Advocate Report Schema

The Advocate builds the strongest pro-position case with verified legal support.

### Argument Structure

| Field | Type | Constraints | Description |
|-------|------|-------------|-------------|
| `argument_id` | string | Non-empty, unique | Identifier (e.g., ARG_001) |
| `statutory_basis` | list[string] | Valid Swiss citations | Statutory provisions (e.g., Art. 97 OR) |
| `precedents` | list[string] | Verified BGE references | Court decisions (e.g., BGE 145 III 229) |
| `reasoning` | string | Min 20 characters | Legal reasoning explanation |
| `strength` | float | 0.0-1.0 | Assessed argument strength |

### Citation Structure

| Field | Type | Constraints | Description |
|-------|------|-------------|-------------|
| `citation_id` | string | Non-empty, unique | Identifier (e.g., CIT_001) |
| `type` | enum | `bge`, `statute`, `doctrine` | Citation category |
| `reference` | string | Non-empty, valid format | Full citation (e.g., BGE 145 III 229 E. 4.2) |
| `verified` | boolean | Default: false | Whether citation has been verified |

### Report Requirements

- Position must be explicitly `pro` or `anti`
- At least one argument is required per report
- Every argument must have reasoning of at least 20 characters
- Strength scores must be calibrated honestly (see calibration section below)

## Adversary Report Schema

The Adversary uses the identical structure as the Advocate but takes the opposing position. The Adversary report typically uses `position: "anti"` and focuses on:

- Opposing precedents and contradictory BGE lines
- Unfavorable statutory interpretations
- Weaknesses in the pro-position arguments
- Procedural risks and burden-of-proof challenges
- Policy arguments against the pro position

## Judicial Report Schema

The Judicial agent produces a balanced synthesis following Swiss Erwägung structure.

### Synthesis Section

| Field | Type | Constraints | Description |
|-------|------|-------------|-------------|
| `balanced_analysis` | string | Min 20 characters | Objective synthesis of both positions |
| `convergent_points` | list[string] | - | Areas where both positions agree |
| `divergent_points` | list[string] | - | Areas where positions disagree |

### Risk Assessment Section

| Field | Type | Constraints | Description |
|-------|------|-------------|-------------|
| `favorable_probability` | float | 0.0-1.0 | Probability of favorable outcome |
| `unfavorable_probability` | float | 0.0-1.0 | Probability of unfavorable outcome |
| `confidence_level` | float | 0.0-1.0 | Confidence in the assessment |

**Constraint**: `favorable_probability + unfavorable_probability = 1.0` (tolerance: +/- 0.05)

### Legal Conclusion Section

| Field | Type | Constraints | Description |
|-------|------|-------------|-------------|
| `primary_outcome` | string | Min 20 characters | Most likely legal outcome |
| `alternative_outcomes` | list[string] | - | Other possible outcomes |

## Quality Gates

### Gate 1: Input Validation

Before analysis begins, validate:

- Query text minimum length: 20 characters
- Jurisdiction completeness: level (federal/cantonal) must be specified; canton code required if cantonal
- Language detection confidence: at least 95% accuracy
- Supported languages: DE, FR, IT, EN
- Supported cantons: all 26 Swiss cantons

### Gate 2: Report Validation

After each agent produces a report, verify:

- **Citation format**: Swiss legal citation standards (Art. X Abs. Y OR, BGE X Y Z E. N)
- **Citation existence**: Cross-reference via legal citation databases where possible
- **Structural completeness**: All required fields present and non-empty
- **Argument quality**: Reasoning meets minimum length, strength scores are within range
- **No cross-contamination**: Advocate and Adversary reports are independent

### Gate 3: Objectivity Validation

After judicial synthesis, verify:

- **Balanced coverage**: Both pro and anti positions receive proportional treatment
- **No partisan language**: Synthesis avoids advocacy terms (e.g., "clearly", "obviously", "undoubtedly")
- **Probability coherence**: favorable + unfavorable probabilities sum to 1.0 (+/- 0.05)
- **Confidence bounds**: confidence_level is between 0.0 and 1.0
- **Convergent/divergent identification**: Both lists are populated when applicable

## Confidence and Strength Scoring Calibration

### Argument Strength Scale

| Score | Label | Meaning |
|-------|-------|---------|
| 0.0-0.2 | Very Weak | Novel argument with no direct support |
| 0.2-0.4 | Weak | Some doctrinal support but no BGE precedent |
| 0.4-0.6 | Moderate | Supported by BGE but distinguishable facts |
| 0.6-0.8 | Strong | Directly supported by recent BGE line |
| 0.8-1.0 | Very Strong | Established BGE Rechtsprechung, clear statutory text |

### Confidence Level Scale

| Score | Label | Meaning |
|-------|-------|---------|
| 0.0-0.3 | Low | Novel legal question, no clear precedent |
| 0.3-0.5 | Below Average | Conflicting BGE lines, evolving doctrine |
| 0.5-0.7 | Average | Some precedent, reasonable arguments on both sides |
| 0.7-0.85 | Above Average | Clear BGE support for likely outcome |
| 0.85-1.0 | High | Settled law, consistent Rechtsprechung |

## Erwägung Synthesis Structure

The Judicial report follows the Swiss Federal Supreme Court's Erwägung (consideration) pattern:

```
Erwägung 1: Fragestellung (Issue identification)
  - Define the precise legal question
  - Identify applicable jurisdiction and law

Erwägung 2: Rechtliche Grundlagen (Legal framework)
  - Cite applicable statutory provisions
  - Reference relevant BGE precedents from BOTH positions

Erwägung 3: Standpunkt des Befürworters (Advocate's position)
  - Summarize strongest pro arguments
  - Note argument strengths and supporting citations

Erwägung 4: Standpunkt des Gegners (Adversary's position)
  - Summarize strongest anti arguments
  - Note argument strengths and supporting citations

Erwägung 5: Würdigung (Assessment)
  - Balanced evaluation of competing positions
  - Identify convergent and divergent points
  - Apply Swiss legal interpretation methods (grammatical, systematic, teleological, historical)

Erwägung 6: Ergebnis (Conclusion)
  - State primary outcome with probability
  - Note alternative outcomes
  - Provide confidence assessment
```

### Multi-Lingual Equivalents

| DE | FR | IT | EN |
|----|----|----|-----|
| Erwägung | Considérant | Considerando | Consideration |
| Fragestellung | Question | Questione | Issue |
| Würdigung | Appréciation | Valutazione | Assessment |
| Ergebnis | Résultat | Risultato | Conclusion |

## BGE Precedent Integration

When building advocate and adversary positions:

- Search for BGE decisions using:
  - `swiss-caselaw` → `find_leading_cases(query)` — landmark BGE on the issue
  - `entscheidsuche` → `find_similar_cases(facts)` — analogous cases by fact pattern
  - `entscheidsuche` → `analyze_precedent_success_rate(argument)` — precedent strength
  - `bge-search` → `search_bge(query, section)` — structured BGE search with section filter
  - `swiss-caselaw` → `cite(decision_id)` — canonical citation string (never construct manually)
- Verify each BGE citation format: BGE [volume] [section] [page] E. [consideration]
- Check whether cited BGE has been overruled or modified by later decisions
- Distinguish ratio decidendi from obiter dicta
- Note the BGE chamber, vote split, and reasoning quality
- Use multi-lingual citation format matching the analysis language (BGE/ATF/DTF)

## Quality Standards

- All citations must achieve >95% verification accuracy
- Advocate and Adversary must work independently (no cross-contamination)
- Judicial synthesis must pass objectivity validation before delivery
- Every argument must cite at least one statutory basis or precedent
- Risk probabilities must be calibrated against actual BGE outcome patterns
- Multi-lingual terminology must be consistent throughout each report
- Professional disclaimer: analysis does not constitute legal advice and requires lawyer review

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.