qa-sweep — Claude Code skill: what it does, how to install
Runs a multi-lens agent QA sweep across a running product, verifies findings, and logs backlog tickets with run records.
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a claude-codeWhat qa-sweep does
The skill dispatches testing tasks across five distinct lenses: user flows, edge states, data honesty, API contracts, and UX critiques. Browser-based agents run concurrently using isolated Playwright MCP servers. Non-browser lenses inspect API payloads and store queries through curl.
Found issues graded P1 or P2 require manual reproduction before becoming backlog tickets. An agent report alone never marks an acceptance criterion as passed. The sweep stops immediately if the project tier is marked as a prototype. Running apps and isolated Playwright instances must be configured beforehand.
What it helps with
- Inspect running user interfaces across parallel browser lenses
- Verify API contracts and store query integrity using curl
- Convert verified reproduction steps into backlog issue tickets
- Validate specification acceptance criteria prior to project milestones
Example prompts for the agent
- Run a qa sweep on the checkout flow
- Test the UI and check API error responses after the recent changes
- Walk the flows and find inconsistencies from the client perspective
How to install qa-sweep
1Skills CLI (Vercel)
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a claude-code2Manually: put the files in place
~/.claude/skills/qa-sweep/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/qa-sweep/
1Skills CLI (Vercel)
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a codex2Manually: put the files in place
.agents/skills/qa-sweep/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a cursor2Manually: put the files in place
.cursor/skills/qa-sweep/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install awrshift/agent-memory-kit qa-sweep2Manually: put the files in place
.github/skills/qa-sweep/SKILL.md1Skills CLI (Vercel)
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a gemini-cli2Platform CLI
gemini skills install https://github.com/awrshift/agent-memory-kit --path plugins/memory-kit/skills/qa-sweepManually: put the files in place
.devin/skills/qa-sweep/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add awrshift/agent-memory-kit --skill qa-sweep -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about qa-sweep
How to install qa-sweep in Claude Code?
Install the skill by running npx skills add awrshift/agent-memory-kit --skill qa-sweep -a claude-code.
What does qa-sweep do?
It launches specialized agents to inspect a running application through five specific angles, catching regressions across UI and backend contracts.
Can qa-sweep replace unit testing suites?
No, it focuses on testing the running product from the user perspective and explicitly does not replace unit tests or acceptance walks.
Source text
SKILL.md · MIT
---
name: qa-sweep
description: >
Run a multi-lens agent QA sweep of the RUNNING product: spawn `qa` agents (one per lens —
user-flow · edge-state · honesty · contract · ux-critique), collect their structured
findings, integrator-verify the load-bearing ones, and land verified findings as backlog
tickets + a run record in the project's qa/ folder. Use whenever the user asks to QA, test, or probe the
product from the user's side — "qa sweep", "test the UI", "walk the flows", "find
inconsistencies", "check how this looks to a client" — and proactively after integrating any
large UI slice, before a milestone, or when a manual walk found one bug and siblings are
likely. Trigger even when the user names only one angle (e.g. "check the API errors") — pick
the matching lens subset. NOT for unit testing (your test suite does that) and NOT a
replacement for the integrator's own acceptance walk.
---
# QA Sweep — multi-lens agent QA of the live product
Read `projects/<name>/qa/README.md` FIRST (the protocol SSOT: environment rules · the five lens briefs ·
findings format · triage) — the lens briefs in agent prompts come verbatim from there, and the
account/mutation policy it sets is a hard rail, not advice. A project that predates this layout
may keep its protocol elsewhere — wherever its `CLAUDE.md` points, or at `docs/qa/README.md`,
`context/qa/PROTOCOL.md`, `.claude/rules/qa-sweep.md`, or in a project-local `qa-sweep` skill.
Look there before scaffolding: an existing protocol is the SSOT
wherever it lives, its run records go next to it, and a second protocol must never be created
beside it. Only when no protocol exists anywhere,
create one from the layer's protocol template (`${CLAUDE_PLUGIN_ROOT}/reference/qa-PROTOCOL-TEMPLATE.md` in
the kit repo — copy it from there if this project only adopted the layer's `.claude/` files)
and fill the placeholders before sweeping.
## Steps
1. **Preflight (integrator, by hand):** bring up the stack the protocol names (app · API ·
store) · pick the account per the protocol's policy (the demo/real account = OBSERVE-ONLY
always; the seeded sacrificial account = mutation QA only when the run brief grants it) ·
make sure nothing else is writing to the shared store during the sweep (no integration test
suites, no live jobs).
2. **Pick lenses** for this run (default: user-flow + contract in parallel, then edge-state,
then honesty + ux-critique). Browser lenses run CONCURRENTLY via the isolated Playwright MCP
servers the protocol lists (one server per concurrent browser agent — mechanism + logged-in
seed recipe in the protocol § Parallel lenses). Browser lenses: user-flow · edge-state ·
ux-critique. Non-browser: contract (curl) · honesty (curl + read-only store queries).
3. **Spawn `qa` agents** with the lens brief from the protocol § Lens briefs + the run scope.
The run scope MUST name: the governing spec (`projects/<name>/plans/YYYY-MM-DD-<slug>.md`),
the `AC-n` ids under test from that spec's Acceptance table, the project's workflow tier
(from `projects/<name>/README.md`, or the task's `Tier:` override in `BACKLOG.md`), and which
screens/flows changed recently — QA the delta first, then one broad pass. At tier
`prototype` no sweep is expected: say so and stop.
4. **Verify before ticketing (the fact-check rule):** reproduce every P1/P2 finding yourself
(the named repro steps) before it becomes a ticket. Unreproducible → back to the agent or
drop with a note. «Impressions» never become tickets directly. A «pass» on an AC counts only
when you reproduced the walked path yourself or ran the check named in that AC's «How it is
checked» cell — an agent's report alone never passes an AC.
5. **Land the results:** verified findings → backlog tickets (P1/P2) or a minors batch (P3) ·
one run record `projects/<name>/qa/qa-run-YYYYMMDD.md` (lenses run · coverage · a per-AC table
`AC | result (pass/fail/not exercised) | evidence` · findings table with an `AC` column
(`—` when the finding ties to no AC) and verified/dropped status · pointers to tickets) · a
row in the protocol's § Runs index. After landing, fill the spec's `Verified` cell for every
AC that passed — the date + `qa/qa-run-YYYYMMDD.md`.
6. **Cleanup:** stop dev servers, remove stray screenshots from the repo root, re-seed the
sacrificial account if a mutation run dirtied it.
## Rails that hold even when the protocol is silent
- **Cross-channel evidence:** an action's evidence comes from a different channel than the action
— after a click, read the network response, the DOM or the store, never «the click looked fine».
- **A clean bill is a claim:** it names the oracle it ran and the commit it ran against. A clean
bill without an oracle is recorded as «not reached», never as clean.
- **No real credentials in a QA agent's hands** — seeded storage state or a sacrificial login only;
a report can leak whatever the agent was given.
- **Coverage is a queue:** seed the next brief from the previous run's «not reached» list and name
the data archetype; a third consecutive run on the same archetype changes archetype.
- **Solve once, write it down:** a verified finding becomes a permanent regression test; a golden
path that two consecutive runs walk clean is codified as an e2e spec and dropped from later
briefs unless its surface changed — the lens explores, the spec remembers.
© awrshift · MIT · awrshift/agent-memory-kit