Skip to content
cccskills
FreePublished on GitHub

qa

Test a web application using branch changes, selected pages, or the whole app as scope. Choose among three testing levels, document issues with evidence, fix them in separate commits, and verify results in a release-readiness report.

OriginalShow the original description

Systematic QA testing of a web application: diff-aware, tiered, with fix-and-verify loop

See how to install

Good for

  • Checking changed pages before opening a pull request
  • Running a quick check for major bugs before committing
  • Reviewing a release candidate for visual and functional issues
  • Fixing reported bugs and verifying each change

Files included (1)

  • SKILL.md7.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

QA: Web application testing

Systematically test a web application for bugs, then fix and verify each issue found.

Three tiers of thoroughness. Diff-aware scoping tests what actually changed.

Instructions

Step 1: Scope detection

Determine which pages and features to test.

Diff-aware mode (default): Identify affected routes from the current branch changes.

# Files changed in this branch
git diff --name-only origin/main...HEAD 2>/dev/null || git diff --name-only HEAD~5

# Identify affected routes from changed files
# e.g., changes in src/pages/dashboard/ → test /dashboard
# changes in api/payments/ → test payment flows

Full mode (/qa --full): Test the entire application, starting with critical paths.

Explicit scope (/qa /dashboard /settings): Test specified pages only.


Step 2: Tier selection

TierFlagScopeUse when
Quick--quickCritical + High severity onlyPre-commit fast check
Standard(default)+ Medium severityPre-PR review
Exhaustive--exhaustive+ Low + cosmeticRelease candidate

Step 3: Clean working tree

Before testing, ensure you can commit fixes atomically.

git status --short

If there are uncommitted changes: stash them first (git stash), or commit them. Testing on a dirty tree makes it impossible to isolate fix commits.


Step 4: Testing

For each page in scope, systematically check all categories relevant to the selected tier.

How to test

Use whatever browser tooling is available:

  • MCP browser tools (if configured): automated navigation and screenshots
  • Playwright/Puppeteer (if in the project): scripted test runs
  • Manual testing: navigate to the URL, document findings systematically

For each page, cover:

1. Load the page: does it render without errors?
2. Check console: any uncaught errors, failed requests, warnings?
3. Test primary user action: the core thing this page is for
4. Test empty state: what shows when there's no data?
5. Test error state: what happens when an action fails?
6. Test on narrow viewport: does it break below 375px?

Issue taxonomy

Visual (layout, spacing, typography, colors, responsiveness) Functional (broken interactions, missing features, wrong behavior) UX (confusing flows, missing feedback, poor error messages) Content (typos, wrong copy, placeholder text in production) Performance (slow page loads, layout shifts, unoptimized images) Console (JavaScript errors, failed network requests, deprecation warnings) Accessibility (missing alt text, keyboard traps, missing labels, contrast)

Severity levels

SeverityCriteriaExamples
CriticalFeature completely broken or data loss risk500 error, blank page, form that loses data
HighMajor feature degraded, significant UX harmWrong data shown, broken primary CTA, mobile layout broken
MediumMinor feature issue, noticeable but workaround existsVisual glitch, confusing empty state, slow load
LowCosmetic, barely noticeableMinor spacing, minor copy issue, low-severity console warning

Quick tier: Critical + High only Standard tier: Critical + High + Medium Exhaustive tier: All severities


Step 5: Document findings

Track each issue with a unique ID.

ISSUE-001
  Severity:  [Critical / High / Medium / Low]
  Category:  [Visual / Functional / UX / Content / Performance / Console / Accessibility]
  Page:      [URL or route]
  Finding:   [What is wrong, specific not vague]
  Steps:     [How to reproduce]
  Expected:  [What should happen]
  Evidence:  [Screenshot path or console output]

Step 6: Fix and verify loop

For each Critical and High issue (and Medium/Low in Standard/Exhaustive tiers):

  1. Fix the issue in source code
  2. Commit atomically: one commit per fix
git add <changed-files>
git commit -m "fix: <brief description of what was fixed>"
  1. Re-verify: navigate to the same page and confirm the issue is resolved
  2. Update the issue status to FIXED with the commit hash

Do not batch multiple fixes in one commit. Each fix must be individually revertable.


Output format

QA REPORT
════════════════════════════════════════
Branch:    [current branch]
Scope:     [pages tested]
Tier:      [Quick / Standard / Exhaustive]
Duration:  [time taken]

HEALTH SCORES
─────────────────────────────────────────
  Visual        [PASS / WARN / FAIL]  [N issues]
  Functional    [PASS / WARN / FAIL]  [N issues]
  UX            [PASS / WARN / FAIL]  [N issues]
  Content       [PASS / WARN / FAIL]  [N issues]
  Performance   [PASS / WARN / FAIL]  [N issues]
  Console       [PASS / WARN / FAIL]  [N issues]
  Accessibility [PASS / WARN / FAIL]  [N issues]

ISSUES FOUND: N (X critical, Y high, Z medium, W low)
ISSUES FIXED: N
ISSUES REMAINING: N

─────────────────────────────────────────
ISSUE-001 [FIXED | OPEN]
  Severity:  High
  Category:  Functional
  Page:      /dashboard
  Finding:   Save button does nothing when form has validation errors, no feedback shown
  Fix:       Added error toast notification (commit abc1234)

ISSUE-002 [OPEN]
  Severity:  Medium
  Category:  Visual
  Page:      /settings
  Finding:   Input fields overflow container below 375px viewport
  ...

─────────────────────────────────────────
SHIP READINESS
  Critical issues:  [0 remaining / N remaining (BLOCKER)]
  High issues:      [0 remaining / N remaining (CONCERN)]

VERDICT: [READY TO SHIP / NOT READY: address critical and high issues first]
════════════════════════════════════════

Usage

/qa                          # Standard tier, diff-aware scope
/qa --quick                  # Quick tier (critical + high only)
/qa --exhaustive             # Full coverage including cosmetic issues
/qa --full                   # Standard tier, test entire app (not just diff)
/qa /dashboard /settings     # Test specific pages
/qa https://staging.app.com  # Test a specific URL

Tips

  1. Run after every significant feature, not just before shipping
  2. Diff-aware first: test what changed before expanding scope
  3. Fix critical and high before continuing: don't pile up unfixed issues
  4. Screenshot evidence: always capture before/after for critical fixes
  5. Check mobile: most visual bugs appear at 375px width

Related commands

  • /investigate: root-cause analysis when QA finds a complex bug
  • /ship: pre-deploy checklist (run after QA passes)
  • /canary: post-deploy monitoring (run after shipping)

$ARGUMENTS

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Evaluate Claude Code agents, skills, and commands with weighted quality criteria. Get scores, readiness grades, template comparisons, and practical improvement suggestions in Markdown or JSON reports to guide reviews before release.

  • Review skills before release
  • Compare agent definitions with reference templates
  • Quickly check critical quality criteria
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

audit-codebase

FreeSummary

Assess a codebase across seven areas, including exposed credentials, security, dependencies, structure, and tests. Receive category scores, findings tied to file locations, and a prioritized improvement plan with smaller tasks that can be completed quickly.

  • Assessing the overall health of an inherited project
  • Reviewing exposed credentials and security risks
  • Identifying dependency and test coverage gaps
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

autoresearch

FreeSummary

Measure code patterns such as casts to any or disabled lint rules, then run repeated, targeted edits. Keep changes that improve the chosen metric, revert unsuccessful changes, and track results for each improvement loop.

  • Finding code patterns to prioritize for cleanup
  • Preparing measurement files for an improvement loop
  • Repeating targeted edits to reduce casts to any
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

best-of-n

FreeSummary

Generate several separate solutions, compare them against criteria fixed in advance, and verify the selected result through executable checks or an independent reviewer. Keep a proof log documenting candidates, evidence, failures, and remaining limits.

  • Comparing implementation options before choosing one
  • Verifying a solution when a wrong choice would be costly
  • Keeping evaluation evidence for delivery or audit
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

canary

FreeSummary

Monitor a live application after deployment and compare it with a saved baseline, a record of its earlier state. Check page responses, loading times, and new errors, flag persistent changes, and produce a per-page health report.

  • Recording a healthy baseline before deployment
  • Monitoring production immediately after deployment
  • Checking key pages for slower responses or failures
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

catchup

FreeSummary

Rebuild project context after clearing a conversation or returning to work. Review recent Git history, uncommitted changes, and TODO markers to get a structured summary of project status and suggested next steps.

  • Restoring project context after /clear
  • Reviewing recent changes after a long break
  • Checking unfinished work before choosing the next task
FlorianBruniaux/claude-code-ultimate-guide6.2KUpdated Oct 20, 2026

See all skills by FlorianBruniaux

Report a problem with this skill