Skip to content

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 preparelefthook install.

bash
pnpm install
pnpm exec lefthook install
pnpm exec lefthook validate
pnpm exec lefthook check-install
FileRole
lefthook.ymlShared hook policy (committed)
lefthook-local.ymlPersonal overrides (gitignored)
package.json"prepare": "lefthook install"

What runs

HookJobs
pre-commitPrettier, then ESLint on staged files
pre-pushpnpm 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: true

Do not point hooks at Vite+ (vp staged / vp check). Agent session hooks do not install Git hooks.

Frontend Corner — agent ops, tooling, and decision records