There is no CI on this repository. For a while the only thing keeping a broken
commit off main was a sentence in AGENTS.md asking politely that pnpm check be run first.
A sentence is not a gate. It is enforced by memory, and memory is exactly the thing that fails at 11pm when the change is small and obviously fine.
So lefthook now installs a pre-commit hook — automatically, from the root
prepare script, so pnpm install is still the only setup step — and that hook
runs lint, typecheck and tests and blocks the commit when any of them fail.
Two details that mattered more than expected:
The hook does not start Docker for you. The test suite talks to a local
Supabase stack, and a git commit that silently boots containers as a side
effect is a worse surprise than being told to run pnpm db:start. So the hook's
first job is a one-second reachability check that fails with the fix named,
rather than dying four minutes later somewhere inside vitest.
And --no-verify still works. It has to — it is a human's escape hatch. It is
just no longer the default path for anything that forgot.