Plans

Plan 0022

Property-based UI testing with Bombadil

Try Bombadil (Antithesis property-based UI testing, browser and terminal drivers) across the repo: autonomous exploration asserting layout and correctness properties on the site and the TUI. First property: text never overflows its SVG container, with an explicit exception list.

Status
Input wanted RFC
Ambition
5 adopts an existing tool across every UI surface rather than inventing one
Impact
6 UI regressions currently ship silently; nothing exercises rendered output
Effort
5 property specs per surface plus CI wiring; the explorer is Bombadil
Risk
3 experimental 0.x API; worst case the specs age with it
Maturity
1 idea stage, tool unevaluated in this repo
Leverage
7 one property catalog covers every page and TUI screen, present and future
Taste
5 choosing properties worth asserting is the judgment; wiring is mechanical
Authors
andrewgazelka
Created
Updated
Tracking issue
-
Supersedes
-
Superseded by
-

Summary

Nothing in CI looks at rendered output. A diagram shipped with its caption overflowing the box it labels, and no check could have objected, because every gate reads source, not pixels. Bombadil is property-based testing for web and terminal UIs: it autonomously explores the surface and asserts correctness properties, locally, in CI, and inside Antithesis. This plan is perhaps the way to get real UI testing: try it everywhere the repo renders anything, the site first, the TUI after.

First properties

  1. Text never overflows its SVG container (the shipped bug: a story diagram’s subtitle ran past its box). Exceptions are declared, not silent.
  2. No horizontal page scroll at any viewport.
  3. Every internal link on the built site resolves.

Bombadil likely earns more on interactive surfaces (the TUI, the chart axis pickers) than on static layout; the trial should measure both.

Eval gate

Adopt if the trial catches real regressions the existing gates miss, at CI cost that does not dominate the site build.

Drafted by Claude Code (Fable); comments wanted, hence the RFC flag.

© 2026 Indexable, Inc.