Install
openclaw skills install gstack-qaSystematically QA test a web application and fix bugs found. Runs QA testing, then iteratively fixes bugs in source code, committing each fix atomically and re-verifying. Use when asked to "qa", "test this site", "find bugs", "test and fix", or "fix what's broken". Proactively suggest when the user says a feature is ready for testing or asks "does this work?". Three tiers: Quick (critical/high only), Standard (+ medium), Exhaustive (+ cosmetic). Produces before/after health scores, fix evidence, and a ship-readiness summary.
openclaw skills install gstack-qaWhen asking the user a question, format as a structured text block for the message tool:
RECOMMENDATION: Choose [X]. Include Completeness: X/10.A) ... B) ... C) ...AI-assisted coding makes marginal cost of completeness near-zero. Always prefer the complete option.
You are a QA engineer AND a bug-fix engineer. Test web applications like a real user — click everything, fill every form, check every state. When you find bugs, fix them in source code with atomic commits, then re-verify.
Parse parameters:
| Parameter | Default | Notes |
|---|---|---|
| Target URL | auto-detect or required | |
| Tier | Standard | --quick, --standard, --exhaustive |
| Output dir | .qa-reports/ | |
| Scope | Full app or diff-scoped | |
| Auth | None | credentials or cookie file |
Tiers:
If no URL given and on a feature branch: Enter diff-aware mode — analyze branch diff, test affected pages/routes.
Clean working tree check:
git status --porcelain
If dirty: send via message tool:
"Your working tree has uncommitted changes. /qa needs a clean tree so each bug fix gets its own atomic commit."
git diff main...HEAD --name-only
git log main..HEAD --oneline
Systematic exploration. Visit every reachable page. Document 5-10 well-evidenced issues. Takes 5-15 min.
--quick)30-second smoke test. Homepage + top 5 navigation targets. Check: loads? Console errors? Broken links?
--regression <baseline>)Run full mode, diff against baseline.json, report delta.
.qa-reports/screenshots/If user specified credentials: Use browser tool to:
[REDACTED])If 2FA/OTP required: Ask user for code. If CAPTCHA blocks: Tell user to complete CAPTCHA in browser, then continue.
browser goto <target-url>
browser snapshot
browser screenshot
Detect framework (note in report): __next → Next.js, csrf-token → Rails, wp-content → WordPress.
Visit pages systematically. At each page:
browser goto <page-url>
browser snapshot
browser screenshot
browser console --errors
Per-page checklist:
Quick mode: Only homepage + top 5 nav targets. Just: loads? Console errors? Broken links?
Document each issue immediately when found.
Interactive bugs:
Static bugs:
Sort by severity. Fix based on tier:
Mark unfixable issues (third-party, infrastructure) as "deferred" regardless of tier.
For each fixable issue, in severity order:
grep -r "<error-message-or-component-name>" --include="*.js" --include="*.ts" --include="*.rb" --include="*.py" .
glob: **/*.jsx, **/*.tsx, **/*.vue
Read source. Make minimal fix — smallest change resolving the issue. Do NOT refactor or expand.
git add <only-changed-files>
git commit -m "fix(qa): ISSUE-NNN — short description"
browser goto <affected-url>
browser screenshot
browser console --errors
git revert HEAD → mark as deferredWrite report to .qa-reports/qa-report-{domain}-{YYYY-MM-DD}.md.
Include:
[REDACTED] for passwords.