For QA leads
Exploratory testing by role on every pull request, with no scripts to maintain.
One persona, one scenario, one preview
- 1click Submit
- 2select Title
- 3select Comment
- 4click Approve
- 5click Schedule
- 6visit /draftsfinding
- 7type Comment
- 8click Submit
- 11finish
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.
Evidence or nothing
A second model reads each claim and looks for a step in the run record that supports it. A claim with no screenshot, log line or code reference is dropped. Blockers and major findings wait for a person to confirm them.
Same problem, one row
| Finding | Kind | Severity | Persona | Runs | Verdict |
|---|---|---|---|---|---|
| A contributor can open the rates table for all writers | permission | major | lin-contributor | 1 | confirmed |
| On a phone the Submit button sits under the keyboard | friction | major | sam-author | 2 | confirmed |
| Scheduling an issue for a past date returns a server error | bug | major | ada-editor | 1 | confirmed |
| The draft title field has no accessible name | accessibility | minor | sam-author | 1 | pending |
| The payment status "settled" is unclear to a contributor | question | info | lin-contributor | 3 | pending |
Every finding has a stable ID, so the same problem in three runs is one row on the board. Nothing is filed for you. You decide which rows become tickets.
Sources
The run contract is the run record and the evidence rule is in the architecture, both sourced. The run above is a synthetic example in examples/runs/, so its figures are measured from that file.