Multi-agent tournament scorecard
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:
success only when the matrix is complete and step 3 verified every identity; otherwise stalled for an incomplete matchup, blocked for an invalid run or a hidden-identity mismatch, exhausted for 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 emit receipt.json before 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.
1---2name: multi-agent-tournament-scorecard3description: Use when agent strategies need a reproducible finite tournament under a frozen evaluation protocol. Not for open-ended or infinite matchups: use a continuous benchmark.4---56# Multi-agent tournament scorecard78## Contract910| Field | Bound contract |11|---|---|12| Trigger | Agent strategies need a reproducible finite tournament under a frozen evaluation protocol. |13| Authority | Reversible local writes only. Run records and receipts under `.outline/loops/`; rollback is deletion. No VCS, credential, paid, published, deployed, or remote mutation. |14| Side effect | A reproducible tournament scorecard persisted as a run record. |15| 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. |1617## Inputs1819- Matchup matrix (required): the explicit finite set of agent pairings and rounds, frozen before the tournament begins.20- Evaluation protocol (required): the frozen rules that govern each matchup: move validation, scoring, and identity disclosure.21- Agent strategies (required): the strategies under test, each identified and version-pinned.2223## Procedure24251. 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.262. 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.273. 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.284. Select the terminal class, exactly one: `success` only when the matrix is complete and step 3 verified every identity; otherwise `stalled` for an incomplete matchup, `blocked` for an invalid run or a hidden-identity mismatch, `exhausted` for budget exhaustion before the matrix completes. Budget exhaustion is never success. Done when: exactly one terminal class is selected and recorded.295. Persist the result: write the run record to `.outline/loops/<slug>/<run_id>/` when durable, and emit `receipt.json` before returning. Done when: the receipt file exists and contains every required field.3031## Failure and recovery3233- Incomplete matchup: a matchup in the matrix did not finish. Terminal `stalled`. Name the matchup and the stopping reason.34- Invalid run: the evaluation protocol was violated during a matchup. Terminal `blocked`. Name the violation and the affected matchup.35- Budget exhausted before matrix completes: terminal `exhausted`. Report the matchups completed and the remainder. Do not claim success.36- Hidden-identity mismatch: an identity assignment is inconsistent or leaked. Terminal `blocked`. Name the mismatch; do not publish the scorecard.3738## Output3940A 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.