Thank you for your interest in contributing to RAIGO! We welcome contributions from the community and are grateful for your support. This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
There are many ways to contribute to RAIGO, and not all of them require writing code.
If you find a bug, please open a GitHub Issue using the bug report template. Before creating a new issue, please check if the bug has already been reported to avoid duplicates.
When filing a bug report, please include as much detail as possible, including the version of RAIGO you are using, your operating system, and a minimal reproducible example.
If you have an idea for a new feature, please open a GitHub Issue using the feature request template. Describe the problem you are trying to solve and how the feature would address it.
The .raigo specification is the heart of the project. If you have suggestions for improving the format, adding new fields, or clarifying existing behavior, please open an issue to discuss your proposal before submitting a pull request. Changes to the specification have broad implications and require careful consideration.
One of the most impactful ways to contribute is to add support for new AI platforms. If you use an AI tool that is not currently supported, we would love your help adding a compiler target for it.
To add a new target:
- Open an issue to discuss the new target and its format requirements.
- Fork the repository and create a new branch.
- Add the new target to the compiler in
cli/src/compiler.ts. - Add the target to the
TARGETSlist incli/src/index.ts. - Update the
SPECIFICATION.mdto document the new target. - Add a test case for the new target.
- Submit a pull request.
High-quality example .raigo files are invaluable for helping new users get started. We especially welcome examples for specific compliance frameworks (e.g., SOC 2, ISO 27001, GDPR) and industry verticals.
Clear, accurate documentation is essential for any open standard. If you find errors, ambiguities, or areas that could be improved in any of our documentation files, please submit a pull request.
If your organization uses RAIGO in production, please submit a pull request to add it to ADOPTERS.md. This is one of the most valuable contributions you can make, as it demonstrates the real-world value of the project.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/raigo.git cd raigo - Install dependencies:
cd cli npm install - Build the CLI:
npm run build
- Test your changes against the example files:
node dist/index.js validate ../examples/healthcare.raigo node dist/index.js compile ../examples/healthcare.raigo --all
- Create a new branch from
mainfor your changes:git checkout -b feature/my-new-feature
- Make your changes and commit them with a clear, descriptive commit message.
- Push your branch to your fork:
git push origin feature/my-new-feature
- Open a pull request against the
mainbranch of thePericuloLimited/raigorepository. - Fill in the pull request template with all relevant information.
- A maintainer will review your pull request and provide feedback.
We follow the Conventional Commits specification for commit messages. This helps us generate a clear and useful changelog automatically.
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation changes only |
spec |
Changes to the .raigo specification |
refactor |
A code change that neither fixes a bug nor adds a feature |
test |
Adding missing tests or correcting existing tests |
chore |
Changes to the build process or auxiliary tools |
Example: feat: add Microsoft Copilot Studio compiler target
- TypeScript: Follow the existing code style. We use TypeScript for all CLI code.
- YAML: Example
.raigofiles should be well-commented and follow the conventions established in the existing examples. - Documentation: Write in clear, professional English. Avoid jargon where possible.
If you have any questions about contributing, please open a GitHub Discussion and we will be happy to help.