Goldberry: Frontend Invariant Catalog for DST Harnesses
Research corpus for deterministic simulation testing of web UIs

Table of Contents

Overview

Goldberry catalogs frontend UI invariants for integration with deterministic simulation testing (DST) harnesses like Antithesis. The thesis: UI bugs are interface-and-time defects with discoverable patterns and cross-paradigm genealogies spanning 40+ years of GUI development.

This research corpus accompanies the goldberry project.

Research Documents

Document Lines Purpose
historical-ui-systems.org 425 40 years of windowing system invariants (Plan 9, X11, NeXTSTEP, PARC, Motif, Oberon)
foundation.org 600+ Web technology timeline: HTML, CSS, JS frameworks, mobile
foundation-verification.org 180 Adversarial date/fact verification against primary sources
claims-verification.org 284 Adversarial review of related work claims
related-work.org 250+ Survey of WCAG, ARIA APG, XState, Devcards, 1990s HCI
why-this-is-hard.org 500+ 12-layer verification stack analysis

The 10-Cluster Taxonomy

Every frontend invariant maps to one of these concern clusters:

Cluster What It Covers
temporality race conditions, ordering, async timing
totality partial states, error handling, edge coverage
boundaries viewport, overflow, resize, responsive breakpoints
a11ycontract accessibility tree, WCAG compliance
devicecontract touch, pointer, keyboard, hybrid input
layoutcontract CSS cascade, grid/flex, visual regression
eventgraph capture/bubble, delegation, synthetic events
lifecycle mount/unmount, hydration, hot reload
focusstate focus trap, restoration, tab order, modal semantics
securitycontract XSS, CSRF, auth state, iframe sandboxing

Taxonomy Diagram

diagram-taxonomy.png

diagram-taxonomy.png

Key Findings

1980s Invariants Were Solved

Many invariants that goldberry catalogs were solved in the 1980s:

  • Plan 9: Namespace isolation per process eliminates global state pollution
  • NeXTSTEP: Immutable focus during event dispatch prevents mid-dispatch chaos
  • X11 ICCCM: Selection ownership protocol prevents clipboard races
  • Oberon: Tiled windows eliminate z-index bugs by construction

The web re-introduced these bugs because HTML/CSS/JS lacked the constraints these systems enforced.

Historical UI Systems Map to Goldberry Clusters

System Focus Model Event Model Layout Model
Plan 9/Rio Namespace-isolated File-based Painter's algorithm
X11 Per-window (ICCCM) Client-server Reparenting WM
NeXTSTEP Immutable during dispatch Responder chain DPS (formal)
Xerox Star First responder Direct manipulation Desktop metaphor
Oberon Tiled (simplified) Integrated No overlap
Modern Web Variable DOM capture/bubble CSS cascade

New Invariant Candidates from Historical Research

namespace-isolation:
  cluster: boundaries
  statement: Each interactive context must have its own namespace.
  source: Plan 9 (1987-2002)

focus-immutability:
  cluster: focus_state
  statement: Focus state must not change while event is in dispatch.
  source: NeXTSTEP (1988-1997)

monotonic-z-order:
  cluster: layout_contract
  statement: Z-order must never form cycles.
  source: Plan 9/Rio, Oberon

mount-time-validation:
  cluster: lifecycle
  statement: All handler connections must resolve at mount time.
  source: Interface Builder (NeXTSTEP)

Era Tags

Era Window Authoring Pattern
E-1 1973-1993 Graphical operating systems (pre-web)
E0 1993-2008 Human writes HTML/CSS/JS directly
E1 2008-now Framework generates HTML
E2 emerging NL/design-tool generates components
E3 hypothetical Formal spec generates everything

Verification Methodology

All claims in this corpus were verified using adversarial research agents:

  1. Primary source verification (W3C specs, GitHub releases, official blogs)
  2. Cross-agent validation (multiple agents checking same claim)
  3. Explicit uncertainty marking (CORRECT, APPROXIMATE, UNCERTAIN, INCORRECT)

Critical corrections found:

  • React Hooks: 2018 -> 2019 (released Feb 6, 2019)
  • Lynx ByteDance: 2024 -> 2025 (open-sourced March 5, 2025)

Links

Author: jwalsh

jwalsh@nexus

Last Updated: 2026-05-19 23:35:10

build: 2026-05-20 03:36 | sha: 12ce5fe