- scripts/hooks/pre-commit: runs ruff --fix for root and web/ (matching CI)
and re-stages any auto-fixed files so they land in the commit
- Makefile: add install-hooks target (run once after clone)
- pyproject.toml: exclude web/ from root ruff (web has its own config)
- Fix remaining import sort warnings caught by the new hook
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>