Automated summary
Builds a QA handoff document (what changed, affected areas, test cases, and test credentials) from the current branch's changes, formatted to paste into a Jira ticket.
Strengths
- Outputs two versions of the same content: Markdown for GitHub PRs and plain text formatted for Jira
- Diffs against the parent branch and also checks uncommitted work, keeping the scope tied to this branch
- Resolves real test credentials (emails, OTP bypass, environment variables) by reading seeds and config instead of leaving generic labels
- Enforces Jira formatting rules (no markdown, no wiki markup) and copies the result to the clipboard
Limitations
- The clipboard step relies on `pbcopy`, so that final action only works on macOS
- Runs no tests — the document is descriptive and its accuracy depends on correctly reading the changed files
- Assumes the parent branch is named `development`; other branch names require adjustment
Use it at the end of development, right before opening a PR or handing a ticket to QA.
Skip it if you need automated test execution or if the repository has no usable Git history.
Security analysis
CautionThe skill is a straightforward git-diff-based QA document generator. There is no obfuscation, no remote calls, no destructive commands, and no instruction to disable safety. The one real concern is that it deliberately mines .env files, seed configs, and docs for concrete credential values and writes them into repo-local files, which creates a secret-leakage path if those files are committed or the environment holds non-dev secrets. Treat as caution rather than risky since the intent is clearly dev/QA test users, not exfiltration.
- •Instructs the agent to search for and surface actual credential values (emails, OTP/password bypass mechanisms, .env* and appsettings*.json contents) into generated files
- •Writes harvested credentials into `.claude/qa-summary.md` / `.claude/qa-summary.txt`, which live inside the repo and could be accidentally committed, leaking test/dev secrets into version control
- •Runs shell commands (`git diff`, `git log`, `cat ... | pbcopy`) — legitimate but powerful; clipboard piping is benign, no network exfiltration or destructive operations present
Examples
/qa — generate a QA summary for my current branch so I can hand it off to QAWrite a QA handoff for this branch, list the test credentials QA needs, and copy the Jira version to my clipboardSummarize what changed on this branch with happy path, edge cases, and regression checks, and save both the Markdown and Jira text versionsname: 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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/generate-qa-summary-for-pr-handoff-mrx3xw9t/download' --output '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md.part' && mv '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md.part' '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read, Grep, Glob, Bash, Write
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md' && test -s '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t' '.claude/skills/qa'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t'openskills read 'generate-qa-summary-for-pr-handoff-mrx3xw9t'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/generate-qa-summary-for-pr-handoff-mrx3xw9t/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
ClickHouse Performance Comparison
Testing
Evaluate ClickHouse performance test results, check PR performance changes, compare with history, and assess whether a result is actionable.
Analyze CI Performance Reports
Testing
Analyze CI performance comparison reports for a ClickHouse PR. Cross-references master history to distinguish real regressions from flaky tests.
Santa Method
Testing
Multi-agent adversarial verification with two independent reviewers. Output is checked twice and iteratively fixed until both pass before shipping.