Updated triage guidelines and process for our AI policy
In May, we updated the guidelines for using AI tools when contributing to CPython. We now have an updated process for enforcing that the policy is upheld. This post explains how the process works and what to expect.
What's New
Triagers and core team members can now apply one of two labels to an issue or PR on the CPython repository. When they do, a bot posts a comment that explains why and links to the guidelines.
| Label | What happens |
|---|---|
| AI-needs-explanation | The bot asks the author to explain the contribution in their own words. The issue or PR stays open. |
| AI-guidelines-not-met | The bot explains that the contribution doesn't meet the guidelines, and closes it. |
Using AI tools is not, on its own, a reason for either label. Disclosing that you used AI tools is still appreciated, and it won't get your contribution labeled.
If you're a contributor
If your issue or PR gets AI-needs-explanation, please reply in your own words. Explain what the change does, or what the issue is about, and describe how you checked that it is correct. If that resolves the concern, the label is removed and the review carries on as usual. If there's no reply, or the reply doesn't address the concern, it may be closed with AI-guidelines-not-met.
If your issue or PR gets AI-guidelines-not-met, it is closed, but the conversation is not locked. If you think we misunderstood your contribution, reply on the issue or PR. You're welcome to explain your approach or ask questions about the guidelines.
Either way, a label is a request about one contribution. It is not a judgment about you. The guidelines page now has a section on what each label means and how to respond.
If you're a triager or core team member
- Start with AI-needs-explanation. Use AI-guidelines-not-met only for clear cases, such as a low-effort submission where the author is unlikely to engage with feedback.
- Keep one label at a time. When escalating, remove AI-needs-explanation and add AI-guidelines-not-met.
- Prefer the labels over closing by hand. Authors get the same explanation every time, and we can filter on the labels later to see how often they're used and whether they help.
- If in doubt, ask a core team member.
The full guidance is in the devguide under Applying the AI policy labels, and both labels are listed on the labels page.
The pull requests
- bedevere#722: the bot that posts the comments and closes issues and PRs.
- devguide#1933: documents the labels.
- devguide#1947: explains the process to contributors and adds the triage guidance, closing devguide#1935.
Thank you
Thank you to the core team members who discussed this during the Core Python Sprint and on Discord, and thanks to those who collaborated and contributed to the various PRs to implement this process change: @zanie @willingc @savannahostrowski @hugovk @Stanfromireland @zware @AlexWaygood
What's next
We will continue reviewing and updating this process as we learn what works. If something about the labels or the process doesn't work for you, as a contributor or as a maintainer, please reply here or open an issue on the devguide repo.
Thanks!
20 likes
Mentions
Updated triage guidelines and process for our AI policy In May, we updated the guidelines for using AI tools when contributing to CPython. We now have an updated process for enforcing that the policy is upheld. This post explains how the process works and what to expect. What's New Triagers and core team members can now apply one of two labels to an issue or PR on the CPython repository. When they do, a bot posts a comment that explains why and links to the guidelines. | Label | What happens | |---|---| | AI-needs-explanation | The bot asks the author to explain the contribution in their own words. The issue or PR stays open. | | AI-guidelines-not-met | The bot explains that the contribution doesn't meet the guidelines, and closes it. | Using AI tools is not, on its own, a reason for either label. Disclosing that you used AI tools is still appreciated, and it won't get your contribution labeled. If you're a contributor If your issue or PR gets AI-needs-explanation, please reply in your own words. Explain what the change does, or what the issue is about, and describe how you checked that it is correct. If that resolves the concern, the label is removed and the review carries on as usual. If there's no reply, or the reply doesn't address the concern, it may be closed with AI-guidelines-not-met. If your issue or PR gets AI-guidelines-not-met, it is closed, but the conversation is not locked. If you think we misunderstood your contribution, reply on the issue or PR. You're welcome to explain your approach or ask questions about the guidelines. Either way, a label is a request about one contribution. It is not a judgment about you. The guidelines page now has a section on what each label means and how to respond. If you're a triager or core team member - Start with AI-needs-explanation. Use AI-guidelines-not-met only for clear cases, such as a low-effort submission where the author is unlikely to engage with feedback. - Keep one label at a time. When escalating, remove AI-needs-explanation and add AI-guidelines-not-met. - Prefer the labels over closing by hand. Authors get the same explanation every time, and we can filter on the labels later to see how often they're used and whether they help. - If in doubt, ask a core team member. The full guidance is in the devguide under Applying the AI policy labels, and both labels are listed on the labels page. The pull requests - bedevere#722: the bot that posts the comments and closes issues and PRs. - devguide#1933: documents the labels. - devguide#1947: explains the process to contributors and adds the triage guidance, closing devguide#1935. Thank you Thank you to the core team members who discussed this during the Core Python Sprint and on Discord, and thanks to those who collaborated and contributed to the various PRs to implement this process change: @zanie @willingc @savannahostrowski @hugovk @Stanfromireland @zware @AlexWaygood What's next We will continue reviewing and updating this process as we learn what works. If something about the labels or the process doesn't work for you, as a contributor or as a maintainer, please reply here or open an issue on the devguide repo. Thanks!