name: qa description: "Generate QA test summary from current branch changes for PR handoff" allowed-tools: Read, Grep, Glob, Bash, Write
/qa - QA Test Summary Generator
Generate a QA handoff document from the current branch's changes. Output should be ready to paste as a Jira comment on the ticket.
Write two versions of the output:
.claude/qa-summary.md— Markdown version with proper headings, bold, checkboxes, and code formatting. Useful for GitHub PRs or reference..claude/qa-summary.txt— Plain text version following the Jira formatting rules below. This is the one that gets copied to clipboard.
After writing both files, run cat .claude/qa-summary.txt | pbcopy to copy the Jira version to the clipboard. Tell the user: "Copied to clipboard — paste into Jira with Cmd+V. Markdown version also saved to .claude/qa-summary.md."
Instructions
- Discover changes: Diff against the branch's parent, not production. Run
git diff development --statandgit log development..HEAD --onelineto see only what this branch adds. Also rungit diff HEAD --statto catch any uncommitted work. - Read changed files: Read the key modified files to understand the actual changes, not just the diff stats
- Identify scope: Determine which features, pages, and components are affected
- Discover test credentials: For every persona a test case asks QA to sign in as, surface the actual credential values, not generic labels like "the seeded co-loaded persona." Look for:
- Seed scenario names (e.g.
src/**/Seed*.cs,seeds/**,prisma/seed.ts, fixtures) - Email patterns or templates in config (
appsettings*.json,.env*,config/**) - OTP / password bypass mechanisms or where to read OTPs (Mailpit, MailHog, dev console, feature flags)
- State / tenant env vars required to seed the right data (
STATE,TENANT, etc.) - Any docs in
README.mdordocs/**that already enumerate test users Resolve patterns into concrete values — e.g. ifEmailPatternissebt.dc+{0}@codeforamerica.organd the scenario isco-loaded, the test credential issebt.dc+co-loaded@codeforamerica.org.
- Seed scenario names (e.g.
- Generate test summary in plain text with light formatting. The output will be pasted into Jira Cloud's rich text editor. Use this format:
QA Summary — [Branch Name]
What Changed
Brief 2-3 sentence description of the feature/fix.
Affected Areas
- All pages — page views and browser tab titles
- Sign in / Sign out flow
Test Cases
Happy Path
1. Step-by-step test case with expected result
2. Another test case...
Edge Cases
1. Edge case scenario with expected behavior
Regression Checks
1. Verify [related feature] still works as expected
Test Credentials
- Persona name — login email — how to retrieve OTP/password
- Another persona — login email — how to retrieve OTP/password
Environment Notes
- Environment setup needed
- Which environments to test on
Formatting rules — CRITICAL
- Use plain text with simple numbered and bulleted lists
- NO markdown syntax (no ##, no **, no backticks, no [ ] checkboxes)
- NO Jira wiki markup (no h2., no *, no {{}}, no #)
- Section headers should be plain text on their own line, in ALL CAPS or Title Case to stand out
- Use dashes (-) for bullet lists and numbers (1. 2. 3.) for ordered lists
- For inline code references like event names, just use quotes: "page_view", "sign_in"
- For links, write the full URL on its own line
Key Behaviors
- Focus on user-facing behavior, not implementation details
- Test cases should be actionable by someone who didn't write the code
- Use relative paths for navigation (e.g. "Navigate to Tools > Tag Generator"), never reference localhost or full URLs — QA knows their environment
- Assume QA is already signed in and on the app unless the test specifically involves auth
- Call out any data dependencies (specific campaigns, creatives, etc.)
- Always include a "Test Credentials" section listing every persona referenced in the test cases with the actual login email and a one-liner on how to retrieve the OTP/password (e.g. "Mailpit at http://localhost:8025" or "OTP bypass enabled in dev — any code works"). Never use generic phrases like "the seeded co-loaded persona" without the concrete email.
- If changes touch auth, API layer, or shared components, expand regression scope
- Keep it concise — QA doesn't need to know about refactors or code style changes
- Use checkboxes only in the markdown version (
qa-summary.md); the plain-text Jira version uses numbered lists per the formatting rules above
Language Rules — CRITICAL
- NEVER reference file names, paths, components, stores, functions, or code concepts. QA does not read code.
- Write everything in terms of what the user sees and does in the browser — pages, buttons, modals, fields, messages.
- Instead of "interceptors.js tracks CRUD operations", say "Creating, editing, or deleting any item should be tracked"
- Instead of "TableFilter.vue search is debounced", say "Type in a search bar, wait a second, and the search should be recorded"
- Instead of "Affected: src/features/analytics/...", say "Affected: Analytics reports page"
- The "Affected Areas" section should list page names and UI areas, not files or components
- Environment Notes should only include things QA needs to configure or be aware of — no technical implementation details
Related skills
TDD Red-Green-Refactor
Testing
Skill that guides Claude through the complete TDD cycle.
Claude CodeWindsurfintermediate
650
189
2,220
Web Accessibility Audit
Testing
Performs a comprehensive web accessibility audit following WCAG standards.
claudeCursorWindsurfintermediate
129
37
528
UAT Test Case Generator
Testing
Generates structured and comprehensive user acceptance test cases.
claudechatgptintermediate
87
24
449