Contribution

Contribution to the project is welcome! However, it must follow the code of conduct for the project.

Ways to Contribute

  • File bug reports and feature requests in the issue tracker. (Please try to avoid duplicate issues.)

  • Fork the repository and submit pull requests to improve the source code or documentation. Pull requests should follow the development guidance and standards below.

Language-specific templates add their own project links (issue tracker, repository, installation) on top of this skeleton.

Development

Requirements and Design

  • Review accepted capability requirements in openspec/specs/. Manage new capabilities, breaking or cross-cutting changes, architectural shifts, and substantial performance or security work through OpenSpec changes in openspec/changes/. Follow the project’s OpenSpec workflow instructions and keep accepted specifications synchronized when changes are completed.

  • Document stable subsystem architecture, design rationale, and local constraints in the nearest source-near README. Update the affected README when implementation structure or operational patterns change rather than recreating centralized architecture or specification mirrors under documentation/.

Guidance and Standards

  • Follow the development environment preparation and management instructions to ensure consistency with maintainer development environments and CI workflows.

  • Configure Git commit signing as required for all contributions. See the environment setup guide for configuration details.

  • Adhere to the development practices, code style, and testing guidelines to improve the probability of pull request acceptance.

  • Also consider the nomenclature advice for consistency and to improve the probability of pull request acceptance.

  • Run validation commands before submitting contributions. See the validation guide for available commands and workflow.

  • Prepare changelog fragments according to the releases guide as appropriate.

  • Although unnecessary for non-maintainer contributions, additional background can be found in the maintenance guide.

Language Overlays

Language-specific guidance lives alongside the common guides. Consult the overlay for the language you are contributing in, in addition to the guides above:

Artificial Intelligence

  • Contributions co-authored by large language models (LLMs) are welcome, provided that they adhere to the project guidance and standards above and are, otherwise, of good quality.