|
| 1 | +# Welcome! |
| 2 | + |
| 3 | +Thank you for your interest in contributing to Agent Client Protocol! We welcome new contributors and are glad that you want to contribute to our project. This document explains how to get involved, what we expect from contributors, and how we work together. |
| 4 | + |
| 5 | +## Ways to contribute |
| 6 | + |
| 7 | +We welcome many different types of contributions including: |
| 8 | + |
| 9 | +- New features |
| 10 | +- Builds, CI/CD |
| 11 | +- Bug fixes |
| 12 | +- Documentation |
| 13 | +- Issue Triage |
| 14 | +- Answering questions on Slack/Mailing List |
| 15 | +- Web design |
| 16 | +- Communications / Social Media / Blog Posts |
| 17 | +- Release management |
| 18 | + |
| 19 | +## Getting Started |
| 20 | + |
| 21 | +To get started, make sure you have the following installed: |
| 22 | + |
| 23 | +- [Rust](https://www.rust-lang.org/) |
| 24 | +- [Node.js](https://nodejs.org/) |
| 25 | + |
| 26 | +The schema files in the `/schema` directory are generated from the Rust code in the `rust` directory. You can always generate the latest schema files by running `npm run generate` which will also format the files for you. |
| 27 | + |
| 28 | +Spellchecking is done via `npm run spellcheck`. |
| 29 | + |
| 30 | +Tests are run via `cargo test`. |
| 31 | + |
| 32 | +Unreleased features will be behind an `unstable` feature flag in the Rust crate. |
| 33 | + |
| 34 | +If you notice a bug in the protocol, please file [an issue](https://github.com/agentclientprotocol/agent-client-protocol/issues/new?template=05_bug_report.yml) and we will be in touch. |
| 35 | + |
| 36 | +## Coding Standards |
| 37 | + |
| 38 | +For our Rust code, we use [rustfmt](https://github.com/rust-lang/rustfmt) and [clippy](https://github.com/rust-lang/rust-clippy) to enforce a consistent style and catch common mistakes. |
| 39 | + |
| 40 | +For other files, like docs and schema files, we use [prettier](https://prettier.io/) to enforce a consistent style. |
| 41 | + |
| 42 | +Our CI jobs will make sure all new changes fit these coding standards. |
| 43 | + |
| 44 | +New features should be documented before being stabilized and released to users. |
| 45 | + |
| 46 | +Feel free to add tests for any portion of the schema files that would benefit, we'll make sure these run in CI as well. |
| 47 | + |
| 48 | +## RFD Process |
| 49 | + |
| 50 | +Before a significant change or addition to the protocol is made, you should likely open an RFD (Request for Dialog) following [our RFD process](https://agentclientprotocol.com/rfds/about) to get feedback on your proposed changes before you do a lot of implementation work. This helps ensure that your changes align with the project's goals and should help avoid the frustration of doing work that may not be accepted. |
| 51 | + |
| 52 | +## Pull Request Process |
| 53 | + |
| 54 | +1. Ensure your branch is up to date with the main branch. |
| 55 | +2. Open a pull request with a clear title and description. |
| 56 | +3. At least one maintainer must review and approve the change before merging. |
| 57 | +4. Maintainers may request changes or clarifications – this is part of the process. |
| 58 | +5. Once approved, a maintainer will merge your pull request. |
| 59 | + |
| 60 | +## Asking For Help |
| 61 | + |
| 62 | +If you’re unsure about anything, feel free to reach out! The best way to reach us with a question when contributing is to ask on: |
| 63 | + |
| 64 | +- The original GitHub issue or discussion thread |
| 65 | +- Slack |
| 66 | + |
| 67 | +## Code of Conduct |
| 68 | + |
| 69 | +All contributors are expected to follow the project’s [Code of Conduct](CODE_OF_CONDUCT.md). |
| 70 | + |
| 71 | +Please treat others with respect, foster an inclusive environment, and help keep this a welcoming project for everyone. |
| 72 | + |
| 73 | +## Contribution Policy |
| 74 | + |
| 75 | +This project does not require a Contributor License Agreement (CLA). Instead, contributions are accepted under the following terms: |
| 76 | + |
| 77 | +> By contributing to this project, you agree that your contributions will be licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). You affirm that you have the legal right to submit your work, that you are not including code you do not have rights to, and that you understand contributions are made without requiring a Contributor License Agreement (CLA). |
0 commit comments