- Lint and format pass (
ruff) - Type check passes (
ty) - Tests pass and new behavior is covered
- Build succeeds (
uv build) if packaging or build config changed - Docs updated if behavior or public API changed
- Repo metadata stays consistent across the three surfaces (GitHub description, pyproject
description, profile blurb) if this touches packaging
{{ message }}
