Thanks for considering a contribution. This document covers how we work across CustodyZero open source repositories.
Archon — fully open source, Apache 2.0. Contributions welcome across the board: bug fixes, features, documentation, tests, tooling.
Released Sentinel components — Apache 2.0 where published. Contributions accepted for the specific component scope. The broader Sentinel system is commercial and closed.
If you're unsure whether a repo accepts contributions, check its individual README.
For anything beyond a small bug fix or documentation correction, open an issue first. Describe what you're trying to do and why. This saves you from building something that doesn't fit the direction, and it gives us a chance to flag any technical constraints early.
For Archon specifically, check the open issues and the roadmap before starting new feature work. We'd rather coordinate than merge conflict.
Branch from main. Name your branch clearly: fix/description, feat/description, docs/description.
Keep PRs focused. One concern per PR. A PR that fixes a bug and adds a feature will be asked to split.
Write tests for behavioral changes. If it changes how Archon evaluates rules or gates execution, it needs test coverage. This isn't negotiable — deterministic behavior is the product.
Document what you change. If your change affects how an operator configures or interacts with the system, update the relevant documentation in the same PR.
Commit messages should be descriptive. Not "fix bug" — "fix: rule evaluation failing when restriction set is empty." The history is read by humans.
Each repository maintains its own linting and formatting configuration. Run the project's lint and format commands before submitting. PRs that fail automated checks won't be reviewed until they pass.
For Archon: determinism is not a style preference. If a proposed change introduces any non-deterministic behavior in rule evaluation or execution gating, it will not merge regardless of other quality.
- Open an issue if the change is non-trivial
- Fork the repository and create your branch
- Make your changes with tests and documentation
- Ensure all checks pass locally
- Open a PR with a clear description of what changed and why
- Address review feedback — we aim to review within a week
- Once approved, a maintainer will merge
We don't assign issues to external contributors in advance. First submitted, first reviewed.
By submitting a contribution you agree that your work will be licensed under the same Apache 2.0 license as the project. Do not submit code that you don't have the right to license this way.
CustodyZero will not relicense Apache 2.0 contributions to a more restrictive license. What ships open stays open.
See CODE_OF_CONDUCT.md. The short version: be direct, be respectful, focus on the work.
Questions? Open an issue in the relevant repository or reach out via custodyzero.com.