Operator manual

The QA loop in practice: what runs, how a finding becomes an item, and how a defect is closed.

When QA runs

A pass is a real navigation of the app with the agent choosing each action from what it sees. The deterministic gate (readiness) runs over the same pages for signals, language, accessibility, mobile and content.

Filing an item

An item exists only with its proof (run + steps + screenshots by hash). Before filing, check the absence proof (no spec covers the symptom) and the dedupe (no similar item for the same app).

Fixing

The owner of the app fixes it citing the item id and the commit. A fix without a commit is rejected, and the fix must leave a permanent regression spec.

Closing

An independent model (different family from the discoverer and the fixer) re-walks the evidence and accepts or returns the item. Only an accepted verdict closes it.

Commercial approval

pnpm readiness -- <base> <paths> <app> [claims-registry] prints APPROVED or BLOCKED and writes qa/approvals/<app>.json. HIGH findings block; MEDIUM ones warn.