diff --git a/content/contributing/index.md b/content/contributing/index.md index f9d80af..9498590 100644 --- a/content/contributing/index.md +++ b/content/contributing/index.md @@ -3,6 +3,9 @@ Thank you for considering contributing to Pallets! There are many ways to contribute to an open source project, see the next section for more ideas. +All contributors and contributions must follow our our +[Code of Conduct](../code-of-conduct.md) and [LLM and AI Policy](llm-ai.md). + If you would like to ask a question or open an issue or feature request, see these guides: diff --git a/content/contributing/llm-ai.md b/content/contributing/llm-ai.md new file mode 100644 index 0000000..affe688 --- /dev/null +++ b/content/contributing/llm-ai.md @@ -0,0 +1,76 @@ +# LLM and AI Policy + +Pallets is affected by a large increase in low quality contributions generated +with LLM (large language model) or "AI" (artificial intelligence) tools. This +adds to maintainer burden and reduces their available time. Our policy on these +tools focuses on the human aspect of contribution and growth. + +## Summary + +* This policy applies to all interactions with our projects and community, not + only code and pull requests. +* We value contributions that are genuinely understood, created, and + communicated by humans. +* If your contribution appears generated by LLM or AI tools, or you attempt to + obfuscate that, it will be closed and you are likely to be blocked. +* Perfection is never required. Your own words and abilities are enough. Do not + use LLM tools to translate or "improve" what you say and do. +* You must carefully consider social, environmental, and quality issues with + LLMs before deciding to use them. + +## Explanation + +This policy applies to all interactions with our projects and community, not +only code and pull requests. This includes code, documentation, tests, PR +descriptions, comments, reviews, answers, and all other interactions. + +We strongly encourage everyone to participate and contribute without using LLM +or AI tools. If your contribution looks like it was generated by such tools, or +you attempt to obfuscate that, it will be closed and you are likely to be +blocked. + +This policy focuses on trust and quality, but there are numerous other +issues with the social, ethical, resource, and environmental impacts of LLM +development and use. Deciding to use LLM tools associates you to some degree +with all these issues, and is a personal moral decision you must carefully +consider first. + +The open source participation model is based on trust. Maintainers build trust +in new contributors over time as they recognize good contributions from them; +contributors build trust in projects based on the activity they observe as well. +Maintainers lose trust in a contributor when they recognize common patterns of +low quality participation or continued low quality contributions. + +When you choose to use an LLM tool to generate output, you look like every other +person who did so, rather than a unique contributor. Therefore, you inherit the +distrust maintainers have based on every prior low quality interaction that +looked exactly like yours. + +You may feel pressured to use these tools for many reasons. LLM output +looks professional and believable by design. It can be hard as an individual to +see issues with what it generates. As maintainers who see this constantly, the +context we have is very different, and it becomes much easier to spot. At scale, +even though any one LLM-generated contribution may be correct, we do not have +the time or energy to distinguish it from the 10 incorrect ones that look just +like it. + +If you are a new contributor, do not use LLM or AI tools to contribute at all; +you do not have the trust or experience to take responsibility for what is +generated. If you are someone who is familiar to the maintainers, and know that +they already trust you to make high quality contributions, your contribution +must still genuinely be understood and created personally by you, regardless of +what tools you may use to assist you. + +Your own abilities are enough. From more than a decade of experience, we know +that everyone is capable of taking an issue, debugging it, and coming up with a +fix. It's ok if that process requires you to ask us questions. It is ok if that +process takes time; work on your schedule. It is ok if we have significant +review feedback. It is ok if we decide to close an issue or PR after you work on +it, that's not a negative outcome. High quality does not require perfection. + +Your own words are enough. It is ok if your writing has typos and does not have +perfect spelling and grammar. It is ok if English is not your primary language; +use a traditional translation tool if needed. We are used to reading all that, +and value hearing from you as directly as possible. Putting your words through +an LLM tool for translation or "improvement" will produce output you didn't +intend and will be unable to review. diff --git a/content/contributing/pr.md b/content/contributing/pr.md index 596705f..4808964 100644 --- a/content/contributing/pr.md +++ b/content/contributing/pr.md @@ -14,13 +14,14 @@ set up your development environment and run tests. This guide assumes you've done that and used the GitHub CLI to fork and clone the repository and add the upstream remote. -## AI-Generated Contributions +## LLM-Generated Contributions -AI-generated PRs and issues are closed on sight, without review or discussion. -This applies regardless of code quality or correctness. +Using LLM or AI tools to generate PRs is not allowed. They are closed on sight, +without review or discussion. This applies regardless of code quality or +correctness. See our [LLM and AI Policy](llm-ai.md). -AI-generated contributions must not be revived, cleaned up, or used as a base -for further work. Starting a new PR "on top of" a closed AI submission counts +LLM-generated contributions must not be revived, cleaned up, or used as a base +for further work. Starting a new PR "on top of" a closed LLM submission counts as laundering and will be treated the same way. ## Create a Branch