Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ If this change fixes an issue, please:

- [ ] Add text like ``closes #XYZW`` to the PR description and/or commits (where ``XYZW`` is the issue number). See the [github docs](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) for more information.

> [!IMPORTANT]
> **Unsupervised agentic contributions are not accepted**. See our [AI/LLM-Assisted Contributions Policy](https://github.com/pytest-dev/pytest/blob/main/CONTRIBUTING.rst#aillm-assisted-contributions-policy).

- [ ] If AI agents were used, they are credited in `Co-authored-by` commit trailers.

Unless your change is trivial or a small documentation fix (e.g., a typo or reword of a small section) please:

- [ ] Create a new changelog file in the `changelog` directory, with a name like `<ISSUE NUMBER>.<TYPE>.rst`. See [changelog/README.rst](https://github.com/pytest-dev/pytest/blob/main/changelog/README.rst) for details.
Expand Down
69 changes: 69 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,75 @@ where someone becomes unresponsive after months of contact attempts.
As stated, the objective is to share maintenance and avoid "plugin-abandon".


.. _ai-contributions:

AI/LLM-Assisted Contributions Policy
-------------------------------------

We welcome contributions from all developers, including those who use AI/LLM tools
as part of their workflow. However, we have requirements to protect the time
and effort of our reviewers:

**Purely agentic contributions are not accepted.** Pull requests that are entirely
generated by AI agents, with no meaningful human review, understanding, or oversight,
will be closed. Every contribution must demonstrate that a human has reviewed,
understood, and taken responsibility for the changes. If you submit it, you own it.

**You are responsible for your contribution.** Regardless of how the code was
produced, the person submitting a pull request must understand the changes and be
able to respond to review feedback. If a reviewer asks questions or requests changes,
they expect to interact with someone who can engage substantively, not an automated
loop replaying prompts.

**Credit AI tools via attribution.** If AI agents helped produce your code or
commits, consider adding ``Co-authored-by`` trailers to your commit messages to
credit them. This is not required, but helps reviewers set expectations and is
appreciated.

**Respect maintainer time.** Submitting low-effort AI-generated pull requests that
waste reviewer time may result in a ban from the project. Our maintainers are
volunteers, and contributions should reflect genuine engagement with the project.


Context
~~~~~~~

With the advent of unsupervised agentic tools like OpenClaw,
there has been a rise in low-quality contributions
where an agent produces a large number of low-quality pull requests.
Oftentimes this can look similar to a human beginner with new access to tools
and trying to learn, but in practice it is usually an unsupervised agentic tool
generating changes without meaningful human review.

When a human contributor is learning, we are glad to invest time to help,
give feedback, and guide them in the right direction. With fully agentic,
unsupervised tools, that same review effort does not support anyone's learning
or growth. Instead, it diverts limited maintainer time away from improving the
project and supporting engaged contributors.

There is also an asymmetry at play: someone is prioritizing what we review
without making an equivalent investment of time or effort.
When a contributor works on an issue themselves, they invest real time, effectively
earning influence over what the project focuses on. Unsupervised agentic contributions
expect to set that priority at near-zero cost to the sender, while shifting the
entire burden onto maintainers.

Fully agentic contributions invert the intended benefit of these tools: rather than
saving time, they create avoidable review and triage work. There is no accountable
human author thoughtfully iterating on feedback, only automated output driven
by prompts.

From our own experience using coding agents, we know they must be carefully prompted,
supervised, and checked by humans. Even modern models can make serious mistakes when
operating at framework or tooling level, and those mistakes can be subtle and
time-consuming to diagnose.

Running such tools unsupervised on open-source projects imposes this cost on
maintainers and other contributors without their consent. Our goal with this policy
is to set clear expectations, protect reviewer time, and ensure that contributions
remain collaborative, respectful, and sustainable.


.. _`pull requests`:
.. _pull-requests:

Expand Down