- Always use
uv run, not python. - Always run
uv run pytest -n 8before creating a PR. - Run
uv run pre-commit installafter cloning to enable pre-commit hooks (ruff, uv-lock, kernel-analyzer). - Prefer running individual tests rather than the full test suite to improve iteration speed.
- PR body should be plain, concise prose. Describe the problem, what the change does, and any non-obvious tradeoffs. Bullet points listing changes are fine, but avoid section headers, structured templates, and emojis. A good PR description reads like a short paragraph to a colleague, not a form.
- PR and commit messages are rendered on GitHub, so don't hard-wrap them at 88 columns. Let each sentence flow on one line.
- Push branches to your own fork, not to the google-deepmind/mujoco_warp repo directly.
- Do not add AI assistants (e.g. Claude) as commit co-authors. The mujoco_warp CLA check requires all commit authors to have signed the CLA, and AI tools cannot sign it.
- Amending commits is fine before a PR has reviewers looking at it. Once a PR is under review, use new commits so reviewers can see what changed.
- When responding to PR review comments:
- Reply to each comment individually confirming what you did (or why you didn't).
- Resolve comment threads that are addressed.
- Add a summary comment on the PR after responding, covering what was applied and what was intentionally skipped.
- Line length limit is 128 characters. Docstring length limit is 100 characters.
- Prefer targeted, efficient tests over exhaustive edge-case coverage.