Before committing:
- Re-read your changes for unnecessary complexity, redundant code, and unclear naming
- Run relevant tests — not the full suite
- Run linters and type checker — fix everything before committing
Commits:
- Imperative mood, ≤72 char subject line, one logical change per commit
- Never amend/rebase commits already pushed to shared branches
- Never push directly to main — use feature branches and PRs
- Never commit secrets, API keys, or credentials — use
.envfiles (gitignored) and environment variables
Hooks and worktrees:
- Install prek in every repo (
prek install). Runprek runbefore committing. Configure auto-updates:prek auto-update --cooldown-days 7 - Parallel subagents require worktrees. Each subagent MUST work in its own worktree (
wt switch <branch>), not the main repo. Never share working directories.
Pull requests: Describe what the code does now — not discarded approaches, prior iterations, or alternatives. Only describe what's in the diff.
Use plain, factual language. A bug fix is a bug fix, not a "critical stability improvement." Avoid: critical, crucial, essential, significant, comprehensive, robust, elegant.