Contributing to OpenAdapt
August 26, 2026 ยท View on GitHub
Thank you for your interest in contributing to OpenAdapt!
Product boundary
OpenAdaptAI/OpenAdapt is the launcher/meta-package and compatibility
surface. The canonical compiler and governed runtime live in
openadapt-flow. New engine,
replay, repair, policy, and backend work belongs there.
The signed Production record provides the current admission state. Do not infer a lifecycle state from package availability, repository text, or a sibling repository.
Where to Contribute
- This repository: launcher packaging, unified CLI compatibility, and CI.
openadapt-flow: compiler, replay, verification, governed repair, and backend implementation.openadapt-agent: agent-facing MCP and Agent Skills integration over governed Flow bundles.- Other repositories: open issues only when their stated lifecycle and contribution guide match the proposed work.
Getting started
-
Fork and clone the repository.
-
Create a focused branch from current
origin/main. -
Install the launcher in development mode:
python -m pip install -e '.[dev]' -
Run the focused test suite and formatting checks:
pytest ruff check openadapt tests -
Open a pull request. The pull-request template lists the required release and source-boundary checks.
Guidelines
- Follow the existing code style.
- Test durable behavior and package contracts rather than ordinary copy.
- Keep changes focused and update the canonical documentation when behavior changes.
- Never place customer-derived data, deployment recipes, or secrets in a public fixture or package artifact.
Licensing and the open-core boundary
OpenAdapt is open-core. The public repositories (this launcher,
openadapt-flow, openadapt-capture, openadapt-desktop, and the other
openadapt-* engine repos) are MIT licensed: the mechanism and the public
interfaces are open. The hosted control plane (OpenAdapt Cloud) is a
proprietary commercial service, and certain data and empirical tuning stay
private by policy.
What this means for contributions to the public repos:
- Do not contribute application-specific recipes, customer fixtures, or
proprietary system identifiers derived from real deployments (for example,
automation content tied to a specific customer's EHR configuration). CI
runs
scripts/check_source_boundary.pyto reject that class of content. That script keeps no denylist of its own: it readssource-policy.public.json, a generated file rendered from OpenAdapt's canonical source-availability manifest. Do not edit the generated file by hand; a rule changes at its source, and the guard fails closed if the file is missing or incomplete. - Do not contribute deployment-derived corpora, tuned adversary parameters, thresholds, oracle or connector recipes, or datasets tied to real systems of record. Synthetic, reproducible fixtures are welcome.
- Do not copy or vendor GPL/AGPL/SSPL or otherwise non-MIT-compatible material into these repositories or their built packages.
- The OpenAdapt name and logo are trademarks and are not covered by the MIT License; see TRADEMARKS.md.
Developer Certificate of Origin
By submitting a contribution you certify the
Developer Certificate of Origin (DCO) 1.1:
that you wrote the contribution or otherwise have the right to submit it
under the MIT License. Signing off your commits (git commit -s) is
appreciated but the certification applies to every contribution regardless.
A Contributor License Agreement (CLA) is under consideration but has not been adopted; today the DCO plus the MIT License govern contributions.