Skip to content

GitHub: Require PR authors to disclose AI usage#12648

Merged
F0bes merged 1 commit into
masterfrom
ai-slop-pr-template
May 12, 2025
Merged

GitHub: Require PR authors to disclose AI usage#12648
F0bes merged 1 commit into
masterfrom
ai-slop-pr-template

Conversation

@F0bes
Copy link
Copy Markdown
Member

@F0bes F0bes commented May 11, 2025

Description of Changes

Add a "Did you use AI blah blah blah" disclosure question for PR authors to answer.

I want this to be a little bit of an RFC. Does anyone else agree / disagree?

Rationale behind Changes

Unfortunately open source seems to be experiencing a increasingly common pattern of AI slop in many forms. Such as bogus CVE reports and pull requests. Avoiding the politics involved with its usage, it's just incredibly time consuming for us when it's used improperly. It would be nice to know when to put on my BS glasses.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds a disclosure question to the PR template so that authors can indicate whether they used AI for finding, testing, or implementing changes.

  • Introduced a new question prompting authors to disclose AI usage.
  • Updated the PR template file to include checkbox options for both AI usage and non-usage.

@RedDevilus
Copy link
Copy Markdown
Contributor

The problem is if people lie when they use it, how do you catch them. Also giving besides the benefit of doubt, other people might also use this as an attack for newbie/overzealous coders. I understand the idea ,but will it bring a better environment to the GitHub?

Even well intentioned I won't be surprised if you don't see difference between AI and people who have various degrees of coding. It's also not uncommon to receive help from multiple people to guide with code and is that also in contention by then?

Will it be used as a gotcha like they checked the box did you use it and then they said no on the checkbox but said yes in the comments or got caught in a credible manner. On the other end some legit coders might feel pressured or feel offended on just the implication alone.

Though it does remind me of that time when a Hacktober (October month where people could contribute to multiple repos to win a T-shirt or something) was a mess of doing low-effort or troll commits. So in that case is the essence getting rid of bad PRs in general?

I do get the frustration, and I'm not totally sure if including this or not will truely help alleviate the workflow bottlenecks so to speak.

@Mrlinkwii
Copy link
Copy Markdown
Contributor

i think its a very good idea , but as red has mentioned , we probably have to vigilant if/when people lie

@F0bes
Copy link
Copy Markdown
Member Author

F0bes commented May 11, 2025

The problem is if people lie when they use it, how do you catch them.

People are always going to lie, this is not going to fix that. The largest issue I'm trying to prevent is the possibility of wasting my own or other reviewers time trying to figure out if someone knows something I don't while I review their hallucinated code.

Other people might also use this as an attack for newbie/overzealous coders.

I don't understand this point. If a newbie uses AI and discloses it and it looks completely wrong to the reviewer, the solution isn't to attack them. If a reviewer is attacking PR authors, that isn't the fault of this change. If the reviewer holds authority, that is the fault on us (the PCSX2 team) for allowing someone who represents us to attack others. If the reviewer is just a random person, then we would follow the normal moderation procedure against individuals who exhibit toxic behaviour.

Even well intentioned I won't be surprised if you don't see difference between AI and people who have various degrees of coding.

This is essentially the original point in different words. People are always going to lie, this is not going to fix that.

Will it be used as a gotcha like they checked the box did you use it and then they said no on the checkbox but said yes in the comments or got caught in a credible manner.

Yes. If you check no and then it is found with absolute confidence through interpretation of your code changes, or by your own admission after the fact, that you did use AI, you will be at worst blocked permanently from our GitHub organization. I don't want your (probably wrong) code if you're going to lie to my face.

On the other end some legit coders might feel pressured or feel offended on just the implication alone.

I'm confident that an intermediate programmer can understand why we have have them check that box. If there happens to be a developer out there who gets offended at it, I don't know what to tell them. They must be one of those "Digital Nomads" who happens live under a rock.

So in that case is the essence getting rid of bad PRs in general?

If someone ran the entire codebase through an LLM, asked it to find a bug and propose a PR (this happens), and they see that we require AI disclosure and decide to not PR it out of lack of confidence, that is a win in my eyes.

@AmandaRoseChaqueta
Copy link
Copy Markdown

I 100% agree with this, specially with how a lot of the code used to train those LLMs are probably not very legal. OpenAI and ChatGPT already got on trouble multiple times due to copyright issues.

@chaoticgd
Copy link
Copy Markdown
Member

This is a required.

should probably be

This is required.

or

This is a required field.

Also, I'd probably put it at the bottom instead.

@TheTechnician27
Copy link
Copy Markdown
Contributor

  • Discourages people from using LLM slop, knowing that we don't want it. (The honest ones realize the problem is detrimental enough that we had to add a disclosure; the dishonest ones are more afraid of increased vigilance since the problem is pervasive enough that we hadd to add a disclosure.)
  • For the honest people who do still want to forge ahead, it gives them an easy, standardized way to say "Hey, please be extra careful checking my work."
  • People who are caught lying on the disclosure form and raise a fit about it can be banned from contributing indefinitely because "hey, we asked". There's no real case for "But I didn't know!"
  • Takes two seconds for a PR that at minimum took like 300x as long to write, compile, and test.

sgtm

@TheTechnician27
Copy link
Copy Markdown
Contributor

@F0bes If we do have a checkbox about AI stuff, would it be reasonable to have a second entry to the effect of "If you did use AI, what did you use it for? Select all that apply." And we can have stuff like linting, boilerplate, identifying a bug, identifying the solution to the bug, writing the PR summary, etc.

@F0bes
Copy link
Copy Markdown
Member Author

F0bes commented May 12, 2025

That was the point of the (please explain briefly) when you check yes.
I'd rather just hear it from the author's own words. It'll be easier for them, and it might let us gauge their perspective of their AI usage.

@RedDevilus
Copy link
Copy Markdown
Contributor

The most important thing if they use it is that they tested they work and get the logic, but it's the same with electrical bikes (still need to be able to drive well with mechanical). A ton of people use it as they don't feel confident or don't have enough experience. It is that last part that just begets annoyance for seemingly random or even broken changes to code. If it's a nitpicky PR it can still be discussed if it's a bonus for the project of course.

I hope that people understand it's just getting rid of well let's just say bad actors and not people who need a guiding hand. I care more about how de facto outcome will improve the situation then just a click and forget thing. But that's something we have to test over the upcoming months and what-ifs don't really help being against or for it.

In the end it's a tool ,but with a lot of things you don't use a hammer where you need a screwdriver. If it's just getting an idea or inspiration or pointing to correct location is totally different than saying give me all the code changes and give me the result which won't make you grow either or become a better coder.

@JordanTheToaster JordanTheToaster added this to the Release 2.4 milestone May 12, 2025
@F0bes F0bes force-pushed the ai-slop-pr-template branch from 4073b71 to 28a234e Compare May 12, 2025 22:10
@F0bes
Copy link
Copy Markdown
Member Author

F0bes commented May 12, 2025

This is a required.

should probably be

This is required.

or

This is a required field.

Also, I'd probably put it at the bottom instead.

Thanks for pointing that out.

@F0bes F0bes merged commit 529c756 into master May 12, 2025
21 of 22 checks passed
@turtleDev
Copy link
Copy Markdown

turtleDev commented May 13, 2025

This is an interesting discussion.

Companies are actively pushing devs to use AI code editors to increase throughput. Although I have my own reservations against it, it's hard to articulate the reason why it adds to our problems rather than subtracting from it.

@lightningterror lightningterror deleted the ai-slop-pr-template branch May 17, 2025 23:22
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request May 18, 2025
-------------------------------------------------------------------------------------
azahar.mk 7211d2ce55021bcae14e4ecb5d62990d13f05221 # Version: Commits on May 12, 2025
-------------------------------------------------------------------------------------
android: Add aspect ratio setting for single screen layout mode (#913)

* android: Add aspect ratio setting for single screen layout mode

Co-Authored-By: Morph <39850852+Morph1984@users.noreply.github.com>

* Partial rewrite to address issues and improve readability

---------

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>,

-----------------------------------------------------------------------------------
cemu.mk bed5fdb1951814633a3eaea0445bcddb62b63df9 # Version: Commits on May 13, 2025
-----------------------------------------------------------------------------------
UI: Disable Ctrl+Q shortcut on non-macOS platforms to prevent accidental exits during gameplay (#1565),

------------------------------------------------------------------------------------------
dolphin-emu.mk 57dce8bd7c7d1df42e3d02af1af536e55d02057a # Version: Commits on May 12, 2025
------------------------------------------------------------------------------------------
Merge pull request #13650 from JosJuice/stswx-uncached

PowerPC: Correctly handle stswi/stswx to uncached memory,

------------------------------------------------------------------------------------------
duckstation.mk 8382a1ac7b8f4d6655ec87a9009b13633d5863b7 # Version: Commits on May 13, 2025
------------------------------------------------------------------------------------------
GameDB: Pop'n Tanks! does not support analog mode (#3416)

Only supports vibration.,

-------------------------------------------------------------------------------------
hatari.mk 483dbfc088ad8437fdbe1ae7231976704bdc96fc # Version: Commits on May 12, 2025
-------------------------------------------------------------------------------------
Add option --disable-key-repeat-fast-forward to disable keyboard auto repeat while in fast forward mode,

----------------------------------------------------
pcsx2.mk v2.3.343 # Version: Commits on May 12, 2025
----------------------------------------------------
- [GitHub: Require PR authors to disclose AI usage](PCSX2/pcsx2#12648)

,

-------------------------------------------------------------------------------------
ppsspp.mk a87391a56f3cfd4dc09a364f1d9d5d6f1abccb67 # Version: Commits on May 13, 2025
-------------------------------------------------------------------------------------
Merge pull request #20308 from NABN00B/themable-slider-colors

Make slider colors themable,

------------------------------------------------------------------------------------
rpcs3.mk fa744121fc936d35b9d880c6bbc587c49aa51b1e # Version: Commits on May 13, 2025
------------------------------------------------------------------------------------
Fix CallFromMainThread execution condition,

---------------------------------------------------------------
ruffle.mk nightly-2025-05-13 # Version: Commits on May 13, 2025
---------------------------------------------------------------
## What's Changed

* ci: Update \current\ Node.js from 23 to 24 by @torokati44 in ruffle-rs/ruffle#20362

* tests: Fix text/br_at_start test by @kjarosh in ruffle-rs/ruffle#20391

* build(deps-dev): bump the npm-minor group across 1 directory with 18 updates by @dependabot in ruffle-rs/ruffle#20400

* build(deps): bump the cargo-minor group with 5 updates by @dependabot in ruffle-rs/ruffle#20401

* chore: Update translations by @RuffleBuild in ruffle-rs/ruffle#20402

* avm2: Make (almost) all class signatures match FP by @Lord-McSweeney in ruffle-rs/ruffle#20233

**Full Changelog**: ruffle-rs/ruffle@nightly-2025-05-12...nightly-2025-05-13,

----------------------------------------------------
ryujinx.mk 1.3.40 # Version: Commits on May 13, 2025
----------------------------------------------------
# Canary builds:

These builds are experimental and may sometimes not work, use [regular builds](https://github.com/Ryubing/Stable-Releases/releases/latest) instead if that sounds like something you don't want to deal with.

| Platform | Artifact |

|--|--|

| Windows 64-bit | [Canary Windows Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.40/ryujinx-canary-1.3.40-win_x64.zip) |

| Windows ARM 64-bit | [Canary Windows ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.40/ryujinx-canary-1.3.40-win_arm64.zip) |

| Linux 64-bit | [Canary Linux Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.40/ryujinx-canary-1.3.40-linux_x64.tar.gz) |

| Linux ARM 64-bit | [Canary Linux ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.40/ryujinx-canary-1.3.40-linux_arm64.tar.gz) |

| macOS | [Canary macOS Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.40/ryujinx-canary-1.3.40-macos_universal.app.tar.gz) |

**[Full Changelog](https://git.ryujinx.app/ryubing/ryujinx/-/compare/Canary-1.3.39...Canary-1.3.40)**,

--------------------------------------------------------------------------------------
shadps4.mk 4cd13ea9d8a402d41b68a73b58fe839d91243c3e # Version: Commits on May 13, 2025
--------------------------------------------------------------------------------------
fix: Disable emitting bounds checks until fixed.,

---------------------------------------------------------------------------------------
thextech.mk 69a6914ed751290b2e537c7e05761bda9aa5bc18 # Version: Commits on May 12, 2025
---------------------------------------------------------------------------------------
Update AudioCodecs,

-------------------------------------------------------------------------------------------
xenia-native.mk e85c2392bac49a5ce16d0535c909af5458aa20db # Version: Commits on May 12, 2025
-------------------------------------------------------------------------------------------
[Kernel] Implemented: KeSetPriorityThread,

----------------------------------------------------------------------------------------
rpi-utils.mk af4d521909b92f876ecce3d6a11fbdd420d6cab3 # Version: Commits on May 13, 2025
----------------------------------------------------------------------------------------
pinctrl: gpiolib: Add the remaining GPIO chips

The conversion of gpiolib to a proper library omitted some of the 2712

GPIO chips. BCM2712D0 was worst affected, with Pi 500 only showing the

main 40-pin header pins.

Add the missing drivers to the library_gpiochips array.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>,

--------------------------------------------------------------------------------------
plutovg.mk 6987abcd3550d66e56c188e19dd80a697d053a39 # Version: Commits on May 13, 2025
--------------------------------------------------------------------------------------
Fix: Expand clip bounds by 1 pixel to account for rendering overshoot,

------------------------------------------------------------------------------------
box64.mk 4542244c4fff5a5087ff84994d0f5e69826b5bd0 # Version: Commits on May 13, 2025
------------------------------------------------------------------------------------
[DOCS] improve consistency between documentation and code (#2631)

* [fix][Docs] is `XXXX` consistantly

* [feat][Docs] add simple validation script that checks consistency between `usage.json` and `env.h`

* [DOCS] include `validate.py` in `gen.py`,

-------------------------------------------------------------------------------------------
jazz2-native.mk 649a07bf3afe290593dd62e6be5dfdf9e926726f # Version: Commits on May 13, 2025
-------------------------------------------------------------------------------------------
Reworked Debris, multiplayer, music resync,

----------------------------------------------------------------------------------
stk.mk e38f32a8c4681a513ab1afc41f859af859ffea6c # Version: Commits on May 13, 2025
----------------------------------------------------------------------------------
Account more accurately for scrolling arrows size in dynamic ribbon widgets

It ensures that the defined spacing between icons is respected when the scrolling arrows are huge, and when the scrolling arrows are quite small, it frees up some additional space to make icons larger.,

--------------------------------------------------------------------------------------
evsieve.mk 26cefb8f1ff3b34e589b30c7b0a399ccc1b2ce96 # Version: Commits on May 12, 2025
--------------------------------------------------------------------------------------
Add an example on how --withhold combines with --hook breaks-on.,

------------------------------------------------------------------------------------------
openbor7530.mk c4611a1c0b0e3e9fbe9a7cf829f7a7577676b7ef # Version: Commits on May 13, 2025
------------------------------------------------------------------------------------------
- Offense and defense use LUT in place of macro list to find types and exceptions to ALL.

-Fix falls, pains, etc. lists with correctly aligned reaction animations. Previous did not align with e_attack_types enum after more special types (time over, boss lose, etc.) added.

- New internal function to handle attack types in text based attack box and recursive damage declaration. Uses LUT and accepts following formats:

-- normal<int>

-- attack<int>

-- <int>

Inputs for type now match legacy behavior (i.e. not 0 indexed). Out of bounds entries fail gracefully with warning and fallback to attack type 0 (

ormal\).

Fixes #323.

Fixes #330.,

----------------------------------------------------------------------------------------
retroarch.mk 57acb067b8cc113c86df9b2d45e80d37c9f7f4a2 # Version: Commits on May 13, 2025
----------------------------------------------------------------------------------------
Merge pull request #17896 from zoltanvb/core_options_reset_v2,

--------------------------------------------------------------------------------------
soniccd.mk 7ca2280546326bda89bdaf7e03a68ac5d55afa17 # Version: Commits on May 10, 2025
--------------------------------------------------------------------------------------
Disable high res mode on dev menu F2/F3,

-----------------------------------------------------------------------------------
tr1x.mk a991d64976f5268c844f0da477c706edb02c2b2f # Version: Commits on May 13, 2025
-----------------------------------------------------------------------------------
docs: update docs for save crystal animation

The save crystal animation was fixed in 85c77aaeb with the merger of

Item_GetFrames. This adds a retrospective changelog entry for #1528.,

-----------------------------------------------------------------------------------
tr2x.mk a991d64976f5268c844f0da477c706edb02c2b2f # Version: Commits on May 13, 2025
-----------------------------------------------------------------------------------
docs: update docs for save crystal animation

The save crystal animation was fixed in 85c77aaeb with the merger of

Item_GetFrames. This adds a retrospective changelog entry for #1528.,

---------------------------------------------------------------------------------------------
libretro-fbneo.mk 55dcba62af40c28601a5f1712d923ea028119d22 # Version: Commits on May 13, 2025
---------------------------------------------------------------------------------------------
(libretro) update files,

--------------------------------------------------------------------------------------------------
libretro-gearcoleco.mk cf1a75e45872cd4b66632ade661faae399576124 # Version: Commits on May 12, 2025
--------------------------------------------------------------------------------------------------
Improve menu bar behavior when enabling/disabling fullscreen,

-------------------------------------------------------------------------------------------------
libretro-geargrafx.mk 5affbb2c07f3ae7343eaf0976f05639ea6438527 # Version: Commits on May 12, 2025
-------------------------------------------------------------------------------------------------
Update README.md,

--------------------------------------------------------------------------------------------------
libretro-gearsystem.mk c202db46408320ae52fc2e639d6bfa2f09f8ee70 # Version: Commits on May 12, 2025
--------------------------------------------------------------------------------------------------
Improve menu bar behavior when enabling/disabling fullscreen,

----------------------------------------------------------------------------------------------
libretro-ppsspp.mk a87391a56f3cfd4dc09a364f1d9d5d6f1abccb67 # Version: Commits on May 13, 2025
----------------------------------------------------------------------------------------------
Merge pull request #20308 from NABN00B/themable-slider-colors

Make slider colors themable,

--------------------------------------------------------------------------------------------
libretro-puae.mk ce2c7b7b2d65d3211df8782d6c595ef9aa7d099e # Version: Commits on May 13, 2025
--------------------------------------------------------------------------------------------
Fix preset parsing from uae confs,

------------------------------------------------------------------------------------------------
libretro-puae2021.mk 488e8a53d0a9be1de1e10cd7765f1caad0639579 # Version: Commits on May 13, 2025
------------------------------------------------------------------------------------------------
Fix preset parsing from uae confs,

----------------------------------------------------------------------------------------------
libretro-stella.mk 807b3c8ea104159090973e2840fd98ef933d5f93 # Version: Commits on May 12, 2025
----------------------------------------------------------------------------------------------
Fix size conversion warning.,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants