| name | verify |
| description | Run the project's full verification gate — typecheck, lint, tests — in one go. Use after any code change before committing, or when the user asks "is it green?" / "can I ship this?" / "verify" / "run checks". |
| when_to_use | After editing any TypeScript file, before committing, or when the user explicitly asks to verify. CLAUDE.md mandates this exact sequence must pass before every commit. |
| allowed-tools | Bash |
Verify
Run the project's verification gate as a single command:
pnpm typecheck && pnpm lint && pnpm test
All three MUST pass. If any step fails, report which one, show the error, and stop — don't move on until the failure is
addressed.
Why these three, in this order
pnpm typecheck — tsc (noEmit set in tsconfig.json). Fastest feedback; catches most issues.
pnpm lint — ESLint. Includes the Clean Architecture layer fence (
domain → business → integration → application), the no-class fence (outside domain/value/error/), the no-barrels
fence, and the sibling-isolation rules under integration/ai/<concept>/. A layer violation shows up here.
pnpm test — vitest (vitest run). The full suite, including flow step-order integration tests that lock the architectural shape.
Running them chained with && short-circuits on the first failure, which is what we want.
Not a replacement for
pnpm format:check / pnpm format — Prettier. The pre-commit hook handles staged files; run format:check manually
for a full sweep before opening a PR.
pnpm deadcode — knip. One-off audit; symbols intentionally exported are whitelisted via @public JSDoc tag +
knip.json#tags: ["-public"].
pnpm build — tsup + tsx scripts/build-assets.ts. Only needed before publishing to npm; CI verifies the bundle
from arbitrary cwd.