Verifier bounty
Tester files a bug on an active cycle
The entry point of the whole bounty flow. Everything downstream depends on this working: triage, verification, payouts, feature scopes — none of them have anything to chew on if testers can't file bugs.
Setup
- You're signed in as a tester account (not admin).
- At least one standard test cycle is in
activestatus for a product the tester has access to.- If none: switch to your admin account, create one via
/app/admin/test-cycles/new, kind=Standard, then sign back in as the tester.
- If none: switch to your admin account, create one via
- Have a screenshot or short note ready as the bug repro material — doesn't have to be a real bug, just realistic enough to file.
Steps
- Sign in as the tester. Land on the dashboard.
- Navigate into the active test cycle (sidebar → Active cycles → click in,
OR
/app/test-cycles/<id>). - Click File a bug (or the equivalent affordance on the cycle page).
- Fill in:
- Title — short, specific (e.g. "Submit button stuck spinning on /signup")
- Description — markdown, a few lines of repro
- Severity — pick anything except
trivialso you can confirm the suggested-payout amount shows up
- Attach the screenshot/note if the form has an attachment affordance.
- Submit.
Expected
- ✅ The form closes and you land on the new issue's detail page (or the issues list with the new bug at the top).
- ✅ The new bug shows:
status: open(ordraftif the cycle requires admin intake)- The severity you picked
reportedBy: <your tester handle>- A suggested payout amount that matches the severity ladder (trivial 100 / low 250 / medium 500 / high 1000 / critical 2000 KZT — unless the cycle has an override)
- ✅ The bug appears in:
- The cycle's All issues tab
- The cycle's My issues (or equivalent "filed by you") tab
- The admin Triage queue when viewed as admin
- ✅ No duplicate row, no console errors in the browser devtools.
Notes
- Payout amount =
suggestedAmountCentsFor(severity, cycle.metadata)— seesrc/lib/issue-payout.ts. If the cycle hasmetadata.payout_rates.rates.<severity>set, the override beats the default. - If the cycle is in
review/closed/cancelledstatus, the file-bug affordance should be hidden or disabled — that's a separate scenario (VERBO-006 covers cycle lifecycle). - The existing Playwright spec (file-issue.spec.ts) covers the happy path; this catalog entry also pins down the cross-tab visibility + suggested-amount rules that the spec doesn't assert today.
Verification log
(empty — first verification will be appended here)