Skip to content
Agentmart
Submit a tool

arena

Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.

Skill by MaxFabian25

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/maxfabian25-arena

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/arena

What's inside

Skill name
arena
Description
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape.
License
MIT
Instructions
44 lines in SKILL.md · view on GitHub

Before installing

  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Arena

Open a todolist with one entry per phase (Frame, Fan out, Cross-judge, Pick, Graft, Verify) before launching anything.

## Phase A: Frame

Every candidate gets the same prompt, so the prompt is the contract.

1. State the artifact each candidate is producing.
2. Derive the rubric, 3-6 concrete gradeable criteria for what success looks like on *this* task. It is the picker's tool in Phase D. Candidates only see the task.
3. Pick the runners. Use the `arena runners` line in `~/.config/pstack/models.md`. If the file or that line is missing, default to the role's entries in [harnesses.md](../poteto-mode/references/harnesses.md) (Defaults), one Claude-family runner and one GPT-family runner. The family this harness does not run natively goes on a cross-harness seat. An `auto` or `inherit-parent` entry in this line or the cross-judge line means the parent model, so omit `model` for it. Apply every entry per [harnesses.md](../poteto-mode/references/harnesses.md) (Models). If a tool rejects a configured entry, run that seat on its family's default and say so. Families are Claude and GPT, read from the model after any `codex:` or `claude:` prefix, and a default `inherit-parent` is the parent's family. With no family match, use the default's first entry. If it rejects a default, resolve and apply per [harnesses.md](../poteto-mode/references/harnesses.md) (Models), or drop that seat and say so when no valid model remains. If dropped seats leave fewer than two runners, add runners on a remaining runner's model until there are two, or one when the configured line has one entry. If none remain, omit `model` to inherit the parent, and report the fallback. Spawn more runners when the arena covers multiple design directions. Use the same model N times when the work is generation-bound rather than judgment-sensitive. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the **poteto-mode** skill.
4. Give each candidate its own output location (a git worktree where possible, otherwise `/tmp/arena-<slug>/candidate-<n>/`), per the **separate-before-serializing-shared-state** principle skill.

## Phase B: Fan out

Spawn all N subagents in one message with `run_in_background: true`, each with the task, the path to the shared grounding, its own output path, and instructions to produce the artifact and a short rationale naming the alternatives it considered and what it rejected.

If a candidate produces no output, proceed with N-1 and note the dropout.

## Phase C: Cross-judge

After all Phase B candidates complete, read the `arena cross-judge pool` line in `~/.config/pstack/models.md`, or the role's defaults in [harnesses.md](../poteto-mode/references/harnesses.md) (Defaults) when absent. The judge must be from a different model family from the parent's, using the families defined in Phase A. Try eligible pool entries in order. An `auto` or `inherit-parent` entry never judges. Resolve and apply each entry per that reference's Models section; use its read-only agent row or a read-only cross-harness seat. If a model is rejected, use a valid effort for that same model, then try the next eligible entry. If no eligible entry runs, try eligible defaults unless the user explicitly restricted the allowed models. If none runs, skip the judge, pick the base alone in Phase D, and say so. If the parent's model is unknown, try real pool entries in order and report that the family check could not run. The judge sees the rubric and candidates by path label, scores each criterion, and recommends a base with rationale. It runs alongside your reading in Phase D, only after candidates stop writing.

## Phase D: Pick a base

Read every candidate end to end before picking. Score each against the rubric criterion by criterion, not on holistic feel, and compare with the cross-judge when Phase C ran one. Agreement on the base confirms the pick. Disagreement means one of you is biased or the rubric was ambiguous. Read both rationales before deciding.

Pick the base a future maintainer can extend most easily without breaking invariants. When two feel tied, prefer the cleaner boundary or smaller API, per the Laziness Protocol.

## Phase E: Graft

Walk each losing candidate once more for what is worth porting into the base, usually one or two things per candidate, not most of it. Fold each graft in by hand, per the **redesign-from-first-principles** principle skill, so the result stays coherent under one mental model. Don't paste mechanically.

If the candidates converge on one shape, that is strong agreement. Note it and ship the consensus shape. No graft is needed. If they wildly diverge, Phase A was under-specified. Reframe and re-run rather than averaging the divergence.

## Phase F: Verify

Verify the synthesized artifact like any other output, per the **prove-it-works** principle skill. If verification finds a problem the arena missed, either Phase A was wrong (re-frame and re-run) or a candidate caught it and you missed the graft (go back to Phase E). Don't paper over it.

## Outputs

One synthesized artifact, with a short synthesis note alongside naming the base and why, the cross-judge's verdict or that Phase C skipped the judge, each graft with its source candidate, what was rejected and why, any convergence or dropouts, and the verification result.

From MaxFabian25/pstack-harness-adaptations, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 14, 2026 (15 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from MaxFabian25

Cite this page

arena skill. Agent Mart. https://agentmart.dev/skills/maxfabian25-arena (last updated 2026-10-24)