Generate a risk-based test plan for a feature, PR, or release — risks ranked by likelihood × impact, test cases pushed to the lowest pyramid level that catches the failure, every acceptance criterion mapped to a test, and an explicit "not tested" list. Use when the user asks for a test plan, test cases, a QA strategy for a change, "how should we test this", or pre-release test coverage.
Pack dev-teamTier standardJob Build and review softwarev0.1.0
In Claude Code, with the dev-team plugin installed, invoke it as:
/dev-team:test-plan-generator
Try it
A realistic prompt from the skill's acceptance evals:
Write the test plan for this release — a new discount-code feature touching checkout, pricing, and the orders API.
What a good result looks like
Risk table precedes test cases, and effort tracks priority. A plan that gives equal depth to every area was written by coverage habit, not risk.
Every test case has a concrete expected result. ✅ *"Then the response is 422 with error code DUPLICATE_SKU"* — ❌ *"Then an appropriate error is shown"*.
Every AC appears in the coverage table. Uncovered ACs are listed as gaps at the top of the plan, never silently absent.
The "Not tested" section is non-empty. A plan that tests everything is a plan that prioritized nothing — naming accepted risks is the deliverable.
Pyramid placement is justified by failure location, not by what's easiest to write. Each e2e case states why no lower level could catch it.
How it's checked
Measured against plain Claude Code (2026-10-23): it met 66% of its checks, against 35% without it, and a blind judge preferred it. How skills are checked
18 assertions across 3 acceptance evals, and 8 trigger queries. Every skill's checks
What the output must do
A risk table ranked by likelihood times impact precedes the test cases, and depth of coverage tracks that ranking rather than being uniform
Every test case states a concrete expected result — a specific status code, error code, or value, not 'an appropriate error is shown'
Every acceptance criterion appears in a coverage table, with uncovered ACs listed explicitly rather than omitted
Each test is pushed to the lowest pyramid level that would catch the failure
Out-of-scope areas are named rather than silently skipped
Flags that the low-emission price conflicts (50% off £120 is £60, but the price table says £65) as something to settle before testing, rather than silently picking one as the expected result
Flags that the spec promises seven acceptance criteria but lists six, with AC5 missing
Every acceptance criterion in the spec is covered by at least one test or explicitly listed as not covered
Includes tests on both sides of each boundary: 30 days before expiry, 60 days after expiry, and 50 g/km of CO2
Uses the vehicle register stub for testing and lists the live register lookup as not tested, rather than planning tests against the live service
Does not invent a load target such as requests per second or concurrent users for the January rush; it says the figure is needed from Parking Services
Fits about two pages
Includes a check for a student with no exam score (expecting INC) and a check for a student with an exam score but missing homework
Includes at least one worked example with numbers and the expected result from the 40/60 weighting (for example homework 80 and exam 90 gives 86)
Includes checks for entry mistakes such as a score above 100, or a blank cell treated as zero
Does not invent letter-grade cut-offs, rounding rules or other rules the teacher did not state; if they matter, it asks the teacher to fill them in
Has no more than 10 items, written in spreadsheet terms a non-programmer understands
Delivers the checklist without first asking questions
When it should and shouldn't activate
Should activate:
Write a test plan for this feature
What should we test before this release, ranked by risk?
Map these acceptance criteria to test cases
Generate a risk-based QA plan for this PR
Should leave to another skill:
Split this epic into user stories with acceptance criteria
Review my code and tell me which tests are missing