Dummy Run
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.