# OliveTin's AI Policy

## Runtime:

- [x] The project does not include any AI functionality at runtime.
- [x] No data, usage, or similar is sent to, or analyized by AI.

## Development - Contributions

- [x] The project **does accept** contributions that were written with AI help. **However**:
  - The contribution must be attributed to a human username who takes responsibility for the code as if they wrote it themselves. 
  - AI often generates very unmaintainable code as it gets longer - loads of duplication, very little function re-use amd very poor at following style guides / idiomatic design. All code contributions (AI or not) are scrutinized hard for **maintainability** and **clean merging**. Please follow the CONTRIBUTORS guide. 
  - AI that helps with short tab completion is generally fine.
  - AI that writes lots of new code across lots of files, or makes lots of superfluous changes is generally less likely to be accepted.
  - Vibe coding is not a suitable way to contribute to this project. 
- [x] Contributors should declare when AI has been used to help write contributions in the pull request body message.
- [x] The project uses AI as an **optional** part of the PR process (coderabbitai). Please raise any concerns about usage within the PR.
  - [x] Suggestions from coderabbitai can be accepted verbaitem, but ideally it should be the PR author that uses coderabbitai as a guide, who then re-writes the contribution.
- [x] Maintainers are the only agents permitted to accept merges.

## Development - Build process

- [x] Linters, code review tools, and others which are enabled by AI are allowed, but cannot be added as part of the standard build process.

## Community

- [x] Only project admins are allowed to run bots in the community discord server (at the time of writing, the current bot, Japella, is not AI-enabled).
- [x] Support is currently not provided by AI.

## Training

- [x] You may use the OliveTin code base, documentation and repositories to train AI, but obviously usernames and personally identifiable information may not be stored.
