Branch and commit
your-name/short-description branch naming convention. Keep commit messages concise and focused on what changed and why.
Before submitting
All three commands must pass. Fix any ruff violations before creating the PR — CI will block merge on lint failures.Create the PR
PR guidelines
- Keep PRs focused — one logical change per PR. Split unrelated changes into separate PRs.
- Include tests for new functionality. Reviewers will ask for them if they are missing.
- Update documentation if you change public APIs, add new agent types, or modify configuration.
- New examples auto-appear in the docs on the next build. No extra docs work needed.
- New VCR cassettes — if you record cassettes for integration tests, include them in the PR.
- PR title — use imperative mood: “Add retry logic to task executor”, not “Added retry logic”.
- PR body — explain what changed and why. Link related issues with
Fixes #123orCloses #123.
Review process
- Address feedback by pushing new commits (do not force-push during review — it erases comment context).
- Mark conversations as resolved after addressing them.
- Re-request review after pushing fixes if the reviewer has not re-reviewed.
agent_future.py, task_instance.py, agent_runtime.py), expect closer scrutiny and possibly multiple reviewers.
Code owners
| Area | Owner |
|---|---|
Runtime (src/motus/runtime/) | @NorthmanPKU |
Agents (src/motus/agent/) | @NorthmanPKU, @JackFram |
Tools (src/motus/tools/) | @eliotsolomon18, @coppock |
Models (src/motus/models/) | @yzhou442 |
Memory (src/motus/memory/) | @JackFram, @vasiliskyp |
CI
Tests run automatically on every push to an open PR. The CI pipeline runs:- Ruff — lint and format checks
- Unit tests —
tests/unit/ - Integration tests —
tests/integration/with VCR replay

