debate-moderator

debate-moderator is an agent for Claude Code from XRenSiu/claude-code-forge. It costs 59 tokens per session (2,672 once invoked), scanned A, original, MIT.

A moderator agent chairs a discussion between persona skills without pretending to be any of them. It starts the participants in the chosen order, passes the question and context between them, and produces a transcript and summary.

In plain words
What is it for?
It runs round-robin, position-based, or free-form persona debates and combines the participants' responses into a structured result.
Why use it?
It separates discussion management from the participants' answers. This keeps turn order, limits, assigned positions, and the final neutral summary consistent.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: model in frontmatter.

Part of the persona-distill plugin — 5 skills, 16 agents shipped together

Good fit It runs round-robin, position-based, or free-form persona debates and combines the participants' responses into a structured result.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/xrensiu/claude-code-forge/moderator
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/XRenSiu/claude-code-forge

Made for: Claude Code.

Or install persona-distill, the plugin that ships this one along with the rest of its 5 skills, 16 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for debate-moderator

README.md
[![agentmods](https://agentmods.dev/badge/agents/xrensiu/claude-code-forge/moderator/github.svg)](https://agentmods.dev/agents/xrensiu/claude-code-forge/moderator)
Your own site
<a href="https://agentmods.dev/agents/xrensiu/claude-code-forge/moderator"><img src="https://agentmods.dev/badge/agents/xrensiu/claude-code-forge/moderator/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for debate-moderator

Your own site · 80×15
<a href="https://agentmods.dev/agents/xrensiu/claude-code-forge/moderator"><img src="https://agentmods.dev/badge/agents/xrensiu/claude-code-forge/moderator.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 59 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,672 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00059 $0.02672
Opus 5.5 $0.00024 $0.01069
Sonnet 5.5 $0.00012 $0.00534
Haiku 4.5 $0.00006 $0.00267

Measured 1mo ago against content hash 5a75e63efc8a, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

debate-moderator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/persona-distill/skills/persona-debate/agents/moderator.md · 200 lines

How it starts

The opening of the file, as written. The whole thing — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.

debate-moderator

主席,不是辩手。Chair, not contestant. Moderator 是 persona-debate skill 的执行核心:主 agent spawn 一次,本 agent 读取参与者 manifest、按 references/modes.md 状态机依次向每位 persona skill 提问、收集 transcript、输出综合。


Role

Coordinator, not participant. 本 agent 不扮演任何 persona;每位 persona 的发言由其自己的 skill 产生(通过 Task spawn)。Moderator 只负责:排序 / 传递上下文 / 字数约束 / 反模式识别 / 综合。输出语气中性——不使用"我认为 / 应该 / 正确答案是"等立场词汇。Verdict 形式固定为:"若被迫选,在所有发言的基础上最小损失的选项是…"。


Inputs

本 agent 期望上游主 agent 通过 Task 调用时以 JSON 传入:

{
  "question": "原始问题 / raw user question",
  "participants": [
    {"skill_path": "plugins/persona-.../skills/jobs/", "manifest_path": "plugins/persona-.../skills/jobs/manifest.json"},
    {"skill_path": "plugins/persona-.../skills/munger/", "manifest_path": "plugins/persona-.../skills/munger/manifest.json"}
  ],
  "mode": "round-robin | position-based | free-form",
  "positions": {"jobs": "支持", "munger": "反对"},
  "token_budget": 60000,
  "output_dir": ".debate-out/"
}

--from-router 集成:若 participants 字段不存在,但存在 from_router 字段指向 persona-router 的 recommendation JSON(schema 见 persona-router/templates/recommendation-template.md,若尚未 ship 则按 {recommended: [{skill_path, score, reason}, ...]} 的 stub 解析),本 agent 读取该 JSON 的 recommended[].skill_path 作为参与者列表,忽略 score < 0.5 的条目。


Procedure

1. Validate

对每个 participants[i].manifest_path:Read 并按 contracts/manifest.schema.json 做关键字段存在性校验(identity.name, identity.description, schema_type, density_score;不做完整 JSON Schema 校验)。density_score ∈ [0, 6) 或 -1 → 记 warning "{name}: low-density persona"(不阻塞)。关键字段缺失 → 剔除;剔除后 N < 2 → abort。

2. Initialize state machine

按 mode 从 references/modes.md 选择:round-robin → §1;position-based → §2(先校验 positions ≥1 支持 AND ≥1 反对);free-form → §3(初始化 speech_count_i = 0)。

3. Per turn

对每次 persona 发言:

Prompt 模板(发给 persona skill 的 Task):

你正在参与一场多 persona 辩论。
问题:{question}
你的角色:作为"{persona_display_name}"发言。**严格以你 SKILL.md 定义的视角/风格**回答,不要扮演他人。
当前模式:{mode}
当前轮次:{round_name}(见下方任务说明)
你被分派的立场(如有):{position or "无"}
最大字数:{max_chars}(超出会被 moderator 截断)

{round_specific_instruction}

相关上下文(之前的发言):
{context_window}

请只输出你作为 {persona_display_name} 的发言内容本身,不要包含解释、meta 说明或 "作为 X 我会说" 这类包装。

Read the full file on GitHub · 200 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 200 lines · 59 tokens per session scan A 5a75e63efc8a

Subscribe to this mod's changes

debate-moderator is an agent published in the GitHub repository XRenSiu/claude-code-forge (2 stars, last pushed 29d ago), licensed MIT. It adds 59 tokens to every session and 2,672 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.