Thank you for your interest in contributing to Ordo! This document provides guidelines and instructions for contributing.
We are committed to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
- Node.js 20+
- Rust 1.75+
- Solana CLI 1.18.22+
- Anchor 0.30.1
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/ORDO.git cd ordo -
Install dependencies:
npm install
-
Set up environment:
cp .env.example .env # Edit .env with your API keys -
Build the project:
anchor build npm run build
-
Run tests:
npm test
feature/description- New featuresfix/description- Bug fixesdocs/description- Documentation updatesrefactor/description- Code refactoringtest/description- Test additions/updates
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes following our coding standards
-
Write or update tests for your changes
-
Run tests and linting:
npm test npm run lint npm run format -
Commit your changes:
git add . git commit -m "feat: add new feature description"
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request
We follow the Conventional Commits specification:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Test additions or updateschore:- Build process or auxiliary tool changes
Examples:
feat: add agent replication mechanism
fix: resolve memory leak in lifecycle manager
docs: update installation instructions
test: add property tests for evolution system
- Use TypeScript strict mode
- Follow existing code style
- Use meaningful variable names
- Add JSDoc comments for public APIs
- Prefer functional programming patterns
- Use async/await over promises
- Follow Rust naming conventions
- Use
cargo fmtfor formatting - Use
cargo clippyfor linting - Add documentation comments
- Handle errors explicitly
- Write unit tests for all functions
- Write tests for all new features
- Maintain or improve code coverage
- Use property-based testing where appropriate
- Test edge cases and error conditions
-
Update Documentation: Update README.md and relevant docs if needed
-
Add Tests: Ensure your changes are covered by tests
-
Run Full Test Suite:
npm test npm run lint anchor test
-
Update Changelog: Add your changes to CHANGELOG.md (if exists)
-
Create PR:
- Use a clear, descriptive title
- Reference any related issues
- Describe what changed and why
- Include screenshots for UI changes
-
Code Review: Address reviewer feedback promptly
-
Merge: Once approved, a maintainer will merge your PR
- 🐛 Bug fixes
- 📝 Documentation improvements
- ✅ Test coverage improvements
- 🔒 Security enhancements
- Agent Intelligence: Improve reasoning and decision-making
- Evolution System: Enhance genetic algorithms and fitness functions
- Economic Models: Develop new survival mechanisms
- Safety Systems: Strengthen alignment and monitoring
- DeFi Integration: Add new financial capabilities
- UI/UX: Improve web and mobile interfaces
Look for issues labeled good-first-issue in the GitHub repository.
- Check existing issues to avoid duplicates
- Verify the bug exists in the latest version
- Collect relevant information
**Description**
Clear description of the bug
**Steps to Reproduce**
1. Step one
2. Step two
3. ...
**Expected Behavior**
What should happen
**Actual Behavior**
What actually happens
**Environment**
- OS: [e.g., Windows 11, Ubuntu 22.04]
- Node.js version: [e.g., 20.10.0]
- Solana CLI version: [e.g., 1.18.22]
- Anchor version: [e.g., 0.30.1]
**Additional Context**
Logs, screenshots, etc.We welcome feature requests! Please:
- Check if the feature already exists or is planned
- Clearly describe the feature and its benefits
- Provide use cases and examples
- Consider implementation complexity
Do not open public issues for security vulnerabilities.
Instead, email security@ordo.com with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will respond within 48 hours.
Good documentation is crucial. You can contribute by:
- Fixing typos and grammar
- Improving clarity and examples
- Adding missing documentation
- Translating documentation
- Creating tutorials and guides
- Discord: Join our community server (link in README)
- GitHub Discussions: Ask questions and share ideas
- Twitter: Follow @OrdoPlatform
# Run all tests
npm test
# Run specific test file
npm test src/agents/lifecycle.test.ts
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm run test:coverage# Run with debug logging
DEBUG=* npm run dev
# Debug Anchor programs
anchor test --skip-build -- --nocapture# Clean build
npm run clean
anchor build
npm run build
# Verify build
npm testBy contributing, you agree that your contributions will be licensed under the MIT License.
If you have questions about contributing, feel free to:
- Open a GitHub Discussion
- Ask in our Discord server
- Email contributors@ordo.com
Thank you for contributing to Ordo! 🚀