Project-specific QA guidance for the QA agent.
- Start with
make dev PORT=<free-port> DB_PATH=/tmp/hyperneo-qa-<task-id>.db - DB path must use the task ID naming pattern (e.g. task 466 →
/tmp/hyperneo-qa-466.db) - Always use a fresh DB for QA — never point at the daemon's primary DB
- Do NOT kill a dev server you didn't start yourself
- If a server is already running on your target port, pick a different port
- Shut down your server when QA is complete
Before deciding whether to browser-test, classify the PR's ui_changed status using these rules:
Changed files matching these patterns always trigger browser testing:
packages/web/**packages/ui/***.css,*.html
Changes to these backend modules also require browser testing because they feed data rendered in the UI:
packages/daemon/src/lib/agent/context-fetcher.ts— context window display (token counts, window size)packages/daemon/src/lib/providers/**— provider config, model metadata, provider badges, model picker entriespackages/shared/src/models.ts— ModelInfo type changes that affect model list displaypackages/daemon/src/lib/session/**— session metadata shown in UI (status indicators, labels)packages/daemon/src/lib/rpc-handlers/**— RPC responses consumed by frontend components
If ANY changed file affects data that ends up rendered in the browser — token counts, context windows, model names, provider status, session labels, error messages visible to users — classify ui_changed: true and start the dev server.
Only skip browser testing when changes are purely internal backend logic (database schema, internal utilities, build config) with zero path to user-visible UI rendering.
When in doubt, browser test. The cost of testing is 2 minutes; the cost of skipping is a broken UI reaching users.
- Use the Playwright skill (
/playwright) to launch a real browser and test UI changes or new features interactively - Navigate to the running dev server and exercise the changed UI flow as a real user would
- Look for visual bugs, broken layouts, unfriendly UX, missing loading states, error handling gaps
- Test golden path, edge cases (empty states, long text, network errors), and nearby-regression checks
- Take screenshots to document what was tested
- For API-only changes, use
curlor shell scripts against the running dev server - Test request/response contracts, error codes, edge cases
- No need to start a browser for pure backend changes
- Record all findings in QA result artifact with
pr_url,ui_changed,dev_server_started,browser_validationfields - When QA instruction files change, review them as process-affecting code and verify the policy changes preserve required validation rigor