Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to Aivyx PA

Thanks for your interest in contributing. Aivyx PA is a single-operator
personal-agent platform by design (PRODUCT.md P1 + P6), but well-shaped
contributions — new channels, tools, and provider adapters that fit the existing
SDK surfaces — are welcome.

Before your first pull request, please read the one thing that is **required**:
the **Contributor License Agreement** in the next section. Everything else here
is the normal "how to work in this repo" guidance.

## 1. The Contributor License Agreement (required)

Aivyx PA is **source-available under [BUSL-1.1](LICENSE)** and is offered under a
dual model — **free for personal/non-commercial use, paid for commercial use**
(see [`COMMERCIAL.md`](COMMERCIAL.md)). For that model to be lawful, the project
must hold the right to license **all** of the code — including your
contributions — under both the BUSL-1.1 terms and separate commercial terms.

A plain "inbound = outbound" contribution does **not** give the project the right
to commercially sublicense your code. So, **before any contribution can be
merged, you must agree to the [Contributor License Agreement (`CLA.md`)](CLA.md).**
In short, the CLA: you keep your copyright, and you grant the Licensor a broad,
irrevocable license to use, relicense, and **commercially sublicense** your
contributions. Read [`CLA.md`](CLA.md) for the exact terms — it is short.

**How you agree:** every commit in your pull request must carry a
`Signed-off-by` trailer matching the author, added automatically by committing
with `-s`:

```sh
git commit -s -m "your message"
```

By signing off you certify the [Developer Certificate of Origin](#developer-certificate-of-origin)
**and** accept the [CLA](CLA.md) for that contribution. A maintainer cannot merge
a PR whose commits are not signed off. If you are contributing on behalf of an
employer, make sure you have their permission first (the CLA covers this).

> **Why this exists:** without it, the relicense and the commercial offering
> could not legally cover contributed lines. This gate must precede any external
> PR — see [`docs/LICENSING.md`](docs/LICENSING.md) §3.

## 2. Before you open a PR

1. **File an issue first** for anything beyond a small fix — describe the shape
   and let's agree on the approach before you build it.
2. **Architectural changes** that touch `DESIGN.md` or `PRODUCT.md` require a
   formal amendment under `docs/amendments/` (the process is established —
   thirteen have been filed). Open the discussion in the issue.
3. New channels / tools / adapters should fit the existing SDK surfaces
   (`docs/CHANNEL_SDK.md`, `docs/TOOL_SDK.md`).

## 3. Building & testing

Install the pre-commit hook once per clone, then run the full sweep before
pushing:

```sh
# Pre-commit hook (recommended once per clone)
./scripts/install-hooks.sh

# Full sweep — the workspace holds at zero warnings
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

# Python conformance suites (no daemon required)
python3 -m unittest discover examples/python-channel/tests
python3 -m unittest discover examples/python-tool/tests
```

The pre-commit hook runs `cargo clippy --workspace --all-targets -- -D warnings`
before every commit. PRs are expected to be clippy-clean and to keep
`cargo test --workspace` green.

## 4. Pull-request checklist

- [ ] Every commit is **signed off** (`git commit -s`) — see §1.
- [ ] You have read and accept [`CLA.md`](CLA.md).
- [ ] `cargo clippy --workspace --all-targets -- -D warnings` is clean.
- [ ] `cargo test --workspace` passes.
- [ ] Any `DESIGN.md` / `PRODUCT.md` change has an amendment under
      `docs/amendments/`.

---

## Developer Certificate of Origin

By making a contribution to this project, you certify the
[Developer Certificate of Origin 1.1](https://developercertificate.org/):

> 1. The contribution was created in whole or in part by you and you have the
>    right to submit it under the open source license indicated in the file; or
> 2. The contribution is based upon previous work that, to the best of your
>    knowledge, is covered under an appropriate open source license and you have
>    the right under that license to submit that work with modifications,
>    whether created in whole or in part by you, under the same license (unless
>    you are permitted to submit under a different license), as indicated in the
>    file; or
> 3. The contribution was provided directly to you by some other person who
>    certified (1), (2) or (3) and you have not modified it.
> 4. You understand and agree that this project and the contribution are public
>    and that a record of the contribution (including all personal information
>    you submit with it, including your sign-off) is maintained indefinitely and
>    may be redistributed consistent with this project and the requirements
>    stated above.

Your `Signed-off-by` line certifies the DOC above **and** accepts the
[CLA](CLA.md) for the signed contribution.