# Elo

A blind voting tool that ranks a team's options with chess-style ratings.

Card 14 of 26 in Kevin Liu's collection. 2026. Data and Agent.

- Live: https://elo.kevinliu.studio/
- Source: https://github.com/Kevin-Liu-01/Elo
- Inks: 1
- Health 276, attack 96, defence 103, speed 123

## The numbers

- **10 commits**. Receipt: `git rev-list --count a6a460a61`
- **2 check files**. Receipt: `gh api repos/Kevin-Liu-01/Elo/git/trees/a6a460a61?recursive=1 | grep -cE <glob>`
- **10 commits per active day**. Receipt: `10 commits over 1 distinct commit dates, 2026-10-30 to 2026-10-30`
- **0 GitHub stars**. Receipt: `gh api repos/Kevin-Liu-01/Elo --jq .stargazers_count (2026-10-30)`

## Trait

**Upset**. Elo rewards upsets, so it hits cards with higher stat totals harder, lower ones softer. Receipt: `Elo@a6a460a61:src/lib/elo.ts:79-81,106`

## Moves

- Blind Pair hits for 85. Each matchup shows two options under 12-character codes, so no name can sway the voter. Receipt: `Elo@a6a460a61:README.md:3; src/lib/identity.ts:138-145; src/ui/Ground.tsx:3-10`
- Elo Replay hits for 110, 95% of the time. Ratings are rebuilt from the vote log: options start at 1000, and each counted vote moves up to 32 points. Receipt: `Elo@a6a460a61:src/lib/elo.ts:1-5,79-81,83-116; src/lib/config.ts:6-7`
- MCP Server hits for 75 and goes first. All 16 admin actions are also tools AI agents can call, so an agent can do anything the admin can. Receipt: `Elo@a6a460a61:src/app/mcp/route.ts:1-5,20-26,50; src/lib/ops.ts:1-6,144-474`
- Change Vote restores 50 health. A voter can go back to any matchup and change the pick; the latest vote counts, up to 10 per pair. Receipt: `Elo@a6a460a61:README.md:5; src/lib/change.ts:9-10; db/schema.sql:64`

Facts pinned at commit a6a460a61 on 2026-10-30.

Back to every card: https://www.kevinliu.studio/
