Use when asked to QA an app end to end, run a full-path / 전체 경로 / 전수 QA, capture screenshots of every screen, or verify all user flows (signup, login, every feature) of a locally runnable web, iOS, Android, API, or monorepo project. Triggers on "전수 QA", "모든 화면 캡쳐", "직접 써보고 버그 찾아줘", "full QA pass".
Installs into .claude/skills of the current project.
Are you the author of Bugsweep?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/testbeagle-bugsweep)
---
name: bugsweep
description: Use when asked to QA an app end to end, run a full-path / 전체 경로 / 전수 QA, capture screenshots of every screen, or verify all user flows (signup, login, every feature) of a locally runnable web, iOS, Android, API, or monorepo project. Triggers on "전수 QA", "모든 화면 캡쳐", "직접 써보고 버그 찾아줘", "full QA pass".
---
# bugsweep
Plan-gated, full-path functional QA: run the app locally, walk every user path from signup/login through every feature, capture each screen, exercise the flows, and report with evidence. Never claims a pass it didn't verify.
## Phase 0 — Discover (reuse preflight)
Run `../preflight/SKILL.md` (or reuse its saved report). Get: targets, run commands, readiness method, seed/review tooling, output location, drivers. If a target isn't locally testable, say so and don't fake it.
## Phase 1 — Route map + approval gate (MANDATORY — stop here)
Build the full route map: for every path from signup/login onward — **경로 + 상태** (logged-out/in, empty/populated), **변형** (dark mode, locales), **드라이버** per route (`../beagle-shared/drivers-web.md` / `../beagle-shared/drivers-mobile.md`), and **검증 불가 예정** + 이유 (e.g. simctl can't tap; no interactive web driver → capture-only). Before the gate, build the inventory from **declared** sources only (router config, OpenAPI, nav, source) — don't launch the app to discover routes. In Phase 3, reconcile with what you actually observe and report extra routes as additions. Give each row a scenario id, the role/precondition, the action, and the **expected** outcome you will check against; a screen that merely rendered is covered for *capture*, not for *behavior*, so keep those separate and list what you deliberately exclude. Then present it and stop per the shared gate in **`../beagle-shared/approval-gate.md`** (if that file is missing, still stop and wait for the user's explicit approval) — nothing launches, seeds, or captures until the user approves.
## Phase 2 — Launch
Start services with the discovered commands. Confirm readiness by **evidence** (poll the health endpoint; grep the build log for the success marker) — never by exit code alone. Seed only if the approved plan names it.
## Phase 3 — Capture & QA every route
- Static screens: prefer the repo's native capture scripts / review-mode deep links; else drive the real UI.
- Flows: actually perform signup, login, navigation, CRUD — **where the driver supports interaction**. With capture-only headless Chrome (no agent-browser, no browser MCP, no repo E2E tool), you get screenshots but not driven flows: put those flows in 검증 불가.
- Web with an interactive driver: after **every** route check console, page errors, and network (`agent-browser console` / `errors` / `network requests`, or the MCP's `list_console_messages` / `list_network_requests`) — each entry is an evidence candidate, not automatically a finding: report only deviations from the expected result for that step, correlate to the triggering action, and deduplicate. With capture-only headless Chrome, console/network aren't captured — record that as 검증 불가 unless the repo's own tooling provides them.
- API targets (no UI): don't screenshot — hit each endpoint (curl/httpie), check status, schema, and error handling; report coverage as an endpoint table.
- Capture every screen × state × variant in the approved map (screenshots, and video for flows where useful).
## Phase 4 — Report
Write per `../beagle-shared/report-base.md` (Korean default, anti-slop rules enforced). Finding fields: the common block plus, per finding, the exact reproduction and the console/network/screenshot evidence. Trace each to its cause: failing request → route registration (grep the path) → handler; console error → stack trace → source map → `file:line`. Everything you couldn't exercise goes in 검증 불가.
## Phase 5 — Offer a static runner
Offer to freeze the capture flow into a repo-native `.sh` (via `../beagle-shared/emit-runner.md`, the `scriptify` mechanism) so future runs need no agent. Don't auto-commit — offer it.
## Hard rules
- Android: launch with `am start -n`, **never `adb monkey`** (it clears the rotation lock). Prefer a clean install (`adb uninstall` then `adb install`) for clean-state QA — the risk is stale app **data**, not a stale build — and use `install -r` only for an upgrade / data-retention case; verify the installed build identity, and erase data only within the approved reset scope (see `../beagle-shared/drivers-mobile.md`).
- iOS: a build wrapper's exit 0 is meaningless — confirm `BUILD SUCCEEDED` in the log.
- Any tap/flow/state you can't verify goes in 검증 불가 with the reason. Never silently skip, never fake a pass.