Who it is for
Six jobs read the same results board for different reasons. Each page is written for one of them.
- For QA leads
- One persona, one scenario, one preview sam-author / reply-to-review2026-10-17-sam-author-006 1click Submit4.5 s 2select Title2.5 s 3select Comment2.9 s 4click Approve3.1 s 5click Schedule2.2 s 6visit /draftsfinding 7type Comment3.4 s 8click Submit2.7 s 11finishcompleted Step 6, screenshot step-06.pngSubmit button under the keyboard A run signs one persona in to the preview built for a pull request and works through one scenario. Run 2026-10-17-sam-author-006 took 11 steps and ended with one confirmed finding at step 6.
- For developers
- A real browser on your preview traceparent00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ab902b7-01 baggagedummyrun.run.id=2026-10-17-sam-author-006,dummyrun.persona.id=sam-author User-AgentMozilla/5.0 (...) Chrome/148.0.0.0 Safari/537.36 DummyRun/0.1.0 A run drives Chrome or Firefox through WebDriver BiDi. Every request to your hosts carries a traceparent and a baggage header, and the user agent ends with DummyRun/<version>. An app instrumented with OpenTelemetry joins the persona’s trace. One JSON record per run { "id": "2026-10-17-sam-author-006", "persona": { "id": "sam-author", "role": "author", "device": "phone" }, "scenario": { "id": "reply-to-review", "title": "Reply to review comments" }, "target": { "adapter": "url", "environment": "pr-44", "commit": "9076600" }, "provider": { "kind": "vertex-gemini", "model": "gemini-3.5-flash", "region": "europe-west2" }, "outcome": "completed", "steps": [ ... 11 steps ... ], "findings": [ { "id": "submit-button-below-keyboard", "severity": "major", "steps": [6], "evidence": "measured", "verdict": "confirmed" } ], "usage": { "model_calls": 15, "input_tokens": 127215, "cost_usd": 0.0549 } } Each run writes one record that validates against the run record schema. The results board is static HTML and JSON built from those records.
- For agencies
- One cast, every client Linlin-contributor RoleContributor DeviceTablet, Firefox GoalsSend a first pitch. Check a payment status Maypitchsee own payments May notsee other writers' rates A cast is a set of personas. The example cast has four. Two work on a desktop and the others on a phone and a tablet. Run the same cast against each client’s preview, or give a client with its own roles its own personas.
- For product and UX
- Friction, with the screenshot frictionmajormeasuredconfirmed On a phone the Submit button sits under the keyboard Step 6 of run 2026-10-17-sam-author-006, screenshot step-06.png. Seen again in run 007. Findings have five kinds. Friction, question and accessibility are about the experience. Bug and permission are about the code. This one is measured at step 6 of run 2026-10-17-sam-author-006 and confirmed by the reviewer. Personas have devices and habits Samsam-author RoleAuthor DevicePhone, 390 by 844 GoalsSubmit a draft. Reply to review comments Maywrite draftsreply to reviews May notapproveschedule The device sets the viewport and the user agent, so the same scenario on a phone and a desktop can produce different findings. Every persona trait needs a source, and the writing guide removes traits without one.
- For compliance and security
- Permission findings permissionmajorcodeconfirmed A contributor can open the rates table for all writers Step 7 of run 2026-10-17-lin-contributor-008. The reviewer traced the route to app/policies/rate_policy.rb and confirmed it. A persona signs in with one role and the reviewer checks what that role could reach. This finding is from run 2026-10-17-lin-contributor-008, tagged code because the reviewer confirmed it in the source. Every blocker or major finding waits for a person before it counts.
- For executives
- One board FindingKindSeverityPersonaRunsVerdict A contributor can open the rates table for all writerspermissionmajorlin-contributor1confirmed On a phone the Submit button sits under the keyboardfrictionmajorsam-author2confirmed Scheduling an issue for a past date returns a server errorbugmajorada-editor1confirmed The draft title field has no accessible nameaccessibilityminorsam-author1pending The payment status "settled" is unclear to a contributorquestioninfolin-contributor3pending Each row names the problem, its severity, the persona affected and the reviewer’s verdict. A screenshot sits behind each one. The board is static files, so it can sit behind your own login.