the-arena

ClawSkills 作者 clawskills

Turn a Discord server into a moderated debate arena with an AI judge. Supports multiple debate formats, configurable personas, scored verdicts, and a persistent scoreboard. Keywords: debate server, debate moderator, debate judge, argument judge, discussion moderator, moderated debates, debate arena, debate bot, AI judge, the arena.

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:clawskills~tdavis009-the-arena
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~tdavis009-the-arena/file -o tdavis009-the-arena.md
# The Arena — AI Debate Moderator

Transform any Discord server into a structured debate arena with AI moderation,
fair judging, and a persistent scoreboard.

## Prerequisites

**This skill requires the following. Nothing is configured automatically — all
privileged actions require your manual review and approval.**

| Requirement | Details |
|-------------|---------|
| **Discord bot token** | Your existing OpenClaw bot token (already in your gateway config) |
| **Discord bot permissions** | Read/Send Messages, Create Threads, Manage Messages, Read History, Add Reactions |
| **Discord guild (server)** | You create or choose the server. You provide the guild ID. |
| **Gateway admin access** | You manually review and apply config changes via `config.patch` |
| **`DEBATE_SCOREBOARD_DB`** (optional) | Env var to set SQLite DB path. Default: `./data/scoreboard.db` (within skill workspace) |

### Security Notes
- This skill recommends running as a **separate, isolated OpenClaw agent** with
  restricted tool access (`fs.workspaceOnly: true`, `exec.security: "deny"`).
- Config changes are **generated as templates for your review** — never applied
  automatically. You must manually review and apply all gateway config patches.
- The included scripts (`scripts/setup.sh`, `scripts/scoreboard.sh`) only create
  files within the skill workspace. They make no network calls and write no files
  outside the skill directory. **Inspect them before running** — both are plain
  bash with no obfuscation, under 400 lines each.
- The scoreboard SQLite DB is created at `./data/scoreboard.db` relative to the
  skill directory (or at `$DEBATE_SCOREBOARD_DB` if set). It never writes outside
  the skill workspace.
- Setting `requireMention: false` on arena channels means the bot processes every
  message in that channel. This increases token usage and data exposure. Use
  `requireMention: true` for lower cost and reduced visibility.

---

## Quick Start

Say **"set up a debate server"** and the agent walks you through configuration
choices, then generates templates for your review.

---

## Onboarding Flow

### Step 1 — Choose a Server
Create a new Discord server or pick an existing one. You'll need the **guild ID**
(right-click the server icon → Copy Server ID with Developer Mode enabled).

### Step 2 — Choose a Moderator Persona
Pick the voice your moderator uses during debates. Default: **Scholar**.

| Persona | Vibe |
|---------|------|
| Scholar | Measured, references history & philosophy |
| Sports Commentator | High-energy play-by-play |
| Philosopher | Socratic method, questions everything |
| Comedian | Witty roast-style commentary |
| Drill Sergeant | No-nonsense, demands evidence |
| Custom | You write the persona description |

Details in `references/personas.md`.

### Step 3 — Choose a Default Format
The default format used when someone starts a debate without specifying one.
Default: **Campfire**.

| Format | Style | Best For |
|--------|-------|----------|
| Campfire | Free-form exchange | General topics, casual |
| Oxford | Formal rounds, audience vote | Serious propositions |
| Lincoln-Douglas | 1v1 value debate | Philosophy, ethics |
| Hot Takes | One message each, best wins | Quick fun rounds |
| Devil's Advocate | Argue opposite of your belief | Steelmanning practice |
| Roundtable | Multi-perspective, no winner | Complex nuanced topics |

Details in `references/formats.md`.

### Step 4 — Judging Criteria Weights
Customize how the moderator scores arguments. Defaults:

| Criterion | Default Weight |
|-----------|---------------|
| Evidence & Reasoning | 35% |
| Engagement | 25% |
| Intellectual Honesty | 20% |
| Persuasiveness | 20% |

Weights must sum to 100%. Details in `references/judging.md`.

### Step 5 — Configure Channels
Default channel names (all customizable):

| Channel | Purpose |
|---------|---------|
| `#rules` | Server rules, format overview, commands |
| `#propose-a-topic` | Topic proposals and voting |
| `#the-arena` | Where debates happen |
| `#hall-of-records` | Verdicts, scoreboard, debate history |
| `#the-bar` | Casual off-topic discussion |

### Step 6 — Generate Config (for your review)
The agent generates config snippets and an `AGENTS.md` tailored to your choices.
**You must review and manually apply** all gateway config changes. The agent does
not apply config patches automatically. See `references/setup-guide.md` for the
full config template and a step-by-step walkthrough.

**Important:** `agents.list` and `bindings` are arrays — `config.patch` replaces
them entirely. Always review the full patch to ensure your existing agents and
bindings are preserved.

### Step 7 — Create Channels & Post Welcome Messages
After you create channels in Discord, the agent can post welcome messages from
`assets/welcome-messages.md` — or you can copy-paste them manually.

### Step 8 — Post Rules
The agent posts the full rules document in `#rules`.

---

## Configuration Reference

### Persona
Controls the moderator's voice and commentary style.

- **Scholar** (default) — Thoughtful, measured
- **Sports Commentator** — Electric, play-by-play
- **Philosopher** — Socratic, probing
- **Comedian** — Witty, irreverent (still fair)
- **Drill Sergeant** — Harsh, demanding
- **Custom** — Provide your own persona description

### Default Format
The format used when a debate is started without specifying one.

- **Campfire** (default), Oxford, Lincoln-Douglas, Hot Takes, Devil's Advocate, Roundtable

### Judging Weights
Customize the four scoring criteria. Must sum to 100%.

- **Evidence & Reasoning** — Quality of sources, logical structure (default 35%)
- **Engagement** — Responding to opponents, staying on topic (default 25%)
- **Intellectual Honesty** — Acknowledging good points, not strawmanning (default 20%)
- **Persuasiveness** — Rhetorical effectiveness, clarity (default 20%)

### Channel Names
All five channels can be renamed. Provide a mapping during setup.

### requireMention
- **true** (default, recommended) — Moderator only responds when @mentioned. Lower cost, lower data exposure. Participants control pacing by tagging the moderator.
- **false** — Moderator sees every message and may interject actively. Higher token usage and increased data exposure. Only recommended for small, trusted servers with low message volume.

### Verdict Style
How the moderator delivers the final ruling.

- **Detailed** — Full scorecard with per-criterion scores and commentary
- **Brief** — Winner announcement with one-paragraph summary
- **Dramatic** — Theatrical ruling with buildup and flair

### Scoreboard
- **on** (default) — SQLite-backed. Records wins, losses, topics, formats.
- **off** — No persistent tracking.

CLI: `scripts/scoreboard.sh`. DB location: `$DEBATE_SCOREBOARD_DB` or `./data/scoreboard.db`.

### Debate Timeout
Hours before the moderator flags a stale debate. Default: **48**.

### Max Concurrent Debates
Maximum simultaneous debates in the arena. Default: **3**.

### Topic Restrictions
- **unrestricted** (default) — No topic is off-limits. The moderator judges arguments on merit regardless of subject matter.
- **restricted** — Provide a list of banned topics or categories.

---

## How It Works

### Proposing a Topic
In `#propose-a-topic`, post:
```
Topic: [Your topic]
Format: [optional — defaults to server default]
```

Others react with 👍 to show interest. When at least two people are ready,
anyone can say **"let's debate"** to move to the arena.

### Starting a Debate
In `#the-arena`, the moderator:
1. Announces the topic and format
2. Assigns or confirms sides (except Roundtable/Hot Takes)
3. Posts the rules for that format
4. Calls for opening statements

Participants can also start directly in the arena:
```
@Moderator start debate: "Pineapple belongs on pizza" [format: hot-takes]
```

### During a Debate
The moderator's behavior depends on the format:
- **Campfire** — Interjects to track flow, flag fallacies, prompt responses
- **Oxford** — Str