Installs into .claude/skills of the current project.
Are you the author of Arena?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/williamwue-arena-ce9fe6c5)
---
name: arena
description: "Compare independent candidates for the same artifact, cross-judge them, select a base, integrate stronger ideas, and verify the result."
disable-model-invocation: true
---
# Arena
## OMP model routing
At the start of this workflow, run `../../scripts/model-resolution.mjs`
with `--runtime omp --cwd` set to the current workspace. Read the returned
manifest: nearest project first, then the user's `~/.omp/agent/` default.
For each configured route, select its named agent through OMP's native
task-agent selector and verify that its source matches the chosen scope;
for a canonical role, use the manifest role's `agent` name (user
defaults use namespaced `ohmystack-role-*` agents).
Preserve panel entry order and count. If no mapping is present, retain the
workflow's normal runtime model. Verify resolved worker model and thinking
level from OMP session/job metadata, not from the role file alone.
When `task` returns a background job id, retain it until terminal status.
On OMP hosts exposing `proc://` (observed in 18.3.0), use `read proc://<id>`
for non-consuming status, `wait` to drain, and `write proc://<id>/kill`
to cancel an owned job with the required approval. Confirm cancellation
before replacing a worker and reject results from older generations.
Do not assume the deprecated `hub` tool exists. If safe cancellation
is unavailable, wait or report the unit incomplete; never silently
treat an unconfirmed worker as cancelled.
## Child session handoff
Read [the handoff contract](../poteto-mode/references/subagent-handoff.md).
New tasks, repair rounds, retries, and queue items use fresh child sessions
with the original brief, every later directive, prior findings and responses,
and unresolved objections. Reuse only for required costly live state, and
only when the host allows it. Stop and fence active writers before replacement.
A host-owned orchestrator's model catalog, workspace binding, child tools,
and review-round rules take precedence over the native binding above.
Keep its task handles and attribution receipts. Do not use a backing child
conversation as a new delegated review, or claim native-record verification
for a host-owned child. Report attribution evidence gaps explicitly.
Produce competing solutions to one task, then one coherent verified result.
For partitioned coverage or a race with no synthesis, use [swarm](../swarm/SKILL.md).
Keep a phase checklist: frame, fan out, cross-judge, pick, graft, verify.
## Frame
Define the artifact, scope, source revision, constraints, and verification.
Freeze a rubric of three to six gradeable criteria before seeing candidates.
Keep it for the parent and judge; candidates receive the same task contract and
grounding, not the judging rubric or other candidates' work.
Use the requested candidate count, or the length of an active
`arena.runners` panel in the current resolution manifest; without one, start
with two independent attempts. Assign entries in panel order, repeating only
when the user explicitly requests more candidates than configured entries.
For a separate cross-judge, select one entry from `arena.cross-judge-pool`,
preferably a different resolved model family when observable. Bound total
attempts and concurrency. Disclose same-model execution and unsupported
diversity. Give each
candidate an isolated output location. For implementation candidates, ensure
each checkout has the same intended base and required local changes; a clean
checkout that omits relevant uncommitted work is not the same starting state.
Do not share writable branches, databases, ports, or external resources.
If isolation is unavailable, candidates may return designs or patches without
editing the shared tree. If delegation is unavailable, use clearly separated
root candidate passes and disclose that they are not independent agents. Do
not imply a multi-agent or multi-model result from that fallback.
## Fan out and freeze
Start independent candidates within the runtime limit before waiting. Each
brief includes the common task, immutable grounding, ownership, allowed actions,
verification command or check, and required artifact plus rationale naming
rejected alternatives. Workers may not publish or expand task authority.
Drain every started candidate; retain attributable outputs, exact revisions,
checks, and failures. Freeze artifacts before judgment. A dropout remains a
dropout, not a passing candidate. With fewer than two usable candidates, retry
within the declared budget or report a single-candidate result, not a completed
comparison. Do not let a timed-out writer continue changing a judged artifact.
## Cross-judge and pick
After candidates are frozen, start a distinct read-only judge with the rubric
and path-labeled complete candidate artifacts. Pass each candidate's full
frozen output verbatim, or give the judge a readable immutable artifact path;
root-written summaries are not a substitute. If the runtime cannot deliver
every complete artifact to the judge, disclose the gap and do not claim an
independent cross-judge comparison. The parent reads every candidate end to end while
the judge scores them. Prefer configured model diversity only when supported.
Without a separate judge, run a distinct root critique after freezing and
explicitly mark the independent cross-judge as unavailable.
Score every criterion with evidence. Compare the judge's recommendation with
the parent's scores. Resolve disagreement against artifacts and constraints,
not majority opinion. Prefer maintainable boundaries and smaller public APIs
when otherwise tied. Record the selected base and rationale.
## Graft and verify
Revisit each losing candidate. Adapt valuable ideas into the base under one
coherent design, recording source candidate, accepted grafts, and rejections.
Convergence may need no graft; wildly incompatible assumptions require reframing
within the budget, not averaging. One root integrator owns the final artifact.
For an explanation or design-only request, return that artifact without code
changes. Integrate code only when implementation is in scope; preserve unrelated
user edits and never mechanically overwrite the working tree.
Verify the synthesized artifact itself, not just its winning precursor. Run
relevant tests or evaluate the complete design against realistic usage and
invariants. A failed check sends work back to framing or grafting within the
budget, otherwise report the unresolved failure. No implicit commit, push,
release, or merge is authorized by this workflow.
Return the artifact and compact synthesis record: candidate statuses, rubric
scores, judge verdict and disagreement resolution, base, grafts, rejected ideas,
verification evidence, dropouts, and execution fallbacks. Do not claim verified
success when the final check or a required candidate is missing.