release pass · proof v1.4.2  ·  20 free screen checks

Every premiere needs a rehearsal.

Greenroom reads your git diff to choose the screens most likely to break, then a virtual user walks your iOS Simulator or web build and returns an evidence-backed QA handoff on the PR. Advisory, never blocking, priced per screen the diff touched.

proof · release pass · v1.4.2 1 P2·advisory·no P1
14 files changed → 9 screens in scope ✓  launch → today · restored session ✓  onboarding · goal → plan reveal ✓  wake session · start → complete ▲  paywall · toast overlaps CTA ✓  progress · refresh after summary ✓  paywall pricing = StoreKit values judging: voice · tokens · state · a11y handoff → PR #212 check · 11m 32s
P2Sync toast overlaps the paywall CTA

After the first session, an error toast sits on top of the purchase button for about four seconds. That's the moment a new user decides whether to pay.

repro 2/2 src/services/sync.ts:835 rubric: state-coherence evidence: illustrative mock
9 screens walked 1 P2 caught pre-release 11m 32s wall clock $4.80 compute illustrative pass · real numbers from the first live run are below

The first real pass ran on this page.

On 26 August 2026, Greenroom's first end-to-end run outside the eval harness walked this landing page from a real change set and posted three P2 findings as a GitHub Check. All three were real defects in this site. This release fixes them.

greenroom-dogfood/greenroom-site · check run · conclusion: neutral 3 findings · 42 s wall clock · $0.35 model spend · 9 evidence objects
P2

Muted body and metadata text does not meet readable contrast

The accessibility scan reports repeated text contrast ratios of 3.35:1 and 3.44:1, plus a 2.11:1 instance, on the landing page.
category: accessibility · finding 1dd603d2
fixed · this release
P2

Landing-page verdict contradicts its displayed P2 finding

The release-pass card presents “no blockers” while simultaneously displaying “paywall · toast overlaps CTA” and a P2 finding.
category: coherence · finding 59e72582
hero card rewritten
P2

Several text links are undersized touch targets

The structured scan reports anchor targets as small as 58x16, 94x16, 161x34, and 350x17.
category: accessibility · finding c6023082
fixed · this release
Muted text is now #7A8B84 (5.4:1 on the ground color), every link is at least 24 px tall, and the hero card reads “1 P2 · advisory · no P1”. what a full handoff looks like →
Illustrative sample handoff

See the verdict before you share a build.

Open the report your team would receive: scope, release context, passed checks, reproducible findings, screenshots, and likely code pointers. The sample is fictionalized and clearly labeled.

Read the sample handoff
Release pass · proof v1.4.2scoped · 9 screens · 21 checks · 11m 32s
1 P2 · advisory · no P1
P2Sync toast overlaps the paywall CTArepro 2/2

Fresh account → complete session → Done → paywall. The error toast covers the purchase button for four seconds.

likely: src/services/sync.ts:835 · rubric: state-coherence
✓ StoreKit values match ✓ session completes ✓ progress refreshes + 14 passed checks

Not another script generator.

Greenroom decides where to look, opens the product, judges what happened, and leaves a handoff a person or coding agent can use.

01 · Scope

Diff-scoped instead of rerunning the whole app.

02 · Walk

Actually walks the browser or iOS simulator.

03 · Judge

Judges evidence against your product rubric.

04 · Hand off

Returns a scoped verdict with repro and code pointers.

One CI step turns your git diff into a QA handoff.

There are no per-flow test scripts to write or maintain. Greenroom maps your diff to the screens it likely affects and walks those, plus your revenue path, every time.

$ git diff v1.4.1..v1.4.2 · 14 files changedImpact engine
PaywallCard.tsx → 3 dependent screens  ·  streaks.ts → progress journeyScope: 9 screens
booting iPhone 17 Pro simulator · fresh install of v1.4.2 · walking as a new userTraversal
reviewing evidence against your rubric · voice · design tokens · state · accessibilityJudgment
✓ handoff posted as a GitHub Check on PR #212 · findings, repro steps, screenshotsReport · 11m 32s
- uses: justindc100/greenroom-action/.github/workflows/pass.yml@3b2754eafa6ed5f4d122a0bb3ea7dee7005f65b8  ·  platform: ios  ·  artifact: build/App.appWorkflow excerpt

See exactly why each screen is in scope.

The coverage map connects changed files to reachable screens, keeps your core path always on, and calls out routes the walk could not reach.

Coverage map connecting changed files to the screens selected for a scoped release pass
Why these nodes
session · progressSessionPlayer.tsx
reminders · settingsreminders.ts
todayalways-on
Graph finding
P3The exercise screen is unreachable. Navigation may be missing or the route may be dead code.

Working isn't the same as right.

A scripted test can confirm the button submits. It can't notice that the copy drifted off-voice, or that Settings says "Free" while the paywall says "Trialing." Greenroom reviews every walk against your rubric, and each finding cites a screenshot and a code pointer.

✓Voice & copy consistencyrubric · voice
✓Design-system conformancerubric · design tokens
✓State coherence across screensplan · trial · paid · empty
✓Accessibility spot checksheuristic · labels · dynamic type
coding agent → opens PR #214 ← greenroom check · 1 P2 · toast blocks paywall CTA · sync.ts:835 coding agent → pushes fix · check re-runs on synchronize ← greenroom check · clean · 9 screens covered · 11m

Your agents write the code. Who looks at the app?

When Claude Code or Codex ships a feature overnight, someone still has to open the app and use it. Greenroom is that someone. Every pull request your agent opens gets walked, and the handoff lands as a GitHub Check with a file and line, so the agent or you can fix what it finds before a human opens the PR.

direct agent access over MCP is planned · not yet available

You could just ask your coding agent.

The agent that wrote the code will happily approve it. Greenroom walks the same build as an independent user, with the same scope and rubric on every release.

Ad-hoc agent walk
$ codex "walk through the new paywall, make sure it's fine" read my diff · opened the preview · clicked to the paywall everything looks good to me ✓
one improvised route · judged its own code · no evidence kept
Greenroom pass
14 files changed → 9 screens in scope · revenue path always on ✓  walks the rendered app · checks voice · tokens · state ▲  P2 · toast overlaps paywall CTA · repro 2/2 · sync.ts:835
every scoped screen · independent judge · evidence on the PR
Ask your agentGreenroom
Every affected screen, every run✗✓
Judged by someone other than the author✗✓
Visually inspects the rendered screens✗✓
Checks voice, tokens, and state coherence✗✓
Screenshots and repro steps on the PR✗✓
Comparable results release to release✗✓
Cost known before the run✗✓

Fits the release stack you already have.

Trigger passes from GitHub today, return the verdict to the PR as a Check, and keep an eye on what is planned next without inventing another release ritual.

GitHub Action

● available

Runs a scoped pass on every pull request and posts the handoff as a GitHub Check on the PR. Read-only repository access through the Greenroom GitHub App.

- uses: justindc100/greenroom-action/.github/workflows/pass.yml@3b2754eafa6ed5f4d122a0bb3ea7dee7005f65b8  with: { platform: web, target-url: http://127.0.0.1:4173 }

EAS Workflows

● planned

Reuse the simulator build EAS already produced as the pass input, so JS-only releases skip the rebuild. Not available yet.

planned · until then, upload the simulator .app from your own workflow

Agent access (MCP)

● planned

Let a coding agent request a pass, read the verdict, and re-verify from inside its own loop. Not available yet; today agents read the Check on the PR.

planned · request a pass · read the verdict · re-verify

Pay for screens validated.

a screen check means we walk and judge one screen in one state · every workspace starts with 20 free screen checks before a plan is required

Pay as you go

$1.50/ screen check
  • $49/mo minimum
  • 20 free screen checks to start
  • Standard rubric
  • Handoff as a GitHub Check on the PR
Sign in with GitHub

Scale

$999/ month
  • 1,500 screen checks · multiple apps
  • Everything in Team
  • iOS Simulator + web

Planned · API access · daily certifications

Talk to us
Talk to us

Questions before you connect a repository?

Tell us about the app: React Native, Expo, Swift or web, which flows matter, and what you want a pass to catch. We reply by email. There is no sales call to book.

Self-serve is the fast path: sign in with GitHub, install the app on one repository, merge the setup files, open a pull request.

on: pull_request · advisory · iOS Simulator + web or read a full handoff from proof v1.4.2 →

Your message and email are stored privately and used only to reply. Passes never start from this form: they run from your own GitHub Actions workflow after you connect a repository.

A narrow, explicit data boundary.

Greenroom gets only the access needed for the pass your workflow runs. Contact details are stored privately and used only to reply.

Build

Only the build your own CI produces for the pass. Nothing is uploaded from a form.

Account

A disposable test account inside an allowlist you approve.

Repo

Read-only access for scope and code pointers. No commits.

Control

Passes start from your workflow on your pull requests. Nothing runs until you merge the setup files.

What you're probably wondering

Will it block my releases with flaky results?

Not unless you ask it to. Passes are advisory by default. During the pilot, findings are advisory. Automated release blocking is unavailable until independently reproduced failure gates are validated.

What does it actually touch?

The build your CI produces, in a simulator or a browser, using a disposable test account inside a network allowlist you approve. Repo access is read-only, and it never pushes commits.

Does it replace my existing tests?

No. Your unit tests and scripted smoke suite still run first and still gate merges. Greenroom walks the parts a script can't judge.

How long does a pass take?

Timing depends on the scope we map for your app. The first live run on this page took 42 seconds for one goal; scoped release passes are designed to finish in minutes, and we will publish measured timings as public dogfooding continues.

Which platforms are covered?

iOS on the Apple Simulator and web against your preview deploys. The handoff format is the same on both.

on: pull_request

Walk your next release before your users do.

20 free screen checks per workspace · advisory, never blocking · iOS Simulator + web