From skills
Use when the user says "drive the tests", "/drive-test", "review the tests", "are the tests any good", "check test coverage", or asks Claude to audit test quality across the files a PR (or working tree) touches. Evaluates each touched file's tests for level (unit vs integration vs e2e), assertion quality, mock health, coverage of new code paths, and the classic smells (mocking the unit under test, snapshot churn, tests-that-can't-fail, etc.). Runs the test suite to confirm green, fixes mechanical issues, surfaces judgment calls. Companion to /drive-code (which checks code shape) and /drive-feature (which checks logic).
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:drive-testThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
drive-test doesn't ask "is there a test"; lots of repos have lots of tests that don't catch bugs. It asks:
drive-test doesn't ask "is there a test"; lots of repos have lots of tests that don't catch bugs. It asks:
Flags missing coverage on newly added code paths, runs the suite, applies mechanical fixes, surfaces judgment calls.
In priority order:
gh pr diff --name-only against the base branch.git diff --name-only HEAD.For each source file, find its tests (TS/JS *.test.* / *.spec.*; Python test_<name>.py / <name>_test.py; Go <name>_test.go; Rust inline #[cfg(test)]). If no test file exists, flag it for Phase 3. Include test files the PR modifies directly.
Exclude snapshots (__snapshots__/, *.snap), generated scaffolding, vendor/, third_party/, node_modules/, fixtures.
Detect runner from config (vitest.config / jest.config / playwright.config / pytest.ini / pyproject.toml[tool.pytest] / go.mod / Cargo.toml / .rspec). Use the project's test script in package.json / Justfile / Makefile - match it instead of guessing flags.
Before auditing quality, confirm the suite passes. Run only files in scope using the project's runner.
If anything fails:
Then run with coverage if supported. Coverage is a signal, not the goal - look at newly added lines.
For each test file, walk the categories. Long-form versions in references/test-checklist.md - load on demand.
toBeTruthy / no-assertions / wrong-thing-asserted.test1 / should work.sleep instead of polling.See references/test-checklist.md for examples per category.
Safe to apply inline:
toBeTruthy → toEqual(expected)).expect(true).toBe(true)).Re-run affected tests after each fix. Commit tests separately:
git commit -m "test: <one sentence>"
Flag, don't fix:
One-line recommendation per item in the final report.
drive-test audited N files in <pr>/<working tree>.
Suite: green | <N> failing.
Coverage on new code: per-file pass / partial / missing.
Mechanical fixes applied (committed): <list>.
Judgment calls flagged: <list>.
Did not audit: <out-of-scope, e.g. e2e>.
--no-verify or skip pre-commit checks.references/trust-policy.md./drive-code - code shape. Run first; cleaner code makes test gaps obvious./drive-feature - logic correctness. Same gaps from a different angle./drive-ux - browser-level e2e flows; drive-test stops at integration./drive-pr - orchestrator; may suggest drive-test when reviewers flag tests.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub 0xdeafcafe/skills --plugin skills