Appearance
Lefthook how-to
Git hooks: Lefthook runs Prettier and ESLint on commit, and pnpm typecheck + unit tests on push. Distinct from Grok / Claude session hooks.
Why Lefthook rather than Vite+: ADR-0004.
Install
lefthook is a root devDependency. pnpm install runs prepare → lefthook install.
bash
pnpm install
pnpm exec lefthook install
pnpm exec lefthook validate
pnpm exec lefthook check-install| File | Role |
|---|---|
lefthook.yml | Shared hook policy (committed) |
lefthook-local.yml | Personal overrides (gitignored) |
package.json | "prepare": "lefthook install" |
What runs
| Hook | Jobs |
|---|---|
| pre-commit | Prettier, then ESLint on staged files |
| pre-push | pnpm run typecheck + pnpm test |
Skip once with LEFTHOOK=0 git commit / git push.
Implementation
yaml
pre-commit:
jobs:
- name: prettier
run: pnpm exec prettier --write {staged_files}
stage_fixed: true
- name: eslint
run: pnpm exec eslint --fix {staged_files}
stage_fixed: trueDo not point hooks at Vite+ (vp staged / vp check). Agent session hooks do not install Git hooks.