Set up pre-commit hooks to catch issues before they reach CI:
- ESLint or Prettier for formatting
- TypeScript compiler for type errors
- Secrets scanner for leaked credentials
- Test runner for affected tests
Hooks run in seconds, CI runs in minutes. Catching issues at commit time saves round trips to CI. Configure hooks in .husky/ for JavaScript projects or .pre-commit-config.yaml for Python projects.