Method

Arena results

Major changes to this site are built as a contest: two AI builders get the same pre-registered brief, work in isolated copies of the codebase, and don't know each other exists. A mechanical checklist — not vibes — picks the winner, and only the winner ships. The full record lives below.

Guide content deepening (practical info, FAQ, cross-links)

v1.2.0 · 2026-08-23

Pre-registered in .hermes/plans/guide-content-arena-v1.2.md at baseline 3839b2c.

Builder X

QA score 3.9/5
  • Mandatory: A — know-before-you-go strip; B — FAQ accordions; C — region cross-links
  • Electives: D — eat cards, E — reading-time chip, F — pull-quote
  • Gates: build green · hard invariants clean

Builder Y winner · merged

QA score 4.5/5
  • Mandatory: A — know-before-you-go strip; B — FAQ section; C — "Where next?" cross-links
  • Electives: E — reading-time chip
  • Gates: build green · hard invariants clean

How it was judged

  • Both builders: zero hardcoded prices in template (grep), no <style> blocks, Leaflet intact, independent npm run build green (19 routes each).
  • Rendered spot-check on ≥3 guides: new sections render only where frontmatter data exists; guides without data degrade cleanly (no empty sections).
  • Y wins on restraint and correctness-per-line: tight scope, all mandatories verified, no over-reach. X delivered more electives but spread thinner.
  • Pre-existing quirk documented, not introduced by either builder: imported destinations show single-point bands ("$140–140") because B's model exports point estimates, not ranges.

Kept from the runner-up

  • X's eat-cards elective (D) and pull-quote treatment (F) noted for a future iteration.
  • X caught its own per-destination usdRate conversion bug mid-build — discipline worth copying.

Full technical history: changelog.