You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#26 spec'd Husky + lint-staged for pre-commit hooks. Lefthook is a better fit for this project:
Single Go binary; no Node-spawn-per-hook overhead.
Parallel command execution out of the box.
Single lefthook.yml config — built-in glob filtering, no separate lint-staged package.
No postinstall script required.
Two devDependencies (husky + lint-staged) collapse to one (lefthook).
Why it matters
Hook latency directly affects commit friction; faster hooks mean contributors keep them enabled. Smaller dev surface area also helps #14 (audit-in-CI) and Dependabot churn.
Trade-offs
Lefthook is less ubiquitous than Husky. Contributors may need a one-line README pointer.
Initial install pulls a platform-specific binary (similar weight to Husky's setup).
Problem
#26 spec'd Husky + lint-staged for pre-commit hooks. Lefthook is a better fit for this project:
lefthook.ymlconfig — built-in glob filtering, no separatelint-stagedpackage.postinstallscript required.husky+lint-staged) collapse to one (lefthook).Why it matters
Hook latency directly affects commit friction; faster hooks mean contributors keep them enabled. Smaller dev surface area also helps #14 (audit-in-CI) and Dependabot churn.
Trade-offs
Proposed approach
npm install --save-dev lefthook.lefthook.yml:npx lefthook install(one-time per clone) in CONTRIBUTING.md. CI does not need it.husky+lint-stagedplan from Dev: Add Husky + lint-staged pre-commit hook #26.Coordination
biome check --writeinstead of separate eslint + prettier.Acceptance criteria
lefthookindevDependencies. Nohusky, nolint-staged.lefthook.ymlpresent and committed.npx lefthook installand--no-verifybypass.lefthook run pre-commit --verbose).