Dummy Run

A run has four stages: cast, run, review and board. Each stage reads and writes plain files, so you can replace any stage or run it by hand. Anything that touches a cloud, a model or a target platform sits behind an adapter. Data residency is a per-market setting that every adapter must satisfy.

Stages

  • Castpersonas/*/profile.md, prompt, scenarios
  • Target adapterPreview URL, test user, fixtures
  • LLM provider adapterChosen per market
  1. RunReal browser over WebDriver BiDi. Steps, screenshots, console, network
  2. Run recordJSON and PNG
  3. Deterministic checksaxe, CSP, status codes, allowed hosts
  4. ReviewerClaim by claim, code references, 3 votes
  5. Record batchCorroborations, candidates
  6. Person checks high-severity candidates
  7. Results boardStatic HTML and JSON

Amber marks the stages where a model acts. Blue marks adapters. Green marks what people read.

Adapters

AdapterResponsibilityFirst implementations
TargetResolve a preview for a change (PR number, branch or URL); create a test user with a named role; seed fixtures; say which hosts a run may touchPlain URL; then Vercel, Netlify, Cloudflare Pages, GitHub Deployments
LLM providerPlay the persona; review claims. Separate models for the two jobsVertex AI (Gemini), Azure AI Foundry, Anthropic, OpenAI-compatible local
Runner hostWhere the browser runsLaptop; GitHub Actions; Kubernetes job (Helm); Cloud Run jobs; Azure Container Apps jobs
Results storeWhere run records and the board liveLocal directory; object storage (GCS, Azure Blob, S3); the board is always static files on top
SecretsTest-user credentials and provider keysOS keychain; CI secrets; Secret Manager; Key Vault

An adapter declares the regions it can run in. A market profile (for example uk) lists the regions that satisfy it (europe-west2, uksouth, ukwest). A run refuses to start if any adapter in the chain cannot satisfy the market.

The evidence rule

A finding is a claim plus evidence. The reviewer rejects a claim unless a step in the run record supports it. That support is a screenshot, a console or network line, or a code reference. Each finding carries one of four tags:

TagMeaning
measuredSeen in a run
codeRead in the source
sourcedStated in an issue or document
inferredOur reasoning, labelled as such

High-severity findings wait for a person to confirm them.

Browsers

Chrome and Firefox are driven through WebDriver BiDi, so the same session code drives both. Mobile is a viewport and user-agent profile per persona. Real devices will come through an adapter for a hosted browser grid.

Deployment

  • deploy/compose runs everything on one machine with one command.
  • deploy/helm/dummyrun is a Helm chart with jobs for the runner and the reviewer and a board publisher. It has a values file per cloud (values-gcp.yaml and values-azure.yaml).
  • Every release runs the demo cast against the demo app on both clouds and compares the two boards.

This page is rendered from docs/ARCHITECTURE.md in the repository. Edit it there and the site follows.