QA Handoff Package
The "ready for QA" that isn't — a story tossed over the wall with no test data, no edge cases, and no idea what changed — is how bugs slip and QA burns a day setting up. This turns the story and its change into a real handoff: scenarios tied to the acceptance criteria, the negative and edge cases developers reliably forget, the exact data/environment to reproduce, and a clear line around what's not in scope, so testing is focused, not archaeology.
What This Skill Produces
- Test scenarios mapped to acceptance criteria — every AC has at least one way to verify it
- Edge & negative cases — empty/boundary/invalid inputs, permissions, concurrency, the forgotten paths
- Data & environment setup — the exact accounts, feature flags, seed data, and env needed to reproduce
- Risk areas to probe — where this change is most likely to have broken something (incl. nearby regressions)
- Out of scope — what QA should not spend time on for this change
Required Inputs
Ask for these if not provided:
- The story & acceptance criteria — what it's meant to do
- The change — what was built (a summary or the MR/PR diff), so scenarios match reality
- Environments & data — where QA tests, and what setup/flags/accounts are needed
- Known risk/complexity — anything the dev is worried about, or areas the change touches indirectly
Framework: A Handoff QA Can Run
- Cover every AC. Each acceptance criterion gets a concrete scenario — no AC left unverified.
- The happy path is the easy 30%. The value is the edge and negative cases: empty, max, invalid, unauthorised, offline, concurrent, mid-migration.
- Reproducibility is setup. Name the exact data, accounts, roles, and flags — "test it" without setup wastes QA's morning.
- Point at the risk. Where the diff touches shared code or a fragile area, call it out — including regressions in neighbouring features.
- Bound it. State what's out of scope so QA doesn't test the whole app for a small change.
- Ground in the actual change. Scenarios match what was built, not what the story wished for.
Output Format
QA Handoff — [story] · build: [MR/PR ref]
Scenarios (by acceptance criterion)
Edge & negative cases
- [empty / boundary / invalid / permission / concurrency / offline …]
Setup to reproduce
- Environment: … · Accounts/roles: … · Feature flags: … · Seed data: …
Risk areas / possible regressions
- [where this change might have broken something nearby].
Out of scope
- [what not to test for this change].
Quality Checks
Anti-Patterns
- Happy-path only — the bugs live in the edges.
- "Just test the story" with no data/environment setup — a lost QA morning.
- No scope boundary — QA re-tests the whole app for a one-line change.
- Ignoring regressions in features the change touches indirectly.
- Scenarios from the story, not the build — testing what was wished, not what shipped.
Example Trigger Phrases
- "Prep a QA handoff for this story and its MR."
- "What should QA test here, including edge cases and setup?"
- "Write test scenarios mapped to these acceptance criteria."
- "Make this ready for QA — what's in and out of scope?"
1---2name: qa-handoff-package3description: Turn a story and its change into a clean 'ready for QA' package — test scenarios, edge cases, the data and environment setup, and what's explicitly out of scope. Use when asked to prep a QA handoff, what should QA test here, write test scenarios for this story, or make this ready for QA. Produces the scenarios mapped to acceptance criteria, the edge/negative cases devs forget, the exact data and environment setup to reproduce, the risk areas to probe, and the out-of-scope list so QA doesn't chase the wrong things.4---5
6# QA Handoff Package
7
8The "ready for QA" that isn't — a story tossed over the wall with no test data, no edge cases, and no idea what changed — is how bugs slip and QA burns a day setting up. This turns the story and its change into a real handoff: scenarios tied to the acceptance criteria, the negative and edge cases developers reliably forget, the exact data/environment to reproduce, and a clear line around what's *not* in scope, so testing is focused, not archaeology.
9
10## What This Skill Produces
11
12- **Test scenarios mapped to acceptance criteria** — every AC has at least one way to verify it
13- **Edge & negative cases** — empty/boundary/invalid inputs, permissions, concurrency, the forgotten paths
14- **Data & environment setup** — the exact accounts, feature flags, seed data, and env needed to reproduce
15- **Risk areas to probe** — where this change is most likely to have broken something (incl. nearby regressions)
16- **Out of scope** — what QA should *not* spend time on for this change
17
18## Required Inputs
19
20Ask for these if not provided:
21- **The story & acceptance criteria** — what it's meant to do
22- **The change** — what was built (a summary or the MR/PR diff), so scenarios match reality
23- **Environments & data** — where QA tests, and what setup/flags/accounts are needed
24- **Known risk/complexity** — anything the dev is worried about, or areas the change touches indirectly
25
26## Framework: A Handoff QA Can Run
27
281. **Cover every AC.** Each acceptance criterion gets a concrete scenario — no AC left unverified.
292. **The happy path is the easy 30%.** The value is the edge and negative cases: empty, max, invalid, unauthorised, offline, concurrent, mid-migration.
303. **Reproducibility is setup.** Name the exact data, accounts, roles, and flags — "test it" without setup wastes QA's morning.
314. **Point at the risk.** Where the diff touches shared code or a fragile area, call it out — including regressions in neighbouring features.
325. **Bound it.** State what's out of scope so QA doesn't test the whole app for a small change.
336. **Ground in the actual change.** Scenarios match what was built, not what the story wished for.
34
35## Output Format
36
37### QA Handoff — [story] · build: [MR/PR ref]
38
39### Scenarios (by acceptance criterion)
40| AC | Scenario | Expected |
41|---|---|---|
42
43### Edge & negative cases
44- [empty / boundary / invalid / permission / concurrency / offline …]
45
46### Setup to reproduce
47- Environment: … · Accounts/roles: … · Feature flags: … · Seed data: …
48
49### Risk areas / possible regressions
50- [where this change might have broken something nearby].
51
52### Out of scope
53- [what not to test for this change].
54
55## Quality Checks
56- [ ] Every acceptance criterion has at least one scenario
57- [ ] Edge and negative cases are included, not just the happy path
58- [ ] Exact data/environment/flag setup is specified for reproducibility
59- [ ] Risk areas and possible regressions are called out
60- [ ] An explicit out-of-scope list bounds the testing
61- [ ] Scenarios reflect what was actually built, not just the story text
62
63## Anti-Patterns
64- **Happy-path only** — the bugs live in the edges.
65- **"Just test the story"** with no data/environment setup — a lost QA morning.
66- **No scope boundary** — QA re-tests the whole app for a one-line change.
67- **Ignoring regressions** in features the change touches indirectly.
68- **Scenarios from the story, not the build** — testing what was wished, not what shipped.
69
70## Example Trigger Phrases
71- "Prep a QA handoff for this story and its MR."
72- "What should QA test here, including edge cases and setup?"
73- "Write test scenarios mapped to these acceptance criteria."
74- "Make this ready for QA — what's in and out of scope?"