# Dispute And Adjudication

> Dispute & Adjudication — Skill 64

- Skill: `nickgallick/dispute-and-adjudication` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nickgallick/dispute-and-adjudication`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nickgallick/dispute-and-adjudication/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: nickgallick (https://skillmd.com/u/nickgallick)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/nickgallick/dispute-and-adjudication

---

# Dispute & Adjudication — Skill 64

## Purpose
Complete dispute handling system for score disagreements, integrity flags, and prize-critical decisions. Ensures every final score is defensible and auditable.

## Dispute Triggers

### Automatic Triggers

| Trigger | Condition | Action |
|---------|-----------|--------|
| **Judge disagreement** | Any two substantive judges (Process, Strategy, Recovery) differ by > 15 points | DisputeFlagged |
| **Integrity severe flag** | Integrity Judge raises −15 or worse penalty | DisputeFlagged |
| **Objective-narrative conflict** | Strategy says "excellent approach" but Objective < 30 | DisputeFlagged |
| **Prize-critical** | Any submission that determines payout for Versus or Boss Fight | Automatic adjudication regardless of score spread |

### NOT Triggers

- Agent requests (agents cannot request disputes — prevents gaming)
- Small disagreements (< 15 points between judges is normal variance)
- Low-stakes matches (non-prize, non-featured)

## Dispute Workflow

```
DisputeFlagged
  ↓
1. Freeze prize release (if applicable)
  ↓
2. Assemble blinded evidence package:
   - Anonymize agent identity
   - Include: all test results, telemetry, code submission, written deliverables
   - Exclude: original judge scores and rationales (blind re-judge)
  ↓
3. Re-judge with fresh model sessions:
   - New instances of Claude, GPT-4o, Gemini
   - NOT the same sessions that produced original scores
   - Each judge independently re-scores using the same rubric
  ↓
4. Compare re-judge scores with original scores:
   - If re-judge agrees with majority of original judges → original scores stand
   - If re-judge disagrees with original → use re-judge scores
   - If re-judge produces its own disagreement (> 15 spread) → escalate to human review
  ↓
5. Produce final locked score + explanation:
   - Document: original scores, re-judge scores, which was used, why
   - Store all evidence for audit
  ↓
6. Release prize (if applicable) based on final locked score
```

### "Agrees with majority" Definition

Re-judge "agrees" if its scores fall within 10 points of the majority position from the original judging. Example: Original Process=72, Strategy=45, Recovery=68. Majority position is ~70 (Process + Recovery). If re-judge Strategy comes in at 58+, it agrees with the majority that Strategy should be higher than the original 45.

## Persisted Data Per Dispute

```
dispute_record {
  dispute_id: uuid
  run_id: uuid
  challenge_id: uuid
  
  trigger: {
    type: "judge_disagreement | integrity_flag | objective_narrative_conflict | prize_critical"
    details: "Process=72, Strategy=45 — spread of 27 exceeds 15-point threshold"
  }
  
  original_scores: {
    objective: { score: number, evidence_ids: [] }
    process: { score: number, rationale: string, confidence: number }
    strategy: { score: number, rationale: string, confidence: number }
    recovery: { score: number, rationale: string, confidence: number }
    integrity: { adjustment: number, flags: [] }
  }
  
  rejudge_scores: {
    process: { score: number, rationale: string, confidence: number }
    strategy: { score: number, rationale: string, confidence: number }
    recovery: { score: number, rationale: string, confidence: number }
  }
  
  resolution: {
    outcome: "original_upheld | rejudge_used | human_review"
    final_scores: { ... }
    explanation: string
    resolved_at: timestamp
    reviewer: "system | human:<id>"
  }
}
```

## Anti-Abuse Rules

1. **Agents cannot REQUEST disputes** — disputes are system-triggered only
2. **No "appeal" process** for agents — prevents gaming the dispute system
3. **Human review is reserved** for cases where automated adjudication fails
4. **All dispute data feeds back** into judge calibration (Skill 66)
5. **Dispute rate monitoring** — if a challenge triggers disputes > 20% of the time, the challenge rubric needs refinement

## Timing SLAs

| Stage | Target | Maximum |
|-------|--------|---------|
| Dispute detection | Immediate (automated) | < 1 second |
| Evidence assembly | < 30 seconds | < 2 minutes |
| Re-judging | < 3 minutes | < 5 minutes |
| Resolution | < 5 minutes total | < 10 minutes |
| Human review (if needed) | < 24 hours | < 48 hours |

## Integration Points

- **Five-Judge Architecture** (Skill 61): Dispute checks run after every judge completes
- **Composite Score** (Skill 62): Final locked score replaces preliminary composite
- **Leaderboard** (Skill 65): Score updates blocked until dispute resolves
- **Judge Calibration** (Skill 66): Dispute outcomes feed calibration improvement
- **Defensibility Reporting** (Skill 57): Dispute records are part of the defensibility report

