Django’s documentation is one of its greatest value propositions. While the sentiment may not be universal, I hear it even from first-time bug reporters, who embellish reports with comments such as, “love the framework, been using it since 0.01, great docs!”[1]
If we start merging documentation written in the voice of an LLM, I think we’re going to do serious damage to that value proposition. I’d like to merge a sentence or two to the contributing docs about this.
Consider this example. I’ve rewritten the subject matter to avoid singling anyone out.
Running your Django site
It’s important that you run your Django site correctly. When your site runs
correctly, your project uptime will improve, leading to fewer frustrated users
and service requests that can distract you from your other priorities.
This intentionally ridiculous example is both overly vague and overly precise at the same time, drilling down into an irrelevant detail about project uptime.
Pretend LLMs don’t exist. I’m suggesting we wouldn’t merge this paragraph into Django regardless of whether it was drafted by an LLM. The reason it’s not appropriate for Django’s documentation is that is not written from the voice of an experienced developer addressing a peer.[2] Instead, it’s written from a voice from nowhere.
As a reader, the “voice from nowhere” immediately degrades my trust in the documentation. I wrinkle my nose and brace myself for an onslaught of more lousy text.
Reviewers are already starting to discourage this. In some cases, a shorthand is used: “it’s not appropriate to use an LLM to generate this doc”. I’ve also seen the more laborious alternative of just iterating a half-dozen times and leaving scores of comments. In my experience, contributors don’t get the drift and just have their LLM plow through all the feedback. I can only speculate why reviewers (myself included) take the “long route”. It might be to avoid getting into a debate about whether it’s okay to use an LLM.
I’d like to propose that we bracket the whole thing about LLMs and just say that Django’s documentation needs to studiously avoid the “voice from nowhere”. That should give reviewers more power to redirect contributors in a better direction without getting into debates about LLMs.
My proposal is to add something like this in the coding style doc beneath the existing “Writing style” section:
Voice
Django’s documentation is written in the voice of an experienced user of the
framework addressing a peer developer, even if that developer is new to Django
or new to web development. Although it is not the only possible source of poor
text, generative AI tools are liable to produce text written in the “voice from
nowhere”: for example, dwelling on irrelevant details, using bullet points for
the sake of having bullet points, or presenting overly digested, zippy advice.
This damages the contract between reader and author that the author has
exercised editorial control over which details matter for the purpose at hand,
owing to the author’s own experience with the framework.
If a reviewer asks you to avoid using an LLM to generate documentation, it may
be a shorthand for expressing the more fundamental value that we must keep the
voice of Django’s documentation consistent. We cannot pollute it with “the
voice from nowhere.”