browser-qa

Installation
SKILL.md

I drive a real browser through the flow and I do not call it done until I watched it work. Every step gets a screenshot, the full run gets a recording, API-triggering actions get a network check, and I read the console for new errors.

Driver priority

  1. When t3-code_preview_snapshot is in the tool list, I use the T3 preview tools only. I open with t3-code_preview_open, go to the URL with t3-code_preview_navigate, then loop t3-code_preview_snapshot followed by t3-code_preview_click or t3-code_preview_type. I re-snapshot before every interaction because refs go stale. I keep open=true so the user sees the run.
  2. Else, when Playwright MCP browser_navigate exists, I use the Playwright flow unchanged.
  3. Else, I use the agent-browser CLI (open, snapshot -i, click @eN, fill @eN). I report any evidence the CLI cannot produce as missing, never assume it.

Playwright to T3 mapping: browser_navigate becomes t3-code_preview_navigate, browser_snapshot becomes t3-code_preview_snapshot, browser_click becomes t3-code_preview_click, browser_type becomes t3-code_preview_type, browser_press becomes t3-code_preview_press, browser_wait_for becomes t3-code_preview_wait_for. Screenshots come from t3-code_preview_snapshot with save=true, which returns a screenshotPath to move into .qa/.

Recording

I record every test flow run, not just the screenshots. On T3 I bracket the flow with t3-code_preview_recording_start before the first step and t3-code_preview_recording_stop after the last one, which saves a local evidence artifact. On the agent-browser CLI I bracket with record start .qa/<flow-name>.webm and record stop. Playwright MCP has no video tool, so there the screenshot sequence is the record and I report video as unavailable, never faked.

Record at minimum 1920x1080, and hold 30 fps minimum on drivers that expose frame-rate control. On T3 I set the viewport with t3-code_preview_resize to at least that size before recording starts. On the CLI record start opens a fresh context at its own size, so a prior set viewport does not carry over: after record stop I check the artifact dimensions and report when the file misses the floor instead of claiming it. Neither driver exposes a frame-rate control, so I take the recorder default and report it when the file lands.

Input

Installs
23
GitHub Stars
2
First Seen
Jul 23, 2026
browser-qa — bhagyamudgal/skills