Repository navigation
v0.2.11
The arena moves into the app
agentpit arena was terminal-only, which left it half-built: a round takes minutes and its votes are the scarcest signal agentpit collects, so the judging has to be somewhere you will actually go.
Settings → アリーナ now owns the whole loop — pick a probe, start a round, judge it blind, read the standings. Two patches side by side, no names, one vote each, and the interval shown next to every rating.
Identity is withheld by the CLI rather than by the UI: arena show omits which backend produced which submission unless --reveal is passed, so the webview never holds the names while a comparison is on screen. Votes are cast by blind label — there is no way to express "vote for codex" through the API, from either front-end. The reveal happens once the last pair is judged, never between comparisons where it would steer the remaining picks.
Ten built-in probes, one per capability cell
Writing a fresh arena task every time does not happen, and an ad-hoc one lands in whatever cell the keyword heuristic picks. The set is now indexed by task category — one probe each, all ten covered — and every rendered task declares its own CATEGORY:, read above every routing gate. Running the ten fills the matrix's category axis by construction; the contenders you enter fill the other.
agentpit arena templates
agentpit arena run --template review/find-defects --target src/dispatch.rs| probe | cell | what it tests |
|---|---|---|
coding/new-unit |
coding | new code to a fixed spec, in the project's own conventions |
refactor/untangle |
refactor | structure improved with behaviour held fixed |
review/find-defects |
review | finding real defects — and not inventing ones |
adversarialreview/trust-nothing |
adversarialreview | reading against the code's own claims |
securityreview/owasp-pass |
securityreview | issues traceable to an attack, by CWE |
debug/root-cause |
debug | the actual cause, not the first silencing change |
explain/how-it-works |
explain | why the code is shaped this way |
docs/user-facing |
docs | written from the outside in |
planning/implementation-plan |
planning | sequencing real work, named files and risks |
longcontext/subtree-inventory |
longcontext | findings that need the whole subtree |
Seven of those categories naturally end in prose, and an empty patch is not a weak submission but a missing one — it would hand the opponent a free win. Each names an output file, so a review arrives as a diff like any other and the blind view stays uniform.
Scriptable arena CLI
arena rounds, arena show [--reveal], arena templates --json, arena leaderboard --json, and a non-interactive arena vote --winner A --loser B / --tie A,B. The desktop app is a client of exactly these.
Fixed
- The BUNDLED CLI card's two absolute paths ran past the edge of their card.