Thank you for starting this discussion - not quite sure where to start ![]()
Firstly, we have the recent update to Django’s Code of Conduct which explicitly talks about AI usage: Django Code of Conduct | Django
Misuse of AI-generated content is a violation of our Code of Conduct.
Dan Ryan also did a talk about the Code of Conduct changes at DjangoCon US: https://youtu.be/kGhghG93CLw?si=yY-QIZVMTLYxpFNx
There was some discussion of AI here. Not sure if you have seen this talk yet but I found that really useful.
Secondly, on code attribution:
We remove co-authored by LLM attribution if it was added, as this has felt like free advertising for certain LLM models. It is also very hard for us to police this.
We do not use co-authored by for each PR reviewer and personally I want to credit reviewers before LLM models. This admin work would largely land on the fellows here. I am -1 on adding co-authored by for an LLM model.
Finally, our current code contribution model is that the community will review and approve contributions. Each code contribution has some form of review and approval from a merger.
Larger contributions require community discussion or a DEP.
Are you worried the mergers are merging slop? Or are you concerned that slop is thrown at the community to review?
I would like to think that the mergers and the community do a reasonable job with the quality gate, but if there are any commits with a quality issue, you (and anyone) can always raise a PR with a correction. We can even revert a commit.
I have been concerned about the amount that gets thrown at us but we are slowly doing steps to reduce this down. I am always open for new ideas here.
I am not against responsible use of AI. Especially to make the lives of the community easier, such as including a minimal test case or reproducer when you open a Trac ticket.
I am even open for us to have automatic security reviews of PRs, perhaps triggered by a community member. The security team needs to address anything that gets picked up from an AI scanner anyway, so I think better to resolve it before it goes in.
I wasn’t quite sure the direction you wanted this discussion to go based off your post.
So apologies if I am on a tangent to what you are after here ![]()