Multi-agent tournament scorecard
SkillAI & modelsUse when agent strategies need a reproducible finite tournament under a frozen evaluation protocol. Not for open-ended or infinite matchups: use a continuous benchmark.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Multi-agent tournament scorecard skill
What this skill tells your AI
The instructions your AI receives, as published by outlinedriven/odin-claude-plugin in plugins/odin-agent/skills/multi-agent-tournament-scorecard/SKILL.md and read by ahel’s review.
Contract
| Field | Bound contract |
|---|---|
| Trigger | Agent strategies need a reproducible finite tournament under a frozen evaluation protocol. |
| Authority | Reversible local writes only. Run records and receipts under .outline/loops/; rollback is deletion. No VCS, credential, paid, published, deployed, or remote mutation. |
| Side effect | A reproducible tournament scorecard persisted as a run record. |
| Done | The run ends at exactly one declared terminal class with a persisted run record and receipt.json: on success, the complete matrix with move records, scores, and hidden-identity validation; on stalled, the named matchup and stopping reason; on blocked, the named violation or mismatch and no published scorecard; on exhausted, the completed matchups and the remainder, with no success claim. |
Inputs
- Matchup matrix (required): the explicit finite set of agent pairings and rounds, frozen before the tournament begins.
- Evaluation protocol (required): the frozen rules that govern each matchup: move validation, scoring, and identity disclosure.
- Agent strategies (required): the strategies under test, each identified and version-pinned.
Procedure
- Bind the declared matchup matrix and freeze it before any run. Done when: the matrix is recorded in writing and no matchup has been executed yet.
- Execute the tournament inside the bound: run each matchup in the frozen matrix, record every move, and compute scores per the evaluation protocol. Done when: every matchup in the matrix has a recorded outcome or a non-success terminal applies.
- Validate hidden-identity assignments: confirm each assignment is consistent across the matrix and no identity leaked before disclosure. Done when: every identity assignment is verified or the mismatch is named.
- Select the terminal class, exactly one:
successonly when the matrix is complete and step 3 verified every identity; otherwisestalledfor an incomplete matchup,blockedfor an invalid run or a hidden-identity mismatch,exhaustedfor budget exhaustion before the matrix completes. Budget exhaustion is never success. Done when: exactly one terminal class is selected and recorded. - Persist the result: write the run record to
.outline/loops/<slug>/<run_id>/when durable, and emitreceipt.jsonbefore returning. Done when: the receipt file exists and contains every required field.
Failure and recovery
- Incomplete matchup: a matchup in the matrix did not finish. Terminal
stalled. Name the matchup and the stopping reason. - Invalid run: the evaluation protocol was violated during a matchup. Terminal
blocked. Name the violation and the affected matchup. - Budget exhausted before matrix completes: terminal
exhausted. Report the matchups completed and the remainder. Do not claim success. - Hidden-identity mismatch: an identity assignment is inconsistent or leaked. Terminal
blocked. Name the mismatch; do not publish the scorecard.
Output
A tournament scorecard: terminal class (success, stalled, blocked, exhausted), completed matchups, move records, scores, identity validation, and the receipt path, ordered by the procedure steps that produced them.
Signals
- GitHub stars
- 35
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
multi-agent-tournament-scorecard- Source
- github.com/outlinedriven/odin-claude-plugin