SKILL.md
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.
- State the artifact each candidate is producing.
- 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.
- Pick the runners. Use the
arena runnersline in the pstack settings file (~/.cursor/rules/pstack-models.mdcin Cursor,~/.claude/rules/pstack-models.mdin Claude Code,~/.agents/pstack-models.mdin other harnesses). If the file or that line is missing, default to one each onclaude-opus-5-5-xhighandgrok-4.7-xhigh-fast. Anautoorinherit-parententry in this line means the parent model, so omitmodelfor it. If your subagent tool rejects a configured entry, run that seat on its family's default and say so. Families go by prefix:claude-*, andgrok-*withcursor-grok-*andcomposer-*. A refusedcomposer-*entry runs ongrok-4.7-xhigh-fast. If the family has no default, or your subagent tool rejects that default, use the closest valid slug of the same family from its error message or your harness's model list, or drop the seat and say so when there is none. If dropped seats leave fewer than two runners, add runners until there are two, or one when the line has one entry. Run each added runner on a remaining runner's model, or omitmodelso it runs on the parent model when none remain, and say so. 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. - 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.