Install any skill in seconds. Free to start, no credit card required.
Get Started Free →michael-denyer/arena
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.
Passed 14 of 18 test cases with the skill, and 4 of 18 without it.
and 10 more in the full report
10 fixed4 passed either way4 still failing0 broke4 errored
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
The runtime model sheet specifies `fable @high` for an arena runner seat on the Codex platform. How should the reasoning effort parameter be provided to the `spawn_agent` tool?
| Checked | Without skill | With skill |
|---|---|---|
| passes `high` as the `reasoning_effort` argument to `spawn_agent` | Missed | Passed |
The instructions your model reads when the skill loads.
On Codex, read the platform mapping, including its per-skill notes, before following this skill.
On GitHub Copilot, read the platform mapping, including its per-skill notes, before following this skill.
On Muse, read the platform mapping, including its per-skill notes, before following this skill.
Open a todolist with one entry per phase (Frame, Fan out, Cross-judge, Pick, Graft, Verify) before launching anything.
Every candidate gets the same prompt, so the prompt is the contract.
arena runners line in pstack-models.md. If the sheet or that line is missing, run one each on the defaults in Models. An auto or inherit-parent entry in this line or the cross-judge line means the parent model, so omit model for it. If the Agent tool rejects a configured entry, run that seat on its family's default and say so. Families go by model name, such as Opus, Fable, or Sonnet. With no family match, use the single-role default in Models. If it rejects a default, use the closest valid slug of the same family from its error message. 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 for the job, per the Subagents section of the poteto-mode skill./tmp/arena-<slug>/candidate-<n>/), per the separate-before-serializing-shared-state principle skill.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.
After all Phase B candidates complete, choose one model from the arena cross-judge pool line in pstack-models.md. If the sheet or that line is missing, choose from the runner defaults in Models. Prefer a different model family from the parent's. Spawn one readonly judge subagent on that model. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with your reading in Phase D. Don't spawn it while candidates are still writing.
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. 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.
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.
test cases passed, vs 4 / 18 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.