> For the complete documentation index, see [llms.txt](https://docs.gooddollar.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/qa-role.md).

# QA Role

QA happens after the Human Reviewer approves a PR. Your job is to test the actual behavior of the changes in a real environment — catching what code review cannot. Runtime issues, edge cases, UI on real devices, and flows that break under real conditions.

***

### The QA Process

1. Claim a `GoodBounties - QA` issue or get assigned one from the pool
2. Check out the branch locally or use the preview environment linked in the PR
3. Test against every criterion listed in the issue — not just the happy path
4. Document what you tested, what passed, and what failed
5. Submit your QA report as a comment on the PR (use the QA report format below)
6. If bugs are found, file separate structured bug reports on the PR
7. Tag the maintainer team (`goodbuilders-maintainers`) when your report is complete

> 🚫 **Not acceptable:** Vague claims with no steps. Non-reproducible reports. AI-generated content not verified against actual behavior.

***

### QA Report Format

Post your report as a comment on the PR using this structure:

* **QA Report**\
  Env: \[Browser / OS / Wallet / Network]\
  Branch: \[name or commit]
*

```
**Tests**
```

```
| Scenario | Expected | Actual | ✅/❌ |
| -------- | -------- | ------ | --- |
|          |          |        |     |
```

* **Bugs**: \[# / None]
* **Verdict**: Pass / Fail / Minor issues
* **Evidence**: \[links]

***

### Filing a Bug Report

File each bug as a **separate comment** on the PR. Use this format:

**✅ Good bug report:**

\`Severity: Blocker Summary: Staking flow fails silently when wallet has insufficient G$ balance

Environment: Chrome 123 / MacOS 14.4 / MetaMask 11.9 / Fuse network

Steps to reproduce:

1. Connect wallet with 0 G$ balance
2. Navigate to the Stake tab
3. Enter any amount and click Confirm

Expected: Error message — insufficient balance Actual: Modal closes, no error shown, no transaction sent

Evidence: \[screen recording link] Related to this PR? Yes — balance check removed on line 89 of StakeModal.tsx\`

**❌ Weak bug report (not acceptable):**

`"The staking thing doesn't seem to work on my end"`

***

### Bug Severity

| Severity    | Definition                                                                       | Examples                                                                                    |
| ----------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **Blocker** | Feature broken, data loss, security issue, or breaks an existing working feature | Transaction fails silently, funds sent to wrong address, previously working flow now broken |
| **Major**   | Feature works but behaves incorrectly under normal usage                         | Wrong amount shown, confirmation missing, edge case affecting many users                    |
| **Minor**   | Small cosmetic or UX issue                                                       | Typo, misaligned element, brief flicker                                                     |

When unsure, go one level higher — maintainers can downgrade. Maintainers may cap bug bonuses per PR; if a cap applies it will be stated in the PR announcement.

***

### What Counts as an Accepted Bug

A bug is accepted when it is:

* **Reproducible** using your documented steps
* **In scope** — directly caused by changes in this PR
* **Not pre-existing** — not a known issue before this PR

Pre-existing bugs should be filed as a new GitHub issue — they may become a separate bounty.

***
