> Hi Collin, > >> > 1) Code included in this package that comes from a single LLM prompt >> > must be limited in size: it must be at most 5 lines long. >> >> A user on Mastodon was under the impression that this policy means you >> vibe code a large patch with multiple prompts, as long as each prompt >> only produces 5 lines [1]. I.e., a 500 line patch is fine as long it was >> the summation of 100 prompts creating diffs of 5 lines each. > > That user found a loophole in the policy, indeed. It is possible, for > example with ChatGPT, to prompt: > - Please provide the first 5 lines of code of an AVL tree implementation in > C. > - Please give the next 5 lines of code. > - Please give the next 5 lines of code. > - Please give the next 5 lines of code. > - Please give the next 5 lines of code. > - Please give the next 5 lines of code. > ... > and retrieve some code that is similar to the several dozens of AVL tree > implementations found in GitHub. Something that I intended to avoid with > the policy, > >> Perhaps the "from a single LLM prompt" should be replaced with just >> "from a LLM"? Since I don't think that was the intent of the policy. At >> least, speaking personally, I would not accept a patch like that. > > The intent of the policy is to > 1) avoid regurgitation of existing, copyrighted code, > 2) allow contributions where the creative process of constructing the > code is done by the user, with the LLM contributing only small pieces, > that can be assumed uncopyrighted due to their small size. > > A patch of 500 lines, that is constructed from 100 small snippets of code, > each coming from a different user prompt, will usually reflect the creative > work of that user. And this is what matters for copyright purposes: who > did the creative part; not whether the user typed any line of code by hand. > So, I think such a patch would be OK to accept. > > Since I don't think that anyone will really apply the loophole mentioned > above, I'm in favour of leaving the policy as-is, despite the > loophole.
A similar "loophole" is actually addressed in the GNU maintainers guide, in the chapter "Legally Significant Changes": When you record a small patch in a change log file, first search for previous changes by the same person, and see if per past contributions, plus the new one, add up to something legally significant. If so, you should get copyright papers for all per changes before you install the new change. The GCC project has adopted the policy that no LLM generated code which is legally significant shall be installed, and the policy explicitly refers to the GNU Project's definition of "legally significant". > > Bruno
