Skip to content

Latest commit

 

History

History
116 lines (89 loc) · 4.9 KB

File metadata and controls

116 lines (89 loc) · 4.9 KB

Contributing to OpenAdapt

Thank you for your interest in contributing to OpenAdapt!

Participation in this project is governed by the Code of Conduct.

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

  1. Fork and clone the repository.

  2. Create a focused branch from current origin/main.

  3. Install the launcher in development mode:

    python -m pip install -e '.[dev]'
  4. Run the focused test suite and formatting checks:

    pytest
    ruff check openadapt tests
  5. 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.py to reject that class of content. That script keeps no denylist of its own: it reads source-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.

Contributor License Agreement

A Contributor License Agreement is published: openadapt-flow/CLA.md for individuals, and openadapt-flow/CCLA.md for companies whose employees contribute on company time. It gives MLDSAI Inc. an explicit copyright and patent license, which the MIT License alone doesn't provide, and it keeps the option of relicensing the combined work later.

It is not enforced here yet. You don't agree to it by opening a pull request, and nothing is implied. You agree when you sign, either through the automated CLA check once that check is turned on for this repository, or by email. Until then the DCO and the MIT License are what govern your contribution.

The open-core boundary above is the reason this matters. Your contribution may end up in the proprietary products MLDSAI Inc. builds on this code. The MIT License already permits that. The CLA says it out loud so nobody is surprised.

Questions?