arena
Skill9 starsChanged 37 days agoMITView on GitHub
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape.
91 other projects use a version of this, 60 of them edited.
Adopted by
Most recently taken up by
- incredible404-rgb/zstacktheir own version, first seen Nov 15, 2026
- sammyjoyce/prime-pstackedited, first seen Nov 15, 2026
- pronvis/skillsedited, first seen Nov 15, 2026
- upamune/skillsedited, first seen Nov 15, 2026
- crimson-gzx/worldcup-ai-arenatheir own version, first seen Nov 15, 2026
- ychampion/ystacktheir own version, first seen Nov 15, 2026
Used with
Projects with it also use addskill, apply-firmware and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ryanportfolioSkilladdskill
Create, import, update, or install repo or personal skills: runtime ownership, resources, discovery checks.
Also in 6 projects that use this
ryanportfolioSkillapply-firmware
Bring current folder (plain folder, existing repo, old or partial firmware copy) up to full Harness Firmware in place. Mirror external repo → adopt-repo.
Also in 6 projects that use this
- +10 more from ryanportfolio
Other versions91 projects use a version of this.
Word for word · 0
None found.
Edited · 60
- Yeachan-Heo/oh-my-claude-sisyphus★ 41k14% same
- Yeachan-Heo/oh-my-claudecode★ 41k14% same
- backnotprop/pstack★ 3.8k43% same
- moeru-ai/xsai★ 66748% same
- jtaroreh/agystack★ 12811% same
- uzairansaruzi/p3-stack★ 12628% same
- dsebban/skills★ 7134% same
- overextended/skills★ 2235% same
- creedants/pstack-t3★ 1833% same
- painhardcore/pstack★ 1852% same
50 more not listed
Wrote their own version · 31
- TheOnlyFusionCube/potetos-for-everyone★ 21same name
- korallis/skills-collection★ 14same name
- thatmike1/claude-skills★ 10same name
- Jakeschincariol/arena-skill★ 6same name
- therealtinhtute/mono-harness★ 5same name
- kinqsradio/orbyn-fullstack-skills★ 4same name
- orbyn-dev/orbyn-fullstack-skills★ 4same name
- requie/endostack★ 4same name
- ychampion/ystack★ 4same name
- 0xUrsanomics/utopia-os★ 2same name
21 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository64 other files it gives its agents.
- architectSkill
- automate-meSkill
- benchmark-checklistSkill
- blast-radiusSkill
- broSkill
- correctSkill
- create-formal-verification-skillSkill
- create-verification-skillSkill
- deslopSkill
- documentation-impactSkill
- figure-it-outSkill
- howSkill
- interrogateSkill
- in-your-own-wordsSkill
- ketchupSkill
- ketchup-videoSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- make-bot-uiSkill
- no-commentsSkill
- poteto-helpSkill
- poteto-modeSkill
- poteto-tddSkill
- poteto-teachSkill
- principle-attack-the-premiseSkill
- principle-boundary-disciplineSkill
- principle-build-the-leverSkill
- principle-encode-lessons-in-structureSkill
- principle-exhaust-the-design-spaceSkill
- principle-experience-firstSkill
- principle-explain-the-numberSkill
- principle-fix-root-causesSkill
- principle-foundational-thinkingSkill
- principle-guard-the-context-windowSkill
- principle-laziness-protocolSkill
- principle-make-operations-idempotentSkill
- principle-migrate-callers-then-delete-legacy-apisSkill
- principle-minimize-reader-loadSkill
- principle-model-the-domainSkill
- principle-never-block-on-the-humanSkill
- principle-outcome-oriented-executionSkill
- principle-prove-it-worksSkill
- principle-redesign-from-first-principlesSkill
- principle-separate-before-serializing-shared-stateSkill
- principle-sequence-verifiable-unitsSkill
- principle-subtract-before-you-addSkill
- principle-test-behavior-not-implementationSkill
- principle-type-system-disciplineSkill
- pr-recapSkill
- pstack-harnessSkill
- recallSkill
- reflectSkill
- runtime-probesSkill
- setup-pstackSkill
- sharpenSkill
- show-me-your-workSkill
- spec-probesSkill
- statechartSkill
- swarmSkill
- technical-writingSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 7 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 88 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Every candidate gets the same prompt, so the prompt is the contract.
- Distinctive: line 20
When the project has no commit, make each plain directory a clone of a snapshot repository.
- Distinctive: line 22
Keep the rubric outside every directory a candidate can read, and give it to the cross-judge in its prompt.
- Very specific: line 34
After all Phase B candidates complete, choose one arm of the arena cross-judge pool role.
- Distinctive: line 37
If no entry runs on another model, skip the judge, pick the base alone in Phase D, and say so.
- Distinctive: line 38
If you do not know the parent's model, try the pool's entries in pool order and say that the model check did not run.
- Distinctive: line 51
Start no graft, and spawn no implementation of the result, before you pick the base.
- Distinctive: line 57
If the candidates converge on one shape, note the convergence subject to Phase D's actual-model disclosure and one-model limitation.
“Common” is measured: kept by at least 6 in 10 of the 88 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Arena
Open a worklist 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. For subjective criteria, use Eval's criterion and calibration guidance. It is the picker's tool in Phase D. Candidates only see the task.
- Pick the runners. Use the
arena runnersrole, one arm per entry. Its default is one each onfable,opus,sonnet. A rejected entry also follows the required-arm rule below. Spawn more runners when the arena covers multiple design directions. Call the Skill tool withpstack-harness, then follow its Spawn a role section. On"comparison": "skip", follow its same-model rule: a design comparison skips Phases B through E, and a review still runs them. - Give each candidate its own output location (a git worktree where possible, otherwise
candidate-<n>/inside a freshmktemp -d "${TMPDIR:-/tmp}/arena-<slug>.XXXXXX"made for this run). Call the Skill tool withprinciple-separate-before-serializing-shared-state. Never reuse an earlier run's directory.- A native isolation option counts only when it makes a git worktree, where
git -C <its path> rev-parse --path-format=absolute --git-common-dirprints the project's. Grok Build'sisolation: worktreecan make a standalone clone, so spawn there withisolation: none. If you omit the field, a Grok role or persona default can still turn isolation on. - Make every other candidate worktree yourself, one at a time, with
git worktree add --detach <run dir>/candidate-<n>, where<run dir>is that freshmktemp -d, and name the path in the candidate's brief. If an add fails, remove the worktrees already made and give every candidate a plain directory there instead, so all candidates start alike. - When the project has no commit, make each plain directory a clone of a snapshot repository. The fallback in the delegation procedure says how to make the snapshot and how to seed and brief each plain directory.
- Clean up the run when it ends, after saving its outputs per Outputs, and before a re-frame and re-run starts, whether Phase E or Phase F sent you back. To clean up, remove each candidate worktree with
git worktree remove --force <path>, delete any branch made for it withgit branch -D, and delete the scratch directory. Going back to Phase E to graft keeps them. - Keep the rubric outside every directory a candidate can read, and give it to the cross-judge in its prompt.
- A native isolation option counts only when it makes a git worktree, where
Phase B: Fan out
Spawn all N subagents in one message, in the background, 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. Send a running runner or judge only a correction to the source or scope or a stop order, never your tests, reading, or pick. If the question changes, reframe and re-run.
Required arms
An arm or exact model requested for this task remains an obligation. If it cannot return a result, retain useful outputs but report the requested comparison as incomplete. Disclose substitutions and the models that actually ran. A replacement does not fulfill an exact model request. Configured defaults and role aliases resolve through the harness as usual. A default or discretionary candidate may drop out with a recorded limitation.
Phase C: Cross-judge
After all Phase B candidates complete, choose one arm of the arena cross-judge pool role. Call the Skill tool with pstack-harness, then follow its Spawn a role section to resolve it. Its default pool is fable, opus, sonnet.
- Spawn one read-only judge subagent. The judge never runs on the parent's model.
- Try the pool's entries in pool order, first those from a model family other than the parent's, then those on a different capability tier of the parent's family. An
autoorinherit-parententry is the parent model, so it never judges. An arm that Spawn a role moves onto the session model after a rejection is the parent model too, so move to the next entry. - If no entry runs on another model, skip the judge, pick the base alone in Phase D, and say so.
- If you do not know the parent's model, try the pool's entries in pool order and say that the model check did not run.
- The judge 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.
Phase D: Pick a base
Read every candidate's rationale end to end before picking. Read a candidate's full artifact only when it is the base, or where you and the cross-judge disagree on a criterion. The cross-judge reads every artifact in full. When Phase C skipped the judge, read every candidate's full artifact.
Score each candidate against the rubric criterion by criterion, not on holistic feel, from its rationale and the cross-judge's evidence for that criterion. Where those cannot settle a criterion, read that part of the artifact.
- Compare against the cross-judge when Phase C ran one. Wait for its verdict before you pick. If it recommends a base other than the one it scored highest, treat the verdict as unresolved: send it back once to explain the gap, and read that explanation before you pick. Your own explanation does not replace the judge's. Agreement on the base confirms the pick.
- Name the models you, the runners, and the cross-judge ran on before you call any agreement or convergence confirmation, because arms on one model are one opinion. Disagreement means one of you is biased or the rubric was ambiguous. Read both rationales before deciding. If you still pick a different base, record the criterion that decided it.
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. A larger diff for behavior-preserving restructuring of the extended unit is not a penalty. Judge the resulting structure and its demonstrated maintenance cost.
Start no graft, and spawn no implementation of the result, before you pick the base.
Phase E: Graft
Walk each losing candidate's rationale and the cross-judge's scores once more for what is worth porting into the base, usually one or two things per candidate, not most of it. Read only the parts of a losing artifact you will graft. Fold each graft in by hand, so the result stays coherent under one mental model. Call the Skill tool with principle-redesign-from-first-principles. Don't paste mechanically.
If the candidates converge on one shape, note the convergence subject to Phase D's actual-model disclosure and one-model limitation. 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.
Phase F: Verify
Verify the synthesized artifact like any other output. Call the Skill tool with principle-prove-it-works. If verification finds a problem the arena missed, either Phase A was wrong (re-frame and re-run) or a candidate caught it and you missed the graft (go back to Phase E). Don't paper over it. Before a re-frame and re-run, remove this run's candidate worktrees and their branches and delete its scratch directory. Going back to Phase E keeps them. Once verification passes, save the outputs, then clean up the same way.
Outputs
One synthesized artifact, saved where the calling task says. Code the calling task ships goes onto the branch it works on. A sketch awaiting the caller's sign-off is not yet code the task ships, so it stays outside the project until sign-off. Any other artifact whose task names no place goes in a fresh mktemp -d outside the project. Give a short synthesis note in your reply rather than as a file, naming the base and why, the cross-judge's verdict and the criterion that decided any pick against it, or that Phase C skipped the judge, each graft with its source candidate, what was rejected and why, any convergence or dropouts, and the verification result.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

