{
  "schemaVersion": "1.0",
  "item": {
    "slug": "the-arena",
    "name": "The Arena — AI Debate Moderator",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/tdavis009/the-arena",
    "canonicalUrl": "https://clawhub.ai/tdavis009/the-arena",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/the-arena",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=the-arena",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "assets/welcome-messages.md",
      "references/agents-template.md",
      "references/formats.md",
      "references/judging.md",
      "references/personas.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/the-arena"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/the-arena",
    "agentPageUrl": "https://openagent3.xyz/skills/the-arena/agent",
    "manifestUrl": "https://openagent3.xyz/skills/the-arena/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/the-arena/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "The Arena — AI Debate Moderator",
        "body": "Transform any Discord server into a structured debate arena with AI moderation,\nfair judging, and a persistent scoreboard."
      },
      {
        "title": "Prerequisites",
        "body": "This skill requires the following. Nothing is configured automatically — all\nprivileged actions require your manual review and approval.\n\nRequirementDetailsDiscord bot tokenYour existing OpenClaw bot token (already in your gateway config)Discord bot permissionsRead/Send Messages, Create Threads, Manage Messages, Read History, Add ReactionsDiscord guild (server)You create or choose the server. You provide the guild ID.Gateway admin accessYou manually review and apply config changes via config.patchDEBATE_SCOREBOARD_DB (optional)Env var to set SQLite DB path. Default: ./data/scoreboard.db (within skill workspace)"
      },
      {
        "title": "Security Notes",
        "body": "This skill recommends running as a separate, isolated OpenClaw agent with\nrestricted tool access (fs.workspaceOnly: true, exec.security: \"deny\").\nConfig changes are generated as templates for your review — never applied\nautomatically. You must manually review and apply all gateway config patches.\nThe included scripts (scripts/setup.sh, scripts/scoreboard.sh) only create\nfiles within the skill workspace. They make no network calls and write no files\noutside the skill directory. Inspect them before running — both are plain\nbash with no obfuscation, under 400 lines each.\nThe scoreboard SQLite DB is created at ./data/scoreboard.db relative to the\nskill directory (or at $DEBATE_SCOREBOARD_DB if set). It never writes outside\nthe skill workspace.\nSetting requireMention: false on arena channels means the bot processes every\nmessage in that channel. This increases token usage and data exposure. Use\nrequireMention: true for lower cost and reduced visibility."
      },
      {
        "title": "Quick Start",
        "body": "Say \"set up a debate server\" and the agent walks you through configuration\nchoices, then generates templates for your review."
      },
      {
        "title": "Step 1 — Choose a Server",
        "body": "Create a new Discord server or pick an existing one. You'll need the guild ID\n(right-click the server icon → Copy Server ID with Developer Mode enabled)."
      },
      {
        "title": "Step 2 — Choose a Moderator Persona",
        "body": "Pick the voice your moderator uses during debates. Default: Scholar.\n\nPersonaVibeScholarMeasured, references history & philosophySports CommentatorHigh-energy play-by-playPhilosopherSocratic method, questions everythingComedianWitty roast-style commentaryDrill SergeantNo-nonsense, demands evidenceCustomYou write the persona description\n\nDetails in references/personas.md."
      },
      {
        "title": "Step 3 — Choose a Default Format",
        "body": "The default format used when someone starts a debate without specifying one.\nDefault: Campfire.\n\nFormatStyleBest ForCampfireFree-form exchangeGeneral topics, casualOxfordFormal rounds, audience voteSerious propositionsLincoln-Douglas1v1 value debatePhilosophy, ethicsHot TakesOne message each, best winsQuick fun roundsDevil's AdvocateArgue opposite of your beliefSteelmanning practiceRoundtableMulti-perspective, no winnerComplex nuanced topics\n\nDetails in references/formats.md."
      },
      {
        "title": "Step 4 — Judging Criteria Weights",
        "body": "Customize how the moderator scores arguments. Defaults:\n\nCriterionDefault WeightEvidence & Reasoning35%Engagement25%Intellectual Honesty20%Persuasiveness20%\n\nWeights must sum to 100%. Details in references/judging.md."
      },
      {
        "title": "Step 5 — Configure Channels",
        "body": "Default channel names (all customizable):\n\nChannelPurpose#rulesServer rules, format overview, commands#propose-a-topicTopic proposals and voting#the-arenaWhere debates happen#hall-of-recordsVerdicts, scoreboard, debate history#the-barCasual off-topic discussion"
      },
      {
        "title": "Step 6 — Generate Config (for your review)",
        "body": "The agent generates config snippets and an AGENTS.md tailored to your choices.\nYou must review and manually apply all gateway config changes. The agent does\nnot apply config patches automatically. See references/setup-guide.md for the\nfull config template and a step-by-step walkthrough.\n\nImportant: agents.list and bindings are arrays — config.patch replaces\nthem entirely. Always review the full patch to ensure your existing agents and\nbindings are preserved."
      },
      {
        "title": "Step 7 — Create Channels & Post Welcome Messages",
        "body": "After you create channels in Discord, the agent can post welcome messages from\nassets/welcome-messages.md — or you can copy-paste them manually."
      },
      {
        "title": "Step 8 — Post Rules",
        "body": "The agent posts the full rules document in #rules."
      },
      {
        "title": "Persona",
        "body": "Controls the moderator's voice and commentary style.\n\nScholar (default) — Thoughtful, measured\nSports Commentator — Electric, play-by-play\nPhilosopher — Socratic, probing\nComedian — Witty, irreverent (still fair)\nDrill Sergeant — Harsh, demanding\nCustom — Provide your own persona description"
      },
      {
        "title": "Default Format",
        "body": "The format used when a debate is started without specifying one.\n\nCampfire (default), Oxford, Lincoln-Douglas, Hot Takes, Devil's Advocate, Roundtable"
      },
      {
        "title": "Judging Weights",
        "body": "Customize the four scoring criteria. Must sum to 100%.\n\nEvidence & Reasoning — Quality of sources, logical structure (default 35%)\nEngagement — Responding to opponents, staying on topic (default 25%)\nIntellectual Honesty — Acknowledging good points, not strawmanning (default 20%)\nPersuasiveness — Rhetorical effectiveness, clarity (default 20%)"
      },
      {
        "title": "Channel Names",
        "body": "All five channels can be renamed. Provide a mapping during setup."
      },
      {
        "title": "requireMention",
        "body": "true (default, recommended) — Moderator only responds when @mentioned. Lower cost, lower data exposure. Participants control pacing by tagging the moderator.\nfalse — 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."
      },
      {
        "title": "Verdict Style",
        "body": "How the moderator delivers the final ruling.\n\nDetailed — Full scorecard with per-criterion scores and commentary\nBrief — Winner announcement with one-paragraph summary\nDramatic — Theatrical ruling with buildup and flair"
      },
      {
        "title": "Scoreboard",
        "body": "on (default) — SQLite-backed. Records wins, losses, topics, formats.\noff — No persistent tracking.\n\nCLI: scripts/scoreboard.sh. DB location: $DEBATE_SCOREBOARD_DB or ./data/scoreboard.db."
      },
      {
        "title": "Debate Timeout",
        "body": "Hours before the moderator flags a stale debate. Default: 48."
      },
      {
        "title": "Max Concurrent Debates",
        "body": "Maximum simultaneous debates in the arena. Default: 3."
      },
      {
        "title": "Topic Restrictions",
        "body": "unrestricted (default) — No topic is off-limits. The moderator judges arguments on merit regardless of subject matter.\nrestricted — Provide a list of banned topics or categories."
      },
      {
        "title": "Proposing a Topic",
        "body": "In #propose-a-topic, post:\n\nTopic: [Your topic]\nFormat: [optional — defaults to server default]\n\nOthers react with 👍 to show interest. When at least two people are ready,\nanyone can say \"let's debate\" to move to the arena."
      },
      {
        "title": "Starting a Debate",
        "body": "In #the-arena, the moderator:\n\nAnnounces the topic and format\nAssigns or confirms sides (except Roundtable/Hot Takes)\nPosts the rules for that format\nCalls for opening statements\n\nParticipants can also start directly in the arena:\n\n@Moderator start debate: \"Pineapple belongs on pizza\" [format: hot-takes]"
      },
      {
        "title": "During a Debate",
        "body": "The moderator's behavior depends on the format:\n\nCampfire — Interjects to track flow, flag fallacies, prompt responses\nOxford — Strictly enforces rounds, time, and turn order\nLincoln-Douglas — Enforces alternation between affirmative and negative\nHot Takes — Collects one message per participant, then judges\nDevil's Advocate — Monitors that participants argue against their stated beliefs\nRoundtable — Asks probing questions, synthesizes themes\n\nThe moderator flags logical fallacies, tracks participation balance, and keeps\nthe debate moving. In mention-only mode, participants @mention for moderator input."
      },
      {
        "title": "Calling for a Verdict",
        "body": "Either debater says \"I rest my case\"\nThe moderator can call it after sustained inactivity\nThe moderator runs a ready check: both sides must confirm"
      },
      {
        "title": "Verdicts",
        "body": "The moderator evaluates using the configured judging weights and delivers the\nverdict in the configured style. The verdict is posted in both #the-arena and\n#hall-of-records."
      },
      {
        "title": "Scoreboard",
        "body": "When the scoreboard is enabled, results are automatically recorded.\n\nCommands (via scripts/scoreboard.sh):\n\nscoreboard.sh init                              # Create database\nscoreboard.sh record <winner> <loser> <topic>   # Record result\nscoreboard.sh leaderboard                       # Show standings\nscoreboard.sh history [--limit N]               # Recent debates\nscoreboard.sh stats <participant>               # Individual stats\nscoreboard.sh reset                             # Clear all data\n\nThe moderator should run these automatically when delivering verdicts and when\nusers ask for standings."
      },
      {
        "title": "Channel Behavior Matrix",
        "body": "ChannelModerator Behavior#rulesPosts rules only. Does not engage in conversation.#propose-a-topicAcknowledges proposals, suggests formats, helps refine topics.#the-arenaFull moderator mode. Manages debates, enforces rules, delivers verdicts.#hall-of-recordsPosts verdicts and scoreboard updates. Read-only for moderator.#the-barCasual mode. Can chat, joke, discuss past debates. No moderation."
      },
      {
        "title": "Security Model",
        "body": "The debate moderator MUST run as a separate OpenClaw agent with restricted\npermissions. This is critical because the debate server is semi-public — other\nusers interact with the bot, and prompt injection is a real risk.\n\nRecommended agent restrictions:\n\ntools.fs.workspaceOnly: true — can only read/write within the skill workspace\ntools.exec.security: \"deny\" — cannot execute shell commands\ntools.deny list blocking: exec, process, nodes, cron, gateway, browser,\ncanvas, sessions_*, subagents, memory_search, memory_get, tts, image\ntools.profile: \"messaging\" — only Discord messaging + web search (for fact-checking)\n\nWhat this ensures:\n\nNo access to the owner's personal files, messages, or other agents\nNo ability to send emails, read calendars, or access other services\nEven if a participant attempts prompt injection, there is nothing to exfiltrate\n\nAll config changes are your responsibility. The agent generates templates;\nyou review and apply them. See references/setup-guide.md for the full\nsecurity configuration and a tested tool deny list."
      },
      {
        "title": "File Reference",
        "body": "FilePurposereferences/formats.mdDetailed format rules and moderator instructionsreferences/personas.mdFull persona descriptions and voice guidesreferences/judging.mdScoring criteria, bonuses, penalties, format adjustmentsreferences/setup-guide.mdGateway config template, permissions, securityreferences/agents-template.mdComplete AGENTS.md template for the debate agentscripts/scoreboard.shSQLite scoreboard CLIscripts/setup.shInteractive setup wizardassets/welcome-messages.mdDefault welcome messages for all channels"
      }
    ],
    "body": "The Arena — AI Debate Moderator\n\nTransform any Discord server into a structured debate arena with AI moderation, fair judging, and a persistent scoreboard.\n\nPrerequisites\n\nThis skill requires the following. Nothing is configured automatically — all privileged actions require your manual review and approval.\n\nRequirement\tDetails\nDiscord bot token\tYour existing OpenClaw bot token (already in your gateway config)\nDiscord bot permissions\tRead/Send Messages, Create Threads, Manage Messages, Read History, Add Reactions\nDiscord guild (server)\tYou create or choose the server. You provide the guild ID.\nGateway admin access\tYou manually review and apply config changes via config.patch\nDEBATE_SCOREBOARD_DB (optional)\tEnv var to set SQLite DB path. Default: ./data/scoreboard.db (within skill workspace)\nSecurity Notes\nThis skill recommends running as a separate, isolated OpenClaw agent with restricted tool access (fs.workspaceOnly: true, exec.security: \"deny\").\nConfig changes are generated as templates for your review — never applied automatically. You must manually review and apply all gateway config patches.\nThe 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.\nThe 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.\nSetting 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.\nQuick Start\n\nSay \"set up a debate server\" and the agent walks you through configuration choices, then generates templates for your review.\n\nOnboarding Flow\nStep 1 — Choose a Server\n\nCreate 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).\n\nStep 2 — Choose a Moderator Persona\n\nPick the voice your moderator uses during debates. Default: Scholar.\n\nPersona\tVibe\nScholar\tMeasured, references history & philosophy\nSports Commentator\tHigh-energy play-by-play\nPhilosopher\tSocratic method, questions everything\nComedian\tWitty roast-style commentary\nDrill Sergeant\tNo-nonsense, demands evidence\nCustom\tYou write the persona description\n\nDetails in references/personas.md.\n\nStep 3 — Choose a Default Format\n\nThe default format used when someone starts a debate without specifying one. Default: Campfire.\n\nFormat\tStyle\tBest For\nCampfire\tFree-form exchange\tGeneral topics, casual\nOxford\tFormal rounds, audience vote\tSerious propositions\nLincoln-Douglas\t1v1 value debate\tPhilosophy, ethics\nHot Takes\tOne message each, best wins\tQuick fun rounds\nDevil's Advocate\tArgue opposite of your belief\tSteelmanning practice\nRoundtable\tMulti-perspective, no winner\tComplex nuanced topics\n\nDetails in references/formats.md.\n\nStep 4 — Judging Criteria Weights\n\nCustomize how the moderator scores arguments. Defaults:\n\nCriterion\tDefault Weight\nEvidence & Reasoning\t35%\nEngagement\t25%\nIntellectual Honesty\t20%\nPersuasiveness\t20%\n\nWeights must sum to 100%. Details in references/judging.md.\n\nStep 5 — Configure Channels\n\nDefault channel names (all customizable):\n\nChannel\tPurpose\n#rules\tServer rules, format overview, commands\n#propose-a-topic\tTopic proposals and voting\n#the-arena\tWhere debates happen\n#hall-of-records\tVerdicts, scoreboard, debate history\n#the-bar\tCasual off-topic discussion\nStep 6 — Generate Config (for your review)\n\nThe 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.\n\nImportant: 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.\n\nStep 7 — Create Channels & Post Welcome Messages\n\nAfter you create channels in Discord, the agent can post welcome messages from assets/welcome-messages.md — or you can copy-paste them manually.\n\nStep 8 — Post Rules\n\nThe agent posts the full rules document in #rules.\n\nConfiguration Reference\nPersona\n\nControls the moderator's voice and commentary style.\n\nScholar (default) — Thoughtful, measured\nSports Commentator — Electric, play-by-play\nPhilosopher — Socratic, probing\nComedian — Witty, irreverent (still fair)\nDrill Sergeant — Harsh, demanding\nCustom — Provide your own persona description\nDefault Format\n\nThe format used when a debate is started without specifying one.\n\nCampfire (default), Oxford, Lincoln-Douglas, Hot Takes, Devil's Advocate, Roundtable\nJudging Weights\n\nCustomize the four scoring criteria. Must sum to 100%.\n\nEvidence & Reasoning — Quality of sources, logical structure (default 35%)\nEngagement — Responding to opponents, staying on topic (default 25%)\nIntellectual Honesty — Acknowledging good points, not strawmanning (default 20%)\nPersuasiveness — Rhetorical effectiveness, clarity (default 20%)\nChannel Names\n\nAll five channels can be renamed. Provide a mapping during setup.\n\nrequireMention\ntrue (default, recommended) — Moderator only responds when @mentioned. Lower cost, lower data exposure. Participants control pacing by tagging the moderator.\nfalse — 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.\nVerdict Style\n\nHow the moderator delivers the final ruling.\n\nDetailed — Full scorecard with per-criterion scores and commentary\nBrief — Winner announcement with one-paragraph summary\nDramatic — Theatrical ruling with buildup and flair\nScoreboard\non (default) — SQLite-backed. Records wins, losses, topics, formats.\noff — No persistent tracking.\n\nCLI: scripts/scoreboard.sh. DB location: $DEBATE_SCOREBOARD_DB or ./data/scoreboard.db.\n\nDebate Timeout\n\nHours before the moderator flags a stale debate. Default: 48.\n\nMax Concurrent Debates\n\nMaximum simultaneous debates in the arena. Default: 3.\n\nTopic Restrictions\nunrestricted (default) — No topic is off-limits. The moderator judges arguments on merit regardless of subject matter.\nrestricted — Provide a list of banned topics or categories.\nHow It Works\nProposing a Topic\n\nIn #propose-a-topic, post:\n\nTopic: [Your topic]\nFormat: [optional — defaults to server default]\n\n\nOthers react with 👍 to show interest. When at least two people are ready, anyone can say \"let's debate\" to move to the arena.\n\nStarting a Debate\n\nIn #the-arena, the moderator:\n\nAnnounces the topic and format\nAssigns or confirms sides (except Roundtable/Hot Takes)\nPosts the rules for that format\nCalls for opening statements\n\nParticipants can also start directly in the arena:\n\n@Moderator start debate: \"Pineapple belongs on pizza\" [format: hot-takes]\n\nDuring a Debate\n\nThe moderator's behavior depends on the format:\n\nCampfire — Interjects to track flow, flag fallacies, prompt responses\nOxford — Strictly enforces rounds, time, and turn order\nLincoln-Douglas — Enforces alternation between affirmative and negative\nHot Takes — Collects one message per participant, then judges\nDevil's Advocate — Monitors that participants argue against their stated beliefs\nRoundtable — Asks probing questions, synthesizes themes\n\nThe moderator flags logical fallacies, tracks participation balance, and keeps the debate moving. In mention-only mode, participants @mention for moderator input.\n\nCalling for a Verdict\nEither debater says \"I rest my case\"\nThe moderator can call it after sustained inactivity\nThe moderator runs a ready check: both sides must confirm\nVerdicts\n\nThe moderator evaluates using the configured judging weights and delivers the verdict in the configured style. The verdict is posted in both #the-arena and #hall-of-records.\n\nScoreboard\n\nWhen the scoreboard is enabled, results are automatically recorded.\n\nCommands (via scripts/scoreboard.sh):\n\nscoreboard.sh init                              # Create database\nscoreboard.sh record <winner> <loser> <topic>   # Record result\nscoreboard.sh leaderboard                       # Show standings\nscoreboard.sh history [--limit N]               # Recent debates\nscoreboard.sh stats <participant>               # Individual stats\nscoreboard.sh reset                             # Clear all data\n\n\nThe moderator should run these automatically when delivering verdicts and when users ask for standings.\n\nChannel Behavior Matrix\nChannel\tModerator Behavior\n#rules\tPosts rules only. Does not engage in conversation.\n#propose-a-topic\tAcknowledges proposals, suggests formats, helps refine topics.\n#the-arena\tFull moderator mode. Manages debates, enforces rules, delivers verdicts.\n#hall-of-records\tPosts verdicts and scoreboard updates. Read-only for moderator.\n#the-bar\tCasual mode. Can chat, joke, discuss past debates. No moderation.\nSecurity Model\n\nThe debate moderator MUST run as a separate OpenClaw agent with restricted permissions. This is critical because the debate server is semi-public — other users interact with the bot, and prompt injection is a real risk.\n\nRecommended agent restrictions:\n\ntools.fs.workspaceOnly: true — can only read/write within the skill workspace\ntools.exec.security: \"deny\" — cannot execute shell commands\ntools.deny list blocking: exec, process, nodes, cron, gateway, browser, canvas, sessions_*, subagents, memory_search, memory_get, tts, image\ntools.profile: \"messaging\" — only Discord messaging + web search (for fact-checking)\n\nWhat this ensures:\n\nNo access to the owner's personal files, messages, or other agents\nNo ability to send emails, read calendars, or access other services\nEven if a participant attempts prompt injection, there is nothing to exfiltrate\n\nAll config changes are your responsibility. The agent generates templates; you review and apply them. See references/setup-guide.md for the full security configuration and a tested tool deny list.\n\nFile Reference\nFile\tPurpose\nreferences/formats.md\tDetailed format rules and moderator instructions\nreferences/personas.md\tFull persona descriptions and voice guides\nreferences/judging.md\tScoring criteria, bonuses, penalties, format adjustments\nreferences/setup-guide.md\tGateway config template, permissions, security\nreferences/agents-template.md\tComplete AGENTS.md template for the debate agent\nscripts/scoreboard.sh\tSQLite scoreboard CLI\nscripts/setup.sh\tInteractive setup wizard\nassets/welcome-messages.md\tDefault welcome messages for all channels"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tdavis009/the-arena",
    "publisherUrl": "https://clawhub.ai/tdavis009/the-arena",
    "owner": "tdavis009",
    "version": "1.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/the-arena",
    "downloadUrl": "https://openagent3.xyz/downloads/the-arena",
    "agentUrl": "https://openagent3.xyz/skills/the-arena/agent",
    "manifestUrl": "https://openagent3.xyz/skills/the-arena/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/the-arena/agent.md"
  }
}