name: qa description: Run the E2E QA test suite against the live application using Playwright MCP and nREPL. Use when testing the app end-to-end. argument-hint: "[script-number | 'all' | 'next' | 'status']"
E2E QA Runner
Execute the structured QA test scripts in qa/scripts/ against the live application.
Current Progress
!cat qa/scripts/progress.md
How It Works
The QA suite is split into individually-executable test scripts in qa/scripts/. Each script:
- Targets a specific feature area (e.g., "Auth Flow", "Core Pages")
- Contains step-by-step TEST items tagged as READ, WRITE, NAVIGATE, or GUARD
- Requires mandatory SCREENSHOT proof at state transitions
- Tracks pass/fail per item
Invocation
/qaor/qa next-- Run the next incomplete script (first--status in progress.md)/qa all-- Run all scripts from the beginning (Session 1 through end)/qa 03or/qa 3-- Run a specific script by number (e.g.,03-feature.md)/qa status-- Show current progress.md without running anything/qa 03-08-- Run a range of scripts sequentially
Execution Protocol
Before running any script, read and internalize the rules in qa/scripts/EXECUTION-RULES.md. These are non-negotiable:
- Execute EVERY test item in order. Do NOT skip. Do NOT reorder.
- Do NOT move to the next TEST until the current TEST is fully verified.
- "Page loads" is NOT "feature works." If a test says WRITE, perform the write.
- Take a SCREENSHOT at every SCREENSHOT marker. These are mandatory proof-of-work.
- If a test FAILS, log the failure and continue. Do NOT silently skip. Do NOT fix bugs mid-QA.
- When a script completes, update
qa/scripts/progress.mdwith pass/fail/skip counts. - If you cannot finish a script, STOP at the nearest
---break. Update progress.md as PARTIAL. Do NOT rush remaining items.
Steps
1. Determine which script(s) to run
Parse $ARGUMENTS:
nextor empty: Readqa/scripts/progress.md, find the first row with Status--, that's the script to run.all: Start from script 00.- A number (e.g.,
3,03,15): Run that specific script. Zero-pad to 2 digits to find the file. - A range (e.g.,
03-08): Run scripts 03 through 08 sequentially. status: Print progress.md and stop.
2. Prerequisites check (Script 00)
If running script 00, or if this is the first script in a session:
- Connect to nREPL via
/nrepl-connect - Check if the system is running:
(some? repl-stuff/service) - If not running, do a clean start:
rm -rf storage/cache- Eval the start form from
development/src/repl_stuff.clj
- Seed:
(require 'e2e-seed :reload) (e2e-seed/seed! repl-stuff/context) - Verify seed output mentions expected counts
If the system is already running and seeded (script 00 shows completed in progress.md), skip to step 3.
3. Execute the script
- Read the script file:
qa/scripts/{NN}-{name}.md - Read the execution rules:
qa/scripts/EXECUTION-RULES.md - Log in as the role specified in the script header
- Execute each TEST item sequentially:
- For NAVIGATE: Use
browser_navigateorbrowser_click, verify URL/page title - For READ: Use
browser_snapshotand verify expected elements/text - For WRITE: Perform the action (fill form, click button), then verify the result
- For GUARD: Attempt the blocked action, verify error/redirect
- At SCREENSHOT markers: Use
browser_take_screenshotwith the specified filename
- For NAVIGATE: Use
- Track results: count passes, failures, and skips
4. Record results
After completing the script, append the results section to the script file:
---
## Results
**Date**: [today's date]
**Status**: PASS | PARTIAL | FAIL
**Pass**: X / Y
**Failures**:
- TEST X.Y: [description]
**Notes**: [anything relevant]
Then update qa/scripts/progress.md -- change the row's Status, Pass, Fail, Skip, and Date columns.
5. Continue or stop
- If running a range or
all: proceed to the next script. - If the current script took a long time: stop and report. Do NOT rush the next script.
- Always prefer quality over quantity. One thoroughly-tested script is worth more than three skimmed scripts.
Key Tools
- Playwright MCP:
browser_navigate,browser_snapshot,browser_click,browser_type,browser_fill_form,browser_select_option,browser_take_screenshot,browser_press_key,browser_wait_for - nREPL MCP:
mcp__nrepl__eval_formfor data verification and seeding - Bash:
curlfor webhook testing,rm -rf storage/cachefor clean restart
Adding New QA Scripts
When a new feature is built, add a test script:
- Create
qa/scripts/{NN}-{feature-name}.mdfollowing the format in existing scripts - Add a row to
qa/scripts/progress.md - Add to
qa/scripts/RUN-ORDER.mdin the appropriate session - Include: TEST items with (READ/WRITE/NAVIGATE/GUARD) tags, SCREENSHOT markers, clear VERIFY criteria
TDD Red-Green-Refactor
Testing
Skill that guides Claude through the complete TDD cycle.
Web Accessibility Audit
Testing
Performs a comprehensive web accessibility audit following WCAG standards.
UAT Test Case Generator
Testing
Generates structured and comprehensive user acceptance test cases.