--- name: regression-test-plan description: "Design and prioritize a regression test suite so changes don't break what worked. Use when asked to plan regression testing, build a regression suite, decide what to re-test after a change, or trim a bloated regression pack. Produces a risk-based regression plan — what to re-test and why, prioritised tiers (smoke → full), automation candidates, and a run strategy per release — so coverage matches risk and the suite stays fast." --- # Regression Test Plan Skill Regression testing protects what already works — but re-running everything every time is slow and wasteful, and testing too little ships breakage. The answer is **risk-based**: re-test what changed, what it touches, and what hurts most if it breaks. This skill builds that prioritised plan and a run strategy, so coverage tracks risk and the suite doesn't balloon. ## Working from a brief Given "we're shipping a checkout change, what should we regression-test?", **produce the plan anyway** — infer the impacted areas and a sensible prioritisation, labelling assumptions. Tie scope to change-impact and risk. Never hand back a question instead of a plan. ## Required Inputs Ask for these only if they aren't already provided (else infer and label): - **The change** — what's being released/modified, and what it touches (and integrates with). - **Critical paths** — the flows that must never break (revenue, auth, data integrity). - **Existing coverage** — current regression cases/automation, if any, and how long a full run takes. - **Constraints** — time/resources per release, and manual vs. automated capacity. ## Output Format ### Regression Plan: [release/change] **1. Impact analysis** — what changed, the areas directly and indirectly affected, and the high-risk zones (shared components, recent bugs, complex logic). **2. Prioritised scope** — what to re-test, in tiers: | Tier | When to run | Scope | Why | |---|---|---|---| | Smoke / sanity | every build | critical paths only (login, checkout, save) | fast fail | | Targeted | this change | the changed area + its direct dependencies | change-impact | | Full regression | major release / risky change | broad core coverage | safety net | **3. What to skip (and the risk)** — explicitly de-scope low-risk, unchanged areas, and name the residual risk. **4. Automation candidates** — which cases are stable, high-value, and repetitive enough to automate first (and which to keep manual). **5. Run strategy** — when each tier runs (per-commit / per-release), order (critical first), and the entry/exit criteria for sign-off. ## Quality Checks - [ ] Scope is driven by change-impact and risk, not "run everything" or "run the same list every time" - [ ] Critical paths are always covered (a fast smoke tier) - [ ] De-scoped areas are explicit, with the residual risk named - [ ] Automation candidates are prioritised by stability and value - [ ] A run strategy ties each tier to when it runs and the sign-off criteria - [ ] The suite stays proportionate to the time/risk — not bloated ## Anti-Patterns - [ ] Do not "re-run everything" by default — it's slow and trains teams to skip it - [ ] Do not test only the changed file — cover its dependencies and shared components - [ ] Do not silently drop coverage — when you de-scope, state the risk - [ ] Do not automate flaky or rarely-run cases first — start with stable, high-value ones - [ ] Do not let the suite grow unbounded — prune and tier it as the product changes ## Based On Risk-based regression practice — change-impact analysis, tiered smoke/targeted/full suites, automation prioritisation, and release-fit run strategy. ## Example Trigger Phrases - "Plan regression testing." - "Build a regression suite." - "Decide what to re-test after a change." - "Trim a bloated regression pack."