AI Usage Policy#
We understand that many people are using AI coding tools such as ChatGPT, Claude, Copilot, Gemin, etc.
For Avogadro, code needs to be correct particularly for science-related topics. The force fields, the molecular dynamics, molecular surfaces, orbitals, etc. need substantial human intervention and review. Such tools can make mistakes in chemistry and numeric code, which require careful analysis and testing.
Important
We reserve the right to reject contributions that seem like they were generated mostly by an ML tool, and code review will continue, particularly for any chemistry-specific or mathematical components.
We are inspired in part by “the five levels of use of AI coding tools, as described by Dan Shapiro.
Spicy autocomplete, aka original GitHub Copilot or copying and pasting snippets from ChatGPT.
The coding intern, writing unimportant snippets and boilerplate with full human review.
The junior developer, pair programming with the model but still reviewing every line.
The developer. Most code is generated by AI, and you take on the role of full-time code reviewer.
The engineering team. You’re more of an engineering manager or product/program/project manager. You collaborate on specs and plans, the agents do the work.
The dark software factory, like a factory run by robots where the lights are out because robots don’t need to see.
Our policy is that “levels 0 and 1 are probably fine” and further levels are not 🛑.
Several useful examples:
using an AI tool to summarize code or provide examples (e.g., to help learn GLSL shaders) is fine, provided that any contributed code is implemented and reviewed by a human.
discussing a high-level plan that’s implemented by humans / level 0 seems okay, e.g., “can you help me plan mechanisms to provide a simple security sandbox for scripts. What are some pros and cons of the different approaches?”
using various AI tools to help code review (e.g., CodeRabbit seems useful but does not replace human review)
using an AI tool to guide debugging / bug fixing – that’s implemented by humans (e.g. “there seems to be a race condition in the properties dialog during vibration, can you suggest some possible solutions?”)
If you have questions, please ask on our forum