Skip to content
Development
Command

/qa-sweep

Full platform QA sweep — auto-discovers every page, tests every UI element via browser automation, creates GitHub issues for all findings

BOOST
From plugin
forgedock
11980 skills80 commands
Install
> /plugin marketplace add RapierCraftStudios/ForgeDock
> /plugin install forgedock@forgedock

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/qa-sweep

Context preview

What this command does when you run it.

Full platform QA sweep — auto-discovers every page, tests every UI element via browser automation, creates GitHub issues for all findings

Command definition

qa-sweep.md
description: Full platform QA sweep — auto-discovers every page, tests every UI element via browser automation, creates GitHub issues for all findings
argument-hint: "[all | dashboard | marketing | page <route> | journey | visual | functional | a11y]"
install: extras

<!-- SPDX-FileCopyrightText: Copyright (c) RapierCraft Studios --> <!-- SPDX-License-Identifier: AGPL-3.0-or-later -->

/qa-sweep — Platform-Wide QA Testing

> **Skill names**: `{FORGE_SKILL_PREFIX}` is `forgedock:` (plugin install) or empty (`install.sh`), resolved once per run by `commands/work-on.md` § Skill Name Resolution. If the skill is not found under either name, STOP and report "skill not found" — never run the phase inline.

**Input**: $ARGUMENTS

You are the QA orchestrator. Auto-discover every page across the platform (dashboard, marketing, blog, auth, docs, pricing), then systematically test every UI element, interaction, workflow, and state transition using browser automation. Create GitHub issues for every finding.

**Agent model policy**: `model: "{DEFAULT_MODEL}"` — resolved from forge.yaml `agents.default_model`, else "sonnet" (standard tier). Fallback: `model: "opus"` if rate-limited. User can override with `--model <name>`. Feature gate: pass `effort` in Task/Skill spawns only on Claude Code >= 2.1.154. **NEVER use plan mode (EnterPlanMode).**

<!-- FORGE:SPEC_LOADED — qa-sweep.md loaded and active. Agent is bound by this spec. -->

---

Playwright MCP Prerequisite (MANDATORY — check before proceeding)

Playwright MCP is a **guaranteed ForgeDock dependency** for all browser automation commands. Before running any qa-sweep phase, verify it is available:

**Check**: Confirm `mcp__playwright__*` tools are available in your tool context (e.g., `mcp__playwright__browser_navigate`, `mcp__playwright__browser_snapshot`).

**If Playwright MCP tools are NOT available**: STOP immediately. Do not attempt to run qa-sweep — all browser automation steps will fail silently.

**Fix**: 1. Register Playwright MCP: `claude mcp add playwright npx @playwright/mcp@latest` 2. Restart Claude Code to reload MCP servers 3. Verify with: `npx forgedock doctor` (Check 9 confirms registration)

See README.md Requirements section for full setup instructions.

---

Playwright MCP Prerequisite (MANDATORY — check before proceeding)

Playwright MCP is a **guaranteed ForgeDock dependency** for all browser automation commands. Before running any qa-sweep phase, verify it is available:

**Check**: Confirm `mcp__playwright__*` tools are available in your tool context (e.g., `mcp__playwright__browser_navigate`, `mcp__playwright__browser_snapshot`).

**If Playwright MCP tools are NOT available**: STOP immediately. Do not attempt to run qa-sweep — all browser automation steps will fail silently.

**Fix**: 1. Register Playwright MCP: `claude mcp add playwright npx @playwright/mcp@latest` 2. Restart Claude Code to reload MCP servers 3. Verify with: `npx forgedock doctor` (Check 9 confirms registration)

See README.md Requirements section for full setup instructions.

---

Browser Tool Reference

All browser automation uses Playwright MCP tools (`mcp__playwright__*`). Playwright MCP is a guaranteed ForgeDock dependency — see the Playwright MCP Prerequisite section above.

| Action | Tool | Key param | |--------|------|-----------| | Navigate | `browser_navigate` | `url` | | Snapshot (a11y tree + refs) | `browser_snapshot` | — | | Screenshot | `browser_take_screenshot` | — | | Click | `browser_click` | `ref` | | Type | `browser_type` | `ref`, `text`, `submit?`, `slowly?` | | Fill form | `browser_fill_form` | fields array | | Press key | `browser_press_key` | key name | | Wait | `browser_wait_for` | `text`/`textGone`/`time` | | Console | `browser_console_messages` | `level` | | Network | `browser_network_requests` | `filter`, `static:false` | | Evaluate JS | `browser_evaluate` | `function` | | Resize | `browser_resize` | `width`, `height` | | Hover | `browser_hover` | `ref` | | Select | `browser_select_option` | `ref` | | Dialog | `browser_handle_dialog` | `accept` | | Tabs | `browser_tabs` | `action` | | Back | `browser_navigate_back` | — |

**Workflow**: Always snapshot → get refs → interact using refs.

---

Testing Philosophy

Depth-first, workflow-driven: 1. Test **features** not pages — "upgrading a plan" not "billing page" 2. Verify **state mutations** — click Create, verify item appears, persists on reload 3. Test **combinations** — filter + sort + paginate together 4. Test **unhappy path harder** — invalid inputs, boundary values, double-clicks, empty states 5. Every interaction gets **before/after check** + console error check + network check

---

What to Test (per page)

Functional

  • **Buttons**: Click → verify outcome. Check loading/disabled states. Double-click test.
  • **Forms**: Happy path (fill all, submit, verify persistence on reload). Empty submit (inline errors). Partial fill. Boundary values (0, -1, 999999999). Special chars (`<script>`, SQL injection, emoji, unicode). Tab order. Paste overflow. Cancel/reset.
  • **Links**: Verify destination. Check for 404s. External → new tab.
  • **Dropdowns**: All options present. Selection persists. Searchable filtering.
  • **Modals**: Open/close (X, backdrop, Escape). Forms inside. Scroll lock. Fresh state on reopen.
  • **Tables**: Sort each column (verify data reorders). Filter (individual + combined). Pagination (page 2+, filter resets to p1). Empty results. Row actions target correct row.
  • **Search**: Valid query → relevant results. Gibberish → empty state. Clear → all return. Debounce check.
  • **Delete/Destructive**: Confirmation dialog. Cancel = no-op. Confirm = removed + persists on reload.
  • **Toggles**: On/off verify persistence on reload. Rapid toggle stress test.

Visual & Design

  • Number formatting consistency across all displays
  • Typography, spacing, colors, icons, alignment, hover/focus states
  • Truncation (ellipsis, not overflow), empty areas, card
Read more
Ships withforgedock

ForgeDock — autonomous AI dev pipeline for Claude Code. GitHub as agent memory: issue in, PR out.

Get the whole plugin

Other commands on forgedock.