-
Notifications
You must be signed in to change notification settings - Fork 399
Add the Bevy Org's AI Policy #2204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
3f4c01c
Add the Bevy Org's AI policy.
james7132 6304884
Change weight
james7132 ef3f56f
Add a copy of the Code of Conduct to the Polciies section
james7132 4a2b571
a -> an
james7132 f2ef727
Spelling
alice-i-cecile 4e315c9
Whitespace
alice-i-cecile b5904cf
Expand `S-Nominated-to-Close` guidance.
james7132 26ed961
Typo
alice-i-cecile 0f8db62
Apply suggestions from code review
james7132 560c4c5
Reword legal argument
james7132 7f2c1d4
Reword some additonal parts for clarity
james7132 6a71b4e
Formatting
james7132 b6e22af
More formatting
james7132 697e39c
Add mention of the case where the generated code may be owned by othe…
james7132 87bca36
mdformat the file
james7132 19f8199
Add more open legal questions to reinforce the point about this not b…
james7132 2742d87
Grammar
james7132 86e0db9
Typo
james7132 978c7ec
space
james7132 bf3f5b7
Fix frontmatter
james7132 5997178
Fix missing CI toolchain components
james7132 aef3947
Minor tweaks
cart 71ca2c8
Merge remote-tracking branch 'origin/main' into pr/james7132/2204
cart File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
+++ | ||
title = "Policies" | ||
template = "docs.html" | ||
redirect_to = "/learn/contribute/policies/ai" | ||
[extra] | ||
weight = 4 | ||
+++ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
+++ | ||
title = "AI Policy" | ||
insert_anchor_links = "right" | ||
[extra] | ||
weight = 1 | ||
+++ | ||
|
||
In recent times, there have been a growing number of contributions that are | ||
fully or partially produced by generative AI (e.g. large language models and | ||
friends) which exhibit characteristics that result in undue extra work for other | ||
contributors and maintainers. While we've seen PRs and issues with these | ||
characteristics produced entirely by humans, generative AI tools have | ||
significantly lowered the level of effort required to produce | ||
"plausibly-worthwhile" contributions that are otherwise entirely unmergable or | ||
incorrectly report bugs, and so have become a major source of burdensome PRs and | ||
issues. | ||
|
||
Whether AI generated code is subject to copyright protection is also a | ||
hot-button legal topic that is still being openly debated and litigated. How | ||
this impacts the legal aspects of maintaining a FOSS project is currently an | ||
unresolved question. | ||
|
||
This policy is established as a response targeted at the problem of an | ||
increasing frequency of burdensome PRs/issues and to address the potential legal | ||
issues currently surrounding the intersection of AI generated code and the FOSS | ||
contribution model. | ||
|
||
## AI Generated Communications | ||
|
||
The unsolicited use of automated systems to communicate issues, bugs, or | ||
security vulnerabilities about Bevy Organization projects under the guise of a | ||
human is considered unacceptable and a Code of Conduct violation. Any individual | ||
contributor, operator of automated systems, or company they may represent may be | ||
barred from future contributions and banned from regular communication channels, | ||
especially if these communications were found to be submitted in bad faith. | ||
|
||
This policy applies to all regular channels of communication used by members of | ||
the Bevy Organization, including but not limited to GitHub Issues, GitHub Pull | ||
Requests, Discord, other social media platforms, etc. | ||
|
||
We recognize that English may not be the primarily language for all contributors | ||
and that machine translation is an indispensable tool for proper collaboration. | ||
Therefore machine translation is not subject to the above policy. The community | ||
recommends that you instruct the LLM to produce a concise output or use non-LLM | ||
machine translation options, as they tend to be less verbose while still getting | ||
the point across. | ||
|
||
## AI Generated Contributions and Copyright | ||
|
||
At the current time of writing (August 11th, 2025), the US Copyright Office has | ||
[stated publicly][us-copyright-office-response] that "human authorship is a | ||
pre-requisite to copyright protection". A | ||
[more recent report][us-copyright-office-report] from the same institution shows | ||
a much more contested legal space, both within the US and internationally. | ||
Unanswered open questions in the space include, but are not limited to: | ||
|
||
- In the case that AI generated works are protected under copyright, would AI | ||
generated works be considered derivatives of any input to the model, including | ||
but not limited to: the model's training dataset, the dataset used for fine | ||
tuning the model, any data fetched during retrieval augmented generation | ||
(RAG), or extra context provided to the model in the prompt? | ||
- If AI generated works are considered derivative works, do the FOSS licenses | ||
currently in use by the Bevy Organization have the language and legal | ||
framework to provide the same guarantees and protections to both the licensor | ||
and licensee? | ||
- In the case that AI generated works are protected under copyright, who owns | ||
the copyright to the generated work? Is it the user that requested the | ||
generation? The owner of the LLM model or service? Who holds the rights to | ||
license out the generated work for use in open source projects? Is the | ||
copyright transferable through the same legal framework that exists for works | ||
that were not AI generated? | ||
- If there is a minimum threshold of human contribution to a combined work | ||
derived from AI-generated works for it to be considered copyrightable, where | ||
does that threshold lie, and is it consistently applicable to all types of | ||
contributions that Bevy Organization accepts? | ||
- Does the local law in various countries and jurisdictions around the world | ||
provide consistent answers to all of the questions above? | ||
|
||
Until there are well established answers to these questions, the use and/or | ||
distribution of AI-generated code and assets may constitute copyright | ||
infringement or may be subject to licensing terms incompatible with the FOSS | ||
licenses used by the Bevy Organization. | ||
|
||
Erring on the side of caution in light of a openly debated legal topic, all[^1] | ||
forms of AI-generated contributions cannot be merged into repositories | ||
maintained by the Bevy Organization. This includes both code and non-code game | ||
assets (e.g. textures, audio, etc). | ||
|
||
Any triage team member suspecting a pull request to be made primarily through | ||
the use of large language models or other generative tools should mark the PR as | ||
`S-Nominated-to-Close` , upon which a maintainer can then review the PR for | ||
closure. To help identify these cases, pull requests subject to this policy have | ||
characteristics such as (but not limited to): | ||
|
||
- Needlessly or overly verbose descriptions or responses. | ||
- Not internally coherent or even self-contradictory. | ||
- Demonstrates misunderstanding of important aspects of what the code is doing | ||
or the purpose of the change. | ||
|
||
Any contributor, operator of automated systems, or company they may represent | ||
found to have repeatedly submitted contributions with majority AI-generated code | ||
or assets may be subject to: | ||
|
||
- Blanket rejection of all future contributions to Bevy Organization projects. | ||
- Retroactive removal of any potentially suspect AI-generated code and asset | ||
contributions. | ||
- Further Code of Conduct actions if these contributions were found to be | ||
submitted in bad faith. | ||
|
||
This policy may be revisited when the legal debate has settled. | ||
|
||
\[^1\]: Trivial LLM generated content such as variable renames or autocompleted | ||
function calls, often branded "predictions" or "suggestions", that is otherwise | ||
indistinguishable from traditional methods such as a regex search/replace or an | ||
LSP autocompletion is by definition not detectable and can be treated like other | ||
regular IDE tools such as Intellisense. This does not include cases where the | ||
prediction generates things like entire function blocks. | ||
|
||
[us-copyright-office-report]: https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf | ||
[us-copyright-office-response]: https://www.copyright.gov/rulings-filings/review-board/docs/a-recent-entrance-to-paradise.pdf |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
+++ | ||
title = "Code of Conduct" | ||
insert_anchor_links = "right" | ||
[extra] | ||
weight = 1 | ||
+++ | ||
|
||
_This Code of Conduct is based on the [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct), which is adapted from the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling) and the [Contributor Covenant](https://www.contributor-covenant.org)._ | ||
|
||
## Our Pledge | ||
|
||
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. | ||
|
||
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. | ||
|
||
## Our Standards | ||
|
||
In this community we strive to go the extra step to look out for each other. Don’t just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they’re off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely. | ||
|
||
And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make your fellow Rustaceans comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust. | ||
|
||
* Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all. | ||
* Please be kind and courteous. There’s no need to be mean or rude. | ||
* Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer. | ||
* Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works. | ||
* We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term “harassment” as including the definition in the [Citizen Code of Conduct](https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md); if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups. | ||
* Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact the maintainers immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back. | ||
* Do not make casual mention of slavery or indentured servitude and/or false comparisons of one's occupation or situation to slavery. Please consider using or asking about alternate terminology when referring to such metaphors in technology. | ||
* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome. | ||
|
||
## Moderation | ||
|
||
These are the policies for upholding [our community’s standards of conduct](#our-standards). If you feel that a thread needs moderation, please contact the maintainers. | ||
|
||
1. Remarks that violate the community standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner). | ||
2. Remarks that maintainers find inappropriate, whether listed in the code of conduct or not, are also not allowed. | ||
3. Maintainers will first respond to such remarks with a warning. | ||
4. If the warning is unheeded, the user will be “kicked,” i.e., kicked out of the communication channel to cool off. | ||
5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded. | ||
6. Maintainers may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology. | ||
7. If a maintainer bans someone and you think it was unjustified, please take it up with that maintainer, or with a different maintainer, in private. Complaints about bans in-channel are not allowed. | ||
8. Maintainers are held to a higher standard than other community members. If a maintainer creates an inappropriate situation, they should expect less leeway than others. | ||
|
||
The enforcement policies in the code of conduct apply to all official venues, including Discord channels, GitHub repositories, the Twitter community and all other forums. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -91,6 +91,12 @@ Some reasons to apply `D-Trivial` include: | |
2. Moving a file from one location to another. | ||
3. Small changes to documentation or error messages. | ||
|
||
Some reasons to apply `S-Nominated-to-Close` include: | ||
|
||
1. The PR is no longer needed. | ||
2. The PR has serious flaws and has not attracted any support from reviewers. | ||
3. The PR shows signs that it was AI generated, which is a volation of our [AI Policy][ai-policy]. | ||
|
||
Remember that difficulty labels are for expertise required to either solve an issue or review a pull request. By labeling an issue as `D-Trivial`, you are marking it as a good first issue for new contributors to the Bevy project. | ||
|
||
## Closing PRs and Issues | ||
|
@@ -118,6 +124,7 @@ There are several paths for PRs to be closed: | |
6. In the case of PRs where some members of the community, other than the author, are in favor, and some are opposed, any two relevant SMEs or Maintainers may act in concert to close the PR. | ||
7. For a PR that has been sitting for a while and became bitrotten, check with the original author if they intend to continue working on it. If not, or without a response, the PR can be labeled with `S-Adopt-Me`, and closed. Tracking adoption progress will happen in a linked issue. | ||
8. Inactive `X-Controversial` can be closed if relevant SMEs or Maintainers have decided there's no more interest for it. If it's still interesting and controversial, a decision must be made. | ||
9. Majority AI-Generated PRs cannot be merged as per the Bevy org's [AI policy][ai-policy]. Please mark these PRs as `S-Nominated-to-Close` for maintainers to make a final decision. | ||
|
||
When closing a PR, check if it has an issue linked. If it does not, you should strongly consider creating an issue and linking the now-closed PR to help make sure the previous work can be discovered and credited. | ||
|
||
|
@@ -167,3 +174,4 @@ Members of the Triage Team within the Bevy organization have permissions to labe | |
If that applies to you, then feel free to ask a Maintainer on [Discord] or email <[email protected]>. Everyone is welcome to do this. We generally accept membership requests, so don't hesitate if you are interested! | ||
|
||
[Discord]: https://discord.gg/bevy | ||
[ai-policy]: /learn/contribute/policies/ai |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.