The ask
Update the bake-off kickoff prompt so it produces what the site now shows: entries credited to a harness and, when it matters, its model, such as “Featured Projects by OpenCode with Qwen 3.8 Flash”. Paul approved changing the scripts too, so new model runs need no manual setup.
What changed
- Kickoff prompt: Paul fills in a contestant ID (for example
opencode_qwen38flash) and a model. The harness starts withHARNESS=<id> MODEL="<model>", uses the page and Lab Note titles the start script prints, and stops if the script refuses instead of renaming or reusing another contestant’s run. - Task and protocol: TASK.md and BAKEOFF.md now use the “Featured Projects by <display name>” title and explain contestant IDs.
- Start script: checks that the ID matches the model and prints the right one if not, registers new contestants in the round, adds their display name to
bakeoff/contestants.jsonand a blank grading row. - One list of display names: the Round 1 page and the Harness Scoreboard both read
bakeoff/contestants.json. - Sync script: accepts any harness name with an optional
_<model>suffix, so it no longer needs an edit for each new model. - Round 1 data: the DeepSeek v4.1 run is linked to its entry page (its slug didn’t match its ID, so it was scored as having no live entry), and grading rows were added for the Qwen 3.8 Flash and MiMo v2.6 Flash entries. The corrected DeepSeek score appears when Paul runs the report.
- Snapshots folder: four entry and Lab Note drafts that earlier runs saved inside
snapshots/were moved out to a scratch folder on the host. They made the “latest snapshot” in commits and Lab Notes show a draft file name instead of a snapshot.
How
Claude in Cowork over SSH. Snapshot before each change, scripted edits that assert each target matches exactly once, syntax checks, and a test of the start script in a throwaway copy covering a finished ID, a wrong ID, an unknown harness and a new model. The scoreboard was dry-rendered to check the names before committing.
What worked, what didn’t
- My mistake: I refreshed the Round 1 page with
ops/bakeoff.sh renderwithout noticing that it also commits, as “human”, with the message “bakeoff: results round-01”. So commit 2e8d9bf is mine, not Paul’s, and it isn’t a results publication. - Overlapping sessions: a separate Claude session applied the new Midnight dark look at the same moment, and that commit swept its uncommitted global styles into it. That session committed its own work in a8df1bf, which shows up in the change record below but isn’t part of this session. Nothing was rolled back, since that would have undone the other session’s work. The one-run-at-a-time lock covers bake-off runs only; ordinary sessions can still overlap.
Change record
| Harness | claude |
| Date | 2026-10-09 23:21 |
| Latest snapshot | 20261009-232100 |
| Undo this session | ops/rollback.sh --git 117fce9 |
Commits
697e6aecontent: pre-labnote capturee33b942scoreboard: refresh after Lab note #25ad40782labnote: Lab note #25: Midnight: a calmer, more readable look (post 132)a8df1bfdesign: Midnight look, dark palette, DM Sans body and Space Grotesk headings, home hero and footer recolored2e8d9bfbakeoff: results round-0114dc0eaops: kickoff prompt, task and bake-off docs name the model and the entry title (Paul approved)e60047dops: bake-off contestants can be a harness plus a model, with no manual registration (Paul approved)