The one pre-push check. Build, unit + component tests, guardrails (sanitizer + retrieval corpus + filter report), gitleaks, and optionally the Playwright E2E suite. Run before any commit you intend to push.
Install
npx skillscat add alasdairnc/casedive/verify Install via the SkillsCat registry.
/verify
Runs every fast check a contributor should run locally, in order, and stops at
the first failure. E2E is opt-in because it needs the dev server and takes a
minute; everything else finishes in under a minute.
Steps
Build (no pipe: a pipe to
tailwould hide a non-zero exit)npm run buildUnit + component tests
npm run test:unit && npm run test:componentStop here if anything fails. Never run E2E on top of red unit tests.
Guardrails (result-card sanitizer, retrieval failure corpus, filter report)
npm run test:guardrailsThe filter report is a no-op without
CANLII_API_KEY; that's expected locally.Secret scan
npm run security:scanDocs lint (only if
.mdfiles changed)npm run docs:lintE2E — only when
/verify e2eis asked for, or whensrc/,api/ortests/e2e/changed:lsof -i :3000 | grep -q LISTEN || (npm run dev:api & npx wait-on http://localhost:3000 --timeout 30000) npx playwright test --workers=1Single worker first. If that passes,
npm testfor the parallel run. Ten or
more simultaneous failures means a missing server or parallelism, not ten bugs.
Kill the server afterwards if this skill started it:kill $(lsof -ti :3000) 2>/dev/null || true.Diff review
git diff --statLook for files you didn't mean to touch (lockfile churn,
.env, generated output).
Report
VERIFY
Build PASS
Unit/Comp PASS (309 / 71)
Guardrails PASS
Secrets PASS
Docs lint PASS | skipped
E2E PASS (n/n) | skipped
Diff k files
READY | NOT READYConstraints
npm run dev:api, nevernpm run dev, for anything that hits/api/.- Do not edit tests or source while verifying. Report, then fix as a separate step.
- Do not push. This skill reports; the person decides.