Install
$ agentstack add skill-liatrio-labs-ai-prompts-browser-qa ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Browser QA
Overview
Use this skill for a focused, evidence-producing browser QA pass against a public URL, local page, or running web app. Browser automation drives the page; this skill defines which checks to run, what counts as evidence, how to classify results, where to store report data, and how to launch the local report viewer.
Keep the pass demo-sized. This is for quick confidence, reviewer proof, and actionable defect reports, not for full accessibility certification, cross-browser coverage, or CI replacement.
When to Use
Use this skill when the user asks you to:
- verify a page, local HTML file, UI change, or critical browser path
- check console errors, failed requests, broken images, keyboard navigation, or obvious layout/readability issues
- capture evidence for a browser-visible defect
- produce structured findings JSON and a local HTML report link
Do not use this skill for:
- load testing or performance benchmarking
- broad cross-browser/device certification
- full WCAG compliance audits
- replacing unit, integration, or end-to-end tests in CI
Composition Boundary
Load and use the agent-browser skill for browser mechanics before starting the QA pass. Confirm the browser automation path is available enough to navigate, inspect console/network state, and capture screenshots or snapshots.
This skill owns the QA judgment:
- which checks to run
- how each check is interpreted
- status classification:
pass,warn,fail, orunknown - findings JSON contract
- temp-folder report layout
- local report viewer startup and final link
Agent Browser Observability and Cleanup
For demos or multi-agent work, start the agent-browser dashboard before the QA pass so the user can watch what browser sessions are doing in the background:
agent-browser dashboard start
The dashboard defaults to http://localhost:4848 and shows live browser viewports plus command activity for all active sessions. Use it when the user wants to observe agent browser behavior, during webinar demos, or when multiple agents may be using browser automation at the same time.
Prefer a named session for each QA pass so cleanup is precise and visible in the dashboard:
agent-browser --session browser-qa- open
Clean up browser sessions before finishing. Close the named session when possible:
agent-browser --session browser-qa- close
If you are unsure which session you created, list active sessions and close only the ones from this task:
agent-browser session list
agent-browser --session close
Use agent-browser close --all only when you are confident no unrelated browser automation should remain open. If you started the dashboard only for the current task and the user no longer needs it, stop it too:
agent-browser dashboard stop
Agent Browser Console and Network Capture
Do not rely on late JavaScript monkey-patching or visual error-overlay inspection for the console check. agent-browser has built-in buffers for console messages, uncaught page errors, and network requests. Clear those buffers before opening the target, then read them after the page load and critical path.
Use this sequence for every QA run:
SESSION=browser-qa-
TARGET_URL=https://example.com
agent-browser --session "$SESSION" open about:blank
agent-browser --session "$SESSION" console --clear
agent-browser --session "$SESSION" errors --clear
agent-browser --session "$SESSION" network requests --clear
agent-browser --session "$SESSION" open "$TARGET_URL"
agent-browser --session "$SESSION" wait --load networkidle
# Exercise the critical path here, then collect evidence.
agent-browser --session "$SESSION" errors --json
agent-browser --session "$SESSION" console --json
agent-browser --session "$SESSION" network requests --json
Classify console/network checks from those command outputs:
fail: uncaught JavaScript exceptions, page errors, or target-resource failures that break required behavior.warn: relevant console warnings, blocked analytics/third-party resources, or suspicious non-blocking target-resource failures.pass: buffers were inspected and no relevant errors or failed target resources were found.unknown: only when these commands fail or the browser provider cannot expose the buffers.
Keep local report-viewer noise out of the target findings. For example, ignore 127.0.0.1:10891/favicon.ico when the target is https://example.com, but include failed requests from the target origin or required app assets.
First Response Contract
Before opening the browser, identify the smallest useful QA target:
- Target: URL, local file, route, or app/page name.
- Goal: what the user wants verified.
- Critical path: 1-3 actions that matter most.
- Evidence: screenshot, console/network excerpts, keyboard notes, or report only.
If the target is missing and cannot be inferred, ask one question. Otherwise proceed with the obvious target and state any assumption in the final report.
Report Storage Contract
All browser-qa runs live under one system temp folder:
/tmp/browser-qa-reports/
20260528-154216-example-com/
findings.json
screenshot-home.png
screenshot-focus.png
Use the platform temp directory, not the repository, for run outputs:
python - ` when running browser commands.
- Clear `agent-browser` console, page-error, and network-request buffers before opening the target so load-time errors are captured from the start.
- Start or verify the local app if the target is local.
- Navigate directly to the URL, file, or route.
- Use a webinar-friendly browser-shaped viewport when tooling allows it, preferably taller than 720px such as 1366x900 or 1440x1080. Avoid 1280x720 unless the user specifically wants a slide-shaped capture.
- Record target URL/file, viewport if known, and any seeded test data.
### 2. Run the critical path first
Exercise the main flow before broad checks. For each step:
- state the intended behavior
- perform the browser action
- observe visible result
- check browser console/network output when available
- capture screenshot evidence for failures, warnings, or important visual states
- after the path, collect `agent-browser errors --json`, `agent-browser console --json`, and `agent-browser network requests --json` before writing findings.
### 3. Run the compact check set
Use `references/checks.md` for check definitions. Keep the default pass to:
1. Console errors and failed resource requests.
2. Broken images/assets.
3. Keyboard/focus smoke test for primary nav or CTA.
4. 16:9 viewport readability: clipping, overflow, unreadable hero/main content.
5. Optional accessibility/content smoke checks: missing obvious heading, missing image alt text, or no main content.
Preserve `unknown` when automation cannot prove a result.
### 4. Write and validate findings JSON
Before rendering or summarizing, produce `findings.json` matching `references/evidence-contract.md` in the run subfolder under `/tmp/browser-qa-reports`.
Minimum rule: every non-`pass` check must include evidence. Evidence can be console text, network URL/status, screenshot path, DOM/snapshot detail, or a manual note.
Validate the JSON before reporting:
```bash
uv run skills/browser-qa/scripts/validate-findings.py /tmp/browser-qa-reports//findings.json
Fix the JSON until validation passes.
5. Start or reuse the report server
The report viewer is static HTML served by a tiny Python server in this skill. It lists every findings.json under /tmp/browser-qa-reports and lets the user switch runs from a dropdown.
Check whether the server is already running before starting another one:
python -
Also include the run folder path so artifacts are easy to inspect locally.
7. Clean up agent-browser sessions
Before finalizing, close the task-scoped browser session so the user is not left with orphaned agent-browser sessions:
agent-browser --session browser-qa- close
Then verify there are no sessions from this QA run still active:
agent-browser session list
If you started the dashboard only for this run and the user does not need to keep watching background browser activity, stop it with agent-browser dashboard stop. Do not stop a dashboard the user explicitly wants to keep open for a demo.
Output Rules
- Lead with
pass,warn,fail, orunknown. - Say exactly what was checked; do not claim full coverage.
- Include URL/route/file and the action sequence.
- Include the validated
findings.jsonpath. - Include the local report URL with
?report=. - Quote only relevant console/network lines.
- Do not include secrets, cookies, tokens, or private page data.
- Separate blocking defects from warnings, observations, and unchecked areas.
Common Pitfalls
- Testing too much. Keep the pass narrow; propose follow-up paths instead of expanding silently.
- Turning taste into defects. Mark subjective visual notes as observations unless they violate a requirement.
- Writing JSON in the repo root. The demo viewer only discovers runs under the system temp folder's
browser-qa-reportsdirectory. - Restarting the report server unnecessarily. Probe
/api/reports; only start the server if the probe fails. - Using absolute artifact paths in JSON. Store screenshots in the run folder and reference them by filename or run-relative path.
- Marking console capture unknown without trying built-ins. Use
agent-browser console,agent-browser errors, andagent-browser network requests; only mark unknown if those commands fail or the provider lacks the buffers. - Clearing buffers after the page loaded. Clear on
about:blankbefore target navigation so hydration/load-time errors are not missed. - Losing unknowns. Use
unknownwhen browser tooling cannot inspect a surface. - Overstating confidence. A focused browser pass is evidence, not proof of complete quality.
- Leaving orphaned browser sessions. Use a named session and close it before finalizing. Run
agent-browser session listto verify cleanup.
Verification Checklist
Before finishing, confirm:
- [ ] Target URL, file, or route loaded.
- [ ]
agent-browserwas loaded or a browser tooling fallback was explicitly noted. - [ ]
agent-browserconsole, page-error, and network-request buffers were cleared before target navigation. - [ ] Critical path exercised.
- [ ] Compact check set completed or marked
unknown. - [ ]
agent-browser errors --json,agent-browser console --json, andagent-browser network requests --jsonoutputs were checked after the critical path. - [ ] Findings JSON is saved at
/tmp/browser-qa-reports//findings.json. - [ ] Findings JSON validates with
validate-findings.py. - [ ] Report server is running or known to already be running on port 10891.
- [ ] Final response includes
http://127.0.0.1:10891/?report=. - [ ] Final report distinguishes checked items, defects, warnings, and unchecked areas.
- [ ] Task-scoped agent-browser session is closed, or any intentionally retained session is called out.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: liatrio-labs
- Source: liatrio-labs/ai-prompts
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.