skills/qe/agent-browser/SKILL.md
Browser automation skill with priority-ordered CLI discovery. Detects the best available browser automation tool in the system PATH and provides usage patterns for Playwright, Puppeteer, Cypress, and Selenium WebDriver. Use when: - Taking screenshots or extracting page content - Automating web forms and UI interactions - Accessibility audits - Web scraping for AI agents - Testing web applications - End-to-end test execution
npx skillsauth add mikeparcewski/wicked-garden agent-browserInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detects and uses the best available browser automation CLI in your environment.
Before executing browser automation, detect which tool is available:
# Priority order: playwright > puppeteer > cypress > selenium-webdriver
for tool in playwright puppeteer cypress selenium-webdriver; do
if command -v "$tool" > /dev/null 2>&1; then
echo "Using: $tool"
break
fi
# Check via npx for Node-based tools
if command -v npx > /dev/null 2>&1; then
if npx "$tool" --version > /dev/null 2>&1; then
echo "Using: npx $tool"
break
fi
fi
done
Stake level: Medium — inform the user which tool was selected.
If none found: Recommend Playwright installation (see below).
Pattern: This follows the integration-discovery CLI detection pattern. See integration-discovery refs/cli-detection.md for the full decision policy.
| Priority | Tool | Why | |----------|------|-----| | 1 | Playwright | Best AI-agent support, cross-browser, built-in waiting | | 2 | Puppeteer | Mature API, Chrome-focused, wide adoption | | 3 | Cypress | Test-focused, good DX, component testing | | 4 | Selenium WebDriver | Legacy support, multi-language |
# Playwright (recommended)
npm i -D playwright
npx playwright install
# Or with uv (Python)
uv add playwright
python -m playwright install
| Scenario | Playwright | Puppeteer | Cypress |
|----------|------------|-----------|---------|
| Run tests | npx playwright test | node script | npx cypress run |
| Open UI | npx playwright test --ui | - | npx cypress open |
| Record test | npx playwright codegen URL | - | - |
| Screenshot | page.screenshot() | page.screenshot() | cy.screenshot() |
| Navigate | page.goto(URL) | page.goto(URL) | cy.visit(URL) |
| Click | page.click(sel) | page.click(sel) | cy.get(sel).click() |
| Fill input | page.fill(sel, val) | page.type(sel, val) | cy.get(sel).type(val) |
| Wait | page.waitForSelector() | page.waitForSelector() | built-in |
# Playwright
npx playwright screenshot --browser chromium https://example.com out.png
# Playwright
npx playwright test
# Cypress
npx cypress run
# Puppeteer (node script)
node tests/puppeteer.js
npx playwright codegen https://example.com
# Opens browser + code recorder, paste generated test into your test file
# Playwright + axe-core
npx playwright test --grep @a11y
# agent-browser CLI (legacy)
agent-browser open https://example.com
agent-browser a11y
If agent-browser is installed (older projects), it provides a simpler command interface:
agent-browser open https://example.com
agent-browser screenshot --output page.png
agent-browser snapshot # accessibility tree + content
agent-browser click "button.submit"
agent-browser fill "input[name=email]" "[email protected]"
agent-browser a11y # accessibility violations
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".