Aviary’s AI Policy#

Use of generative artificial intelligence (i.e. LLMs) to produce code for Aviary is allowed, but contributions must follow the following guidelines. If you wish to use AI to assist in contributing code to Aviary, we recommend sticking to limited, targeted uses to speed up development time for repetitive or straightforward tasks, or to limit AI use to a advisory role and not for writing large amounts code. Extensive use of AI-generated code can lead to large, fragmented, and difficult to maintain codebases.

However, this advice is based on experience using current-generation AI models, and as these tool’s capabilities improve we may revise our recommendations.

1. Disclose any use of AI#

Any use of AI tools should be clearly disclosed. It is helpful to separate AI-generated code into their own commits whenever possible. Mention that AI was used in the commit messages. Give additional details in your pull request descriptions about how AI was used. Include a brief explanation of what you used the AI for (debugging, generating new code, etc.), which model you used, and which files were affected (specify line numbers).

2. Thoroughly test all AI-generated code#

Like all code contributions, it is important to run all unittests and benchmark tests on as many different OS and environment configurations as you reasonably can - this goes double for any changes that used AI assistance. If any code generated by AI is not explicitly tested by a unittest, you should write a new test to cover the AI generated code. If AI modifies existing code, especially if new functionality is added, existing unittests should be extended to test that new functionality.

3. AI should never be used as a source for data#

Generative AI, as the name implies, is not a tool that is good at “fetching” information - it generates a best guess for what you asked for. Therefore, it is extremely unreliable as a source of “truth” data. AI should not be used as the source of numerical data, such as default values, constants/conversion factors, aircraft performance data, or similar.

4. Do not use AI for documentation#

AI tools should not be used for documentation. Accuracy is the highest priority for the documentation, and the risk of hallucinations with LLMS when trying to parse such a large and complex codebase is not acceptable. Any AI written documentation pages will be rejected. We would rather a feature go undocumented than be documented incorrectly.

5. Use common sense when using AI tools#

In general, you should never just accept and copy/paste code an AI tool gives you. All AI-generated code should be reviewed and understood before you commit it.

The key takeaway is that you should always fully understand your code before submitting it to Aviary, no matter how it was created.