arena
Arena
Read the installed poteto-mode reference ../poteto-mode/references/t3-execution.md before selecting models or delegating. It owns named-role resolution, catalog option keys, accounts and automatic authorized missing-usage fallback.
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 inpstack-models.md. If the file or that line is missing, default to one each on its two distinct-model bundled defaults atxhighreasoning through live catalog option keys unless the user chooses a budget. Anautoorinherit-parententry in this line or the cross-judge line means the parent model, so resolve its actual target fromorchestrator_capabilities. Ifdelegate_taskrejects a configured entry, follow the execution adapter's authorized fallback preserving the reasoning tier and required diversity and say so. Resolve family and valid candidates from the live catalog, never a guessed slug. Inspect task status and writes before retrying on a fresh task ID. 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. Set each subagent's reasoning level and speed 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. Use supported child isolation;t3_thread_launchis only for explicitly requested separate top-level conversations. If the required isolation is unavailable, report the factual limitation.
Phase B: Fan out
Spawn all N subagents in one message with delegate_task and mode: "async", 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. Retain each task ID, once nothing independent is left, end the turn until their completion notifications wake you, then read each result with task_status, and task_cancel only a child whose status is not terminal. Every brief stands alone. T3 child agents get only the brief, never the parent's context.