@ulpi/browse

browse-qa skill

QA web and app features from tickets, URLs, or plain-language descriptions. Generates reusable browse flows for regression coverage.

Install

npx skills add https://github.com/ulpi-io/skills --skill browse-qa

Trigger

/browse-qa <feature-or-ticket-or-url> — or invoked when the user asks to:

  • QA a feature, validate a story, test a page or app flow
  • Generate reusable regression coverage
  • "QA this checkout flow", "validate LINEAR-123", "test this localhost page", "turn this manual QA into rerunnable browse flows"

Do not use for pure static code review.

What it does

A scenario-driven QA workflow that:

  1. Parses the spec — ticket, URL, acceptance criteria, or plain-language description
  2. Explodes into scenarios — golden path, edge cases, error states, empty states, mobile, accessibility
  3. Executes each scenario — uses the browse skill for low-level commands (goto, snapshot, click, fill, expect)
  4. Captures evidence — screenshots, snapshots, network entries, console errors per scenario
  5. Generates flow YAML — reusable browse flow files that replay the scenarios
  6. Produces QA report — pass/fail per scenario, evidence links, defects with reproduction steps

Non-negotiable rules (built into the skill)

  • Scenarios are explicit and written down before testing starts — no ad-hoc clicking
  • Every scenario produces evidence (screenshot or snapshot output), not just a pass/fail claim
  • Defects include exact reproduction steps, expected vs actual, and the browse command that failed
  • Generated flows use refs and real selectors — not fragile XPath or text matching

Works on all platforms

Same skill, different targets:

/browse-qa https://staging.myapp.com/checkout     # Browser
/browse-qa ios com.myapp.app login-flow           # iOS Simulator
/browse-qa android com.myapp.app settings         # Android Emulator
/browse-qa macos MyApp preferences-panel           # macOS

Commands used

Wraps the full browse surface via the browse skill — goto, snapshot, click, fill, expect, screenshot, wait, flow, record, plus platform-specific tap/swipe for mobile.

On this page