"Invoke the `games` CLI to verify, export, and rank Lex arena game trails. Commands: verify, export, leaderboard, season. Use when you need to recompute the authoritative score of a recorded game from its trail, rank a field of policy rollouts, or update an ELO season — all from trails, never trusting a client-reported score."
Resources
7Install
npx skillscat add alpibrusl/lex-games Install via the SkillsCat registry.
games
Auto-generated skill file for
gamesv0.1.2
Re-generate with:games skill
Verify and export Lex arena game trails. A submission is a trail, not a score:verify replays the recorded moves through the game's deterministic rules and
recomputes the authoritative score, so a leaderboard built on its output can't be
faked. Replay is rules-only (no model inference) — cheap and reproducible.
Available commands
games verify <game> <trail.jsonl>— replay a trail and recompute the score. (idempotent)games export <trail.db> <out.jsonl>— export a trail store to portable JSONL.games leaderboard <manifest.json>— rank a field of robot-policy run trails by verified score. (idempotent)games season <standings.json> <round.json>— update head-to-head ELO ratings over a round; prints the new standings. (idempotent)
games verify
Replay a recorded game trail through the deterministic rules and recompute the
authoritative score. Prints a JSON verdict to stdout.
Arguments
game(string, required) — game name, e.g.bazaarortemplate.trail(string, required) — path to the trail JSONL file to verify.
Example
games verify bazaar ./testdata/bazaar-sample.jsonlOutput (a verdict; fields vary per game):
{"verified":true,"intact":true,"legal":true,"p1":5,"p2":3,"moves":3}verified is the only cross-game guarantee: the trail's hash chain is intact
and every recorded move was legal under the rules. Exit code 0 when
verified, 1 when rejected.
games export
Export a hash-chained trail from a play-server SQLite store to portable,
self-verifying JSONL (one event per line; each line's id is its content hash).
Arguments
db(string, required) — path to the trail SQLite database.out(string, required) — output JSONL file path.
Example
games export /tmp/lex-shop-123.db ./trail.jsonlgames leaderboard
Rank a whole field of robot-policy run trails by their verified score (each
trail is replayed through the rules; a tampered or over-grant trail is
disqualified to the bottom, never trusted). Prints one ranked JSON object.
Arguments
manifest(string, required) — path to a JSON array of{ "label":.., "trail":.. }entries.
Example
games leaderboard ./testdata/policy/leaderboard.jsongames season
Like leaderboard, but ratings persist across rounds: each round plays a
deterministic round-robin (the higher verified score wins each pairing) and
updates every policy's ELO. Reads the prior standings + this round's manifest and
prints the new standings — redirect stdout to persist, so a season is a chain.
A missing standings file starts everyone fresh at 1500.
Arguments
standings(string, required) — path to the prior standings JSON (missing/empty = fresh season).manifest(string, required) — path to this round's manifest (same shape asleaderboard).
Example
games season standings.json round1.json > next.json # round 1 (fresh)
games season next.json round2.json > standings.jsonOutput format
verify and export emit JSON to stdout. verify's object is the game's
verdict; all games include at least verified (bool).
Exit codes
| Code | Meaning | Action |
|---|---|---|
| 0 | Success / verified | Proceed |
| 1 | Trail rejected (tampered or illegal move) | Do not trust the submission |
| 2 | Invalid arguments | Correct and retry |
Further discovery
games help— usage for any commandgames introspect— machine-readable command tree (JSON)
As MCP tools
Run this CLI as MCP tools via `acli-mcp`:
ACLI_BIN=games python -m acli_mcp # exposes verify / export / leaderboard / season as MCP tools