Contributing to Ralph¶
We welcome contributions to Ralph Orchestrator!
In This Section¶
| Guide | Description |
|---|---|
| Development Setup | Set up your dev environment |
| Code Style | Coding standards and conventions |
| Testing | Writing and running tests |
| Submitting PRs | Pull request process |
Quick Start¶
# Clone the repo
git clone https://github.com/mikeyobrien/ralph-orchestrator.git
cd ralph-orchestrator
# Build
cargo build
# Run tests
cargo test
# Install git hooks
./scripts/setup-hooks.sh
Ways to Contribute¶
Report Bugs¶
Found a bug? Open an issue with:
- Description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Ralph version and backend used
Suggest Features¶
Have an idea? Start a discussion first to:
- Explain the use case
- Discuss potential approaches
- Get feedback before implementing
Submit Code¶
- Fork the repository
- Create a feature branch
- Write code with tests
- Ensure all tests pass
- Submit a pull request
Improve Documentation¶
Documentation improvements are always welcome:
- Fix typos or unclear explanations
- Add examples
- Update outdated information
- Translate to other languages
Development Philosophy¶
Ralph follows the Six Tenets:
- Fresh Context Is Reliability
- Backpressure Over Prescription
- The Plan Is Disposable
- Disk Is State, Git Is Memory
- Steer With Signals, Not Scripts
- Let Ralph Ralph
Contributions should align with these principles.
Anti-Patterns to Avoid¶
From the Ralph philosophy:
- Building features into orchestrator that agents can handle
- Complex retry logic (fresh context handles recovery)
- Detailed step-by-step instructions (use backpressure instead)
- Scoping work at task selection time (scope at plan creation)
- Assuming functionality is missing without code verification
Code of Conduct¶
Be respectful and constructive. We're all here to make Ralph better.