Thank you for your interest in contributing to RUDI. This document outlines the process for contributing code, stacks, and prompts.
We are committed to providing a welcoming and inclusive environment. Please be respectful of all contributors and maintainers.
- Fork the relevant repository
- Clone your fork
- Create a feature branch
- Make your changes
- Submit a pull request
git clone https://github.com/your-username/cli.git
cd cli
pnpm install- Use ES modules (import/export)
- No semicolons (project convention)
- Use async/await for asynchronous code
- Add JSDoc comments for public APIs
Use clear, descriptive commit messages:
Add support for Python runtime detection
- Add detect.command support in resolver
- Handle virtual environments
- Add tests for Python path resolution
Write tests for new features:
npm testAll tests must pass before submission.
- Clear, specific purpose
- Valid
manifest.jsonwith required fields - MCP server implementation in
node/src/orpython/src/ - No hardcoded secrets, API keys, passwords, or credentials
Stacks MUST declare required secrets but NEVER include actual values:
{
"requires": {
"secrets": [
{
"name": "API_KEY",
"required": true,
"description": "Get yours at https://example.com/api-keys"
}
]
}
}Users provide their own keys with rudi secrets set API_KEY.
catalog/stacks/your-stack/
├── manifest.json
└── node/src/index.ts (or python/src/server.py)
- Create directory under
catalog/stacks/ - Include all required files
- Test locally with the RUDI CLI
- Open pull request with clear description
- Clear, instructive content
- YAML frontmatter with metadata
- Example inputs/outputs (if applicable)
catalog/prompts/your-prompt.md
- Create file under
catalog/prompts/ - Include YAML frontmatter
- Open pull request
- Update relevant documentation
- Add tests for new functionality
- Ensure all tests pass
- Write clear PR description (what, why, how)
- Reference any related issues
- At least one maintainer review required
- Address feedback promptly
- Updates may be requested before merge
- Open an issue for bugs
- Start a discussion for questions
- Check existing issues before opening new ones
By contributing, you agree that your contributions will be licensed under the MIT License.