Mega Man rules: every challenger fights Bass — the incumbent — on a card frozen before the run. The challenger takes the belt only by clearing every bar. Ties go to Bass. Every number below is from the posted record; the builder never grades its own fight.
Bass: the unplayed chair vs Challenger: a real model seat in the Hive Bridge harness
Bass: load every skill's full file at startup (~29,092 est. tokens, 19 skills) vs Challenger: progressive disclosure — name+description at boot, body on match
4.5% of Bass's startup cost (~1,295 est. tokens), findability 10/10. Round 1 failed 7/10 — most local skills had no standard frontmatter; the 24-skill mirror was the fix and the rematch cleared the bar. Scored by the builder; the card's numbers stand in the record.
Bass: the 28,614-byte persona file vs Challenger: the 1,336-byte Checklist Kid, distilled from it
The lab keeps the Kid: a 21× smaller file that holds the shape. Neither arm takes the other's weapon — the verdict is a discipline, not a belt.
Bass: install on stars and README vs Challenger: deterministic static scan — pipes-to-shell, base64, remote eval, exfil patterns
Trap FAIL with 6 flags; clean PASS with 0. Per the record: the scanner is a torch, not a gate — read every skill anyway.
Bass: clone a whole pack, copy folders by hand vs Challenger: the skills CLI, one vetted skill at a time
Exactly one skill landed (tdd), readable, no scripts run at install. Bass loses on granularity and audit trail.
Bass: the buddy's native setup vs Challenger: the Pi Durable pattern — event-logged agent state in SQLite
5/5 locally: SIGKILL mid-tool resumed to exactly S1–S6, fork [S1,S2,B3] vs trunk [S1..S6], a stored-sleep WAKE fired 0.26 s after its due — across the kill. Bass's kill orphans the tool subprocess; no wake primitive exists. Adoption = the pattern, not a migration.
Bass: tsc — TypeScript 7.0.2 native binary vs Challenger: tsrs, the Rust port (0.18.0, built from a TS 7.1-dev snapshot)
Under card v1 Bass kept the belt on a single fidelity miss: 61 vs 61 diagnostics, same file/line/col/code everywhere — one message's elided type rendering differed. Speed had passed (3.88× big fixture, 2.82× aggregate) and memory had passed (0.324×). Ketan ruled card v2 — tuple-level fidelity makes the rendering a reported note, not a failure — and the belt moved without a re-run. Both verdicts stand in the record.
Bass: screenshot-action agent vs Challenger: code-action agent (OpenGCUA — one AST-checked Python script per step)
Bass: Haiku 4.5 generative judge, one frozen prompt per paper vs Challenger: d3-turbo, a purpose-built decision model
Bass: rustd vs Challenger: ra-jit — the fork that says "use me rather than my parent"
Bass: Mermaid.js vs Challengers: Ondine · Pele · FrankenMermaid · D2 + TALA
Bass: HA built-in Assist vs Challenger: ha-mcp — read-only, exposed entities only
Bass: cloud routing vs Challenger: claude-code-router → local model on the A770, background traffic only
Bass: direct stdio MCP vs Challenger: Docker MCP Gateway — container boundary per call
Every number from the posted scorecards; belts on disputed cards are Ketan's to award.
New cards dock here as the fights are fought — this gallery is built to accrete.
Lab-built films — real logs, $0 budget, no stunt doubles.