Version control and pull requests
Commits
- Use conventional commits (
feat:,fix:,docs:,refactor:, etc.) - Subject line ≤ 72 chars; explain WHY in the body if not obvious
- Before committing, run
make precommit - When working on a GitHub issue, add a footer:
issue #123(partial work) orfixes #123(fully resolves it)
Either jj or git works; the repository is git-colocated. The jj-specific
gotchas an agent keeps hitting — bracketed route paths as path arguments,
non-interactive squash and split — are in
AGENTS.md.
Migration meta files conflict whenever two branches add a migration; see Database migrations rather than resolving them by hand.
Pull requests
Self-review before submitting is mandatory — read your own diff, check for obvious mistakes, and make sure the PR description is accurate. Do not offload that work onto the reviewer. This is especially important when using AI agents, which can produce plausible-looking but incorrect code. Draft PRs are fine for sharing work-in-progress without that expectation.
Issues
Issue Type and Priority are GitHub project fields that gh issue create cannot
set; GitHub issues has the gh api graphql calls that can.