bundles/testing/skills/test-dispatch/SKILL.md
Single front door for testing. Parses a subcommand — run, qa, tdd, e2e, coverage, init, or regression — and routes to the right testing engine: test-runner (run tests, fix failures), qa-reviewer (structured verification pass on completed work), tdd (red-green-refactor workflow), playwright-e2e-init (scaffold E2E tests for frontend projects), husky-test-coverage (enforce coverage thresholds via git hooks), testing-cicd-init (Vitest + GitHub Actions CI setup), or ai-regression-testing (design regression tests targeting AI blind spots). Backs the /test command. Use when asked to run tests, write tests, set up testing, check coverage, or start TDD, and the action must be picked from an argument like "run", "qa", "tdd", "e2e", "coverage", "init", or "regression".
npx skillsauth add shipshitdev/library test-dispatchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The router behind /test. It owns one job: turn a subcommand into the right
testing action and delegate. It does not contain testing logic of its own —
test execution lives in test-runner, structured verification in qa-reviewer,
red-green-refactor in tdd, E2E scaffolding in playwright-e2e-init, coverage
enforcement in husky-test-coverage, Vitest + CI setup in testing-cicd-init,
and AI-targeted regression design in ai-regression-testing.
Inputs:
mode. Scope tokens
after run (full, unit/integration/e2e, types, coverage, a
path/pattern, --since <ref>, --no-fix) are forwarded verbatim to the
test-runner engine. /test absorbed the former /tests command — every
old /tests <scope> spelling is now /test run <scope>.Outputs:
run: test results and, on failure, applied fixes until green or blocked.qa: a structured multi-phase verification report on completed work.tdd: a test-first implementation plan and red-green-refactor cycle.e2e: Playwright config, example tests, and CI integration scaffolded.coverage: Husky pre-commit hooks with coverage threshold enforcement set up or verified.init: Vitest config, test setup files, and GitHub Actions CI workflow created.regression: regression test plan and new tests targeting AI blind spots.Creates/Modifies:
run is a mutating route: test-runner's auto-fix loop edits the code under
test and its tests until the suite is green. e2e, coverage, and init
write config, hooks, and workflows. Only status, qa, and --no-fix runs
leave the tree untouched.External Side Effects:
Confirmation Required:
disable-model-invocation). Delegated
skills that scaffold files (e2e, coverage, init) each re-confirm before
writing. Never chain mutating subcommands automatically.run is different, and saying so matters: test-runner is designed to edit
the file(s) under test and their tests without asking — that loop is the whole
point of /test run. It re-confirms before editing source beyond those
files, before an expensive full/e2e run, and before changing any test's
expectations. When the user wants a report and no edits at all, route
--no-fix rather than relying on a gate test-runner does not have.Delegates To:
test-runner for run (scoped test execution + auto-fix loop).qa-reviewer for qa (structured verification pass on agent work).tdd for tdd (red-green-refactor workflow).playwright-e2e-init for e2e (Playwright scaffold for frontend projects).husky-test-coverage for coverage (Husky hooks + coverage threshold setup).testing-cicd-init for init (Vitest + GitHub Actions CI setup).ai-regression-testing for regression (regression tests for AI blind spots).Resolve the raw argument into a mode.
| Argument | Mode | Delegates to |
|---|---|---|
| (empty) | status | none — print a domain overview + Usage block |
| run, suite, smoke | run | test-runner (forward every scope token verbatim) |
| qa, review, verify | qa | qa-reviewer |
| tdd, red-green | tdd | tdd |
| e2e, playwright | e2e | playwright-e2e-init |
| coverage, hooks | coverage | husky-test-coverage |
| init, setup, ci | init | testing-cicd-init |
| regression | regression | ai-regression-testing |
| bare scope token (full, unit, integration, types, path, --since, --no-fix) | run | test-runner (legacy /tests spelling) |
If the argument matches none of these, report the unrecognized input and print the Usage block — do not guess.
test-runner skill, forwarding any scope token.qa-reviewer skill.tdd skill.playwright-e2e-init skill.husky-test-coverage skill.testing-cicd-init skill.ai-regression-testing skill.Each delegated skill owns its own preconditions and confirmation gate. This router does not relax them.
/test # status: detected runner, coverage config + usage
/test run # changed-only: tests related to your dirty worktree, auto-fix until green
/test run full # the whole suite (what CI runs)
/test run unit # run existing unit tests
/test run integration # run existing integration tests
/test run e2e # run existing end-to-end tests
/test run types # tsc --noEmit and clear the errors in a loop
/test run coverage # full run + coverage report
/test run <path|pattern> # run a focused test path or pattern
/test run --since <ref> # tests related to a commit range
/test run --no-fix # run and report only; make no edits
/test qa # structured multi-phase verification pass on completed work
/test tdd # red-green-refactor workflow for a feature or bug fix
/test e2e # scaffold Playwright E2E tests for a frontend project
/test coverage # set up or verify Husky pre-commit coverage enforcement
/test init # install Vitest + GitHub Actions CI with 80% coverage threshold
/test regression # design regression tests targeting AI-generated code blind spots
The run/setup split matters: /test run e2e executes existing E2E tests while
/test e2e scaffolds Playwright; /test run coverage runs the suite with
coverage while /test coverage installs the Husky gate. When a bare scope
token arrives without run and matches no mode (e.g. /test full,
/test types, /test --since <ref>, a path), treat it as run <scope> —
those spellings came from the retired /tests command. Mode names always win:
a bare e2e or coverage resolves to the setup mode, so running those scopes
requires the explicit run prefix.
init then coverage
without a separate confirmed invocation).run without a detected test runner. If no runner is determinable,
surface the gap and recommend init rather than failing silently.development
Coordinates a weekly engineering review of board accuracy, recent code changes, operational health, and scoped cleanup. Use for a recurring repository health review or a review of the last several days.
testing
Audits project board configuration and prepares explicitly requested setup, copy, or normalization changes while preserving the existing workflow and provider boundaries. Use when inspecting a board's fields, columns, scope, or configuration.
testing
Reconciles a project board with current work and delivery evidence, reports incomplete coverage and metadata gaps, and applies only approved provider-supported field changes. Use when auditing board drift, reviewing blocked work, or assessing upcoming delivery.
development
Walk through how a subsystem works. Use for "how does X work", code walkthroughs before changing something, and placement or ownership questions. Explains architecture, runtime flow, and onboarding mental models. Can critique architecture. Use why for motivation.