Manage a regression test pack — group every test that exists to prevent a previously-fixed bug from re-occurring. Tag tests with the issue/PR they came from, run only regression-pack tests for fast pre-merge verification, ensure every fixed bug has a regression test. Use when the user says "regression pack", "regression suite", "every bug needs a test", "fast pre-merge tests".
Scanned 9/9/2026
Install to Claude Code
npx -y skills add adityaarsharma/orbit --skill orbit-qa-regression-pack --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Orbit Qa Regression Pack?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/adityaarsharma-orbit-qa-regression-pack)More formats (shields.io, HTML) on the badges page.
---
name: orbit-qa-regression-pack
description: Manage a regression test pack — group every test that exists to prevent a previously-fixed bug from re-occurring. Tag tests with the issue/PR they came from, run only regression-pack tests for fast pre-merge verification, ensure every fixed bug has a regression test. Use when the user says "regression pack", "regression suite", "every bug needs a test", "fast pre-merge tests".
---
# 🪐 orbit-qa-regression-pack — Regression test pack management
The regression pack is the most valuable test category — every test there exists because a real bug actually happened. Lose them and bugs come back.
---
## Quick start
```bash
# Run only regression-tagged tests
npx playwright test --grep '@regression'
```
Output: per-issue pass/fail.
---
## How to tag
### In test file:
```js
test('@regression #142 — Settings page does not 500 on missing API key', async ({ page }) => {
await page.goto('/wp-admin/admin.php?page=my-plugin');
// Verify settings page renders gracefully when api_key option is empty
await expect(page.locator('h1')).toBeVisible();
});
```
The `@regression #142` tag means:
- This is a regression test
- It guards against the bug fixed in issue / PR #142
### In file header (alternative):
```js
/**
* @regression
* @issues 142, 198, 251
*/
test.describe('Settings — regression suite', () => { ... });
```
---
## What the skill does
### 1. Coverage check — every fixed bug has a test
```bash
# Run on every PR
bash ~/Claude/orbit/scripts/regression-coverage.sh --since v2.4.0
```
Scans CHANGELOG.md for `[FIX]` entries since the last release. For each fix, look for a test tagged with that issue / PR number. Flag fixes without tests.
### 2. Run regression-only suite
```bash
npx playwright test --grep '@regression'
```
Fast — runs ONLY regression tests, skips smoke / new-feature tests. ~30 sec for typical plugin. Good pre-merge gate.
### 3. Track regression-test count over time
```
Week 1: 12 regression tests
Week 4: 18 (+6)
Week 8: 24 (+6)
Week 12: 25 (+1) ← lull = either fewer bugs OR not writing tests
```
If the count plateaus while bugs are still being fixed = process gap.
### 4. Reverse lookup: when a test fails, link to the original issue
A regression test failure should immediately surface "this guards #142, which was fixed because <reason>." Saves debug time.
---
## CI usage
```yaml
- name: Regression pack
run: npx playwright test --grep '@regression'
- name: Regression coverage check
run: bash scripts/regression-coverage.sh --since ${{ github.event.before }}
# Fail if any FIX in this PR's commits has no @regression test
```
---
## Common patterns
### Every PR with a [FIX] commit must add a `@regression` test
Codify this as a CI check. Refuses to merge a fix without its guard.
### Don't delete regression tests
A regression test guards against a known historic bug. Even if the bug looks "impossible to recur", deleting the test removes the guard. Keep them forever.
### Regression tests can be slow
They can be the slowest of your suite — they're integration-heavy by nature. Run them less often than smoke (e.g., on PR not on every commit).
### Tag with both issue ID and one-line description
```js
test('@regression #142 — empty API key on settings page', ...);
```
This makes failures readable without opening the issue.
---
## Output
```markdown
# Regression Pack — my-plugin
## Stats
- Total regression tests: 47
- Tests added since v2.4 (last 90 days): 12
- Coverage rate: 12/14 [FIX] entries (86%) ← good but not 100%
## Untested fixes
- #198 — "Save fails on Mailchimp action" — no @regression test found
- #207 — "Block bindings break on PHP 8.3" — no @regression test found
## Run pack
```bash
npx playwright test --grep '@regression'
```
~32 seconds, 47 tests.
```
---
## Pair with
- `/orbit-changelog-test` — every changelog [FIX] should have a regression test
- `/orbit-qa-flaky-detector` — flaky regression tests are toxic, fix immediately
---
## Sources & Evergreen References
### Canonical docs
- [Playwright Test Tags](https://playwright.dev/docs/test-annotations#tag-tests) — `@tag` mechanism
- [Google Engineering — Test Sizes](https://abseil.io/resources/swe-book/html/ch11.html#test_sizes) — small/medium/large
- [Martin Fowler — Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) — where regression fits
### Last reviewed
- 2026-04-29
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!