xref: /dokuwiki/AI_POLICY.md (revision f4daad6a571b2cc0cb5a470cab75eab8a2bfee9f)
1*f4daad6aSAndreas Gohr# AI Policy
2*f4daad6aSAndreas Gohr
3*f4daad6aSAndreas GohrAI assisted coding is okay if you understand the code you are contributing and can explain it in your own words.
4*f4daad6aSAndreas GohrYou should be able to answer questions about the code you contribute without copying responses from AI.
5*f4daad6aSAndreas Gohr
6*f4daad6aSAndreas GohrAll code merged into the DokuWiki codebase **must be reviewed and approved by a human**, regardless of wether it was
7*f4daad6aSAndreas Gohradded by a long-time maintainer or first-time contributor. Each commit must have a responsible human author attached.
8*f4daad6aSAndreas GohrRefrain from "co-authored-by" or similar tags that attribute the contribution to an AI.
9*f4daad6aSAndreas Gohr
10*f4daad6aSAndreas Gohr**AI may not be used to communicate** with maintainers. This includes comments on pull requests and issues as well as
11*f4daad6aSAndreas Gohrpull request and issue descriptions. If an AI generated output is relevant to the discussion, it should be included in
12*f4daad6aSAndreas Gohra quote block and accompanied by human commentary explaining its relevance and implications.
13*f4daad6aSAndreas Gohr
14*f4daad6aSAndreas Gohr**It's okay to use AI to translate** comments to English as long as it reflects your own voice. Consider including the
15*f4daad6aSAndreas Gohroriginal text in a quote block so readers speaking both languages can refer back to it.
16*f4daad6aSAndreas Gohr
17*f4daad6aSAndreas Gohr**Drive-by AI contributions are not welcome**. If you are a first-time contributor it is expected that you will explain
18*f4daad6aSAndreas Gohryour motivation for contributing to the DokuWiki project. How are you using DokuWiki and why is the code you are
19*f4daad6aSAndreas Gohrcontributing important to you? "I saw the issue and let my AI write a fix" is not an acceptable motivation. Tickets
20*f4daad6aSAndreas Gohrmarked as "good first-issue" are not an invitation for AI fixes - they are meant to be a starting point for new human
21*f4daad6aSAndreas Gohrcontributors to get involved in the project. We want contributions to be driven by people who actually use DokuWiki and
22*f4daad6aSAndreas Gohrcare about the project, not by people who are just looking for an easy way to get a contribution on their GitHub
23*f4daad6aSAndreas Gohrprofile.
24*f4daad6aSAndreas Gohr
25*f4daad6aSAndreas GohrFailure to follow this policy may result in your contribution being rejected and/or your account being blocked.
26*f4daad6aSAndreas Gohr
27*f4daad6aSAndreas Gohr## Background
28*f4daad6aSAndreas Gohr
29*f4daad6aSAndreas GohrIf you are new to the Open-Source world, you might be wondering about the existence of above policy or the hostility
30*f4daad6aSAndreas Gohrtowards AI and your contributions in general.
31*f4daad6aSAndreas Gohr
32*f4daad6aSAndreas GohrIf you really want to contribute to Open-Source projects because you want to help, the list of short quotes and links
33*f4daad6aSAndreas Gohrbelow will give you a starting point to better understand the concerns and issues Open Source maintainers face.
34*f4daad6aSAndreas Gohr
35*f4daad6aSAndreas Gohr> All these people who submit drive-by pull requests to my projects are pushing me to spend more and more of my time
36*f4daad6aSAndreas Gohr> reviewing and merging code that was extruded by machines.
37*f4daad6aSAndreas Gohr>
38*f4daad6aSAndreas Gohr> from ["I Am Not a Reverse Centaur"](https://blog.miguelgrinberg.com/post/i-am-not-a-reverse-centaur)
39*f4daad6aSAndreas Gohr
40*f4daad6aSAndreas Gohr
41*f4daad6aSAndreas Gohr> Since I don't really know you, I always have to assume that you might be trying to sneak in something malicious along
42*f4daad6aSAndreas Gohr> with your changes, which makes reviewing and merging them riskier than implementing them myself.\
43*f4daad6aSAndreas Gohr> […]\
44*f4daad6aSAndreas Gohr> For these reasons, it's just easier if I make the code changes myself (with the help of an LLM).
45*f4daad6aSAndreas Gohr>
46*f4daad6aSAndreas Gohr> from ["I don't want your PRs anymore"](https://dpc.pw/posts/i-dont-want-your-prs-anymore/)
47*f4daad6aSAndreas Gohr
48*f4daad6aSAndreas Gohr
49*f4daad6aSAndreas Gohr> What most people don’t realize is that evaluating and merging changes is far harder than writing new code.
50*f4daad6aSAndreas Gohr> Understanding how a change fits into the existing codebase, its history, and its plans requires knowledge that’s
51*f4daad6aSAndreas Gohr> partly
52*f4daad6aSAndreas Gohr> invisible — not in the code, not in the comments, not in the issues. It’s in the maintainer’s head. And some of it is
53*f4daad6aSAndreas Gohr> deeply creative work, requiring the kind of judgment no model can replicate.
54*f4daad6aSAndreas Gohr>
55*f4daad6aSAndreas Gohr> from ["The Maintainer’s Dilemma"](https://spf13.com/p/the-maintainers-dilemma/)
56*f4daad6aSAndreas Gohr
57*f4daad6aSAndreas Gohr
58*f4daad6aSAndreas Gohr> […] a contribution is not finished when the pull request is opened. […] AI changes the cost of creating the first
59*f4daad6aSAndreas Gohr> version. It does not make that second part disappear.\
60*f4daad6aSAndreas Gohr> […]\
61*f4daad6aSAndreas Gohr> The useful question is not “did AI touch this?”. The useful question is: does the person submitting this understand
62*f4daad6aSAndreas Gohr> it, validate it, and take responsibility for it?
63*f4daad6aSAndreas Gohr>
64*f4daad6aSAndreas Gohr> from ["Open source was not ready for AI-speed contributions"](https://frenck.dev/open-source-was-not-ready-for-ai-speed-contributions/)
65