Why Is Technical Documentation Still Wrong in the Age of LLMs?

LLMs lower the barrier to writing docs, but documentation quality is fundamentally an engineering process problem that no tool alone can solve.
Even with LLMs that can read and write code, official documentation remains error-prone. The root causes go deeper than tooling: critical design intent and edge cases are never recorded in the first place, and there's no sync mechanism to keep docs aligned with code changes. Worse, LLM-generated docs look polished and professional, masking errors and lowering readers' guard through confident hallucinations. The real fix is treating documentation as an engineering concern — running doc examples as tests, using human-AI collaborative review, and making code the single source of truth.
An Old Problem in a New Context
Technical documentation that lags behind code, riddled with errors, and misaligned with actual behavior — this is practically an endemic disease of the software industry. Interestingly, now that large language models (LLMs) have become everyday tools for developers, a thought-provoking question has resurfaced: if we already have powerful models that can read code, write code, and summarize documentation, why is official documentation still so frequently wrong?
This question, originally posed on Hacker News, is brief but cuts to a critical misconception — many people assume that the arrival of LLMs will automatically fix documentation quality issues. Reality, however, tells a different story: a more powerful tool doesn't make the underlying problem disappear.

The Root Cause Isn't a Lack of Tools
Poor documentation quality has long been blamed on "nobody wants to write it" or "nobody maintains it once it's written." LLMs do lower the barrier to writing, and in theory can auto-generate descriptions from code. But the essence of documentation errors is rarely "can't produce the text" — it runs much deeper than that.
True Intent Cannot Be Inferred from Code
Code can express what was done, but rarely why it was done that way or how it's meant to be used. A model can accurately describe a function's signature, but the design constraints behind it, edge cases, and historical gotchas typically exist only in the developer's head. LLMs generate content based on available information — when the source information is missing or contradictory, they can only produce text that seems plausible but may well be wrong.
The Sync Mechanism Between Docs and Code Is Still Weak
Documentation errors most commonly occur when "the code changed but the docs didn't." This is an engineering process problem, not a text generation problem. Even if you use an LLM to instantly generate polished documentation, without automated sync verification and continuous integration constraints, that documentation will go stale the moment code changes. Tools improve productivity but don't reassign the responsibility of maintenance.
LLMs May Actually Make Documentation Problems Harder to Spot
An underappreciated risk is this: LLM-generated documentation reads more smoothly and professionally — and that polish can actually mask the errors within. Documentation written by humans in the past often carried an obvious roughness alongside its mistakes, keeping readers on their guard. Model-generated content, by contrast, is well-worded and neatly formatted, making it easy to fall into the trap of thinking "this must be correct."
This kind of "confident error" is a hallmark of LLMs. A model won't proactively tell you where it's uncertain — it will output facts and hallucinations with the same fluent tone. When this type of content sneaks into documentation, the cost of tracking it down can be even higher than with traditional errors.
This phenomenon has a dedicated term in the AI field: hallucination. When LLMs generate text, they aren't retrieving facts — they're predicting "the next most probable token" based on probability. This means they naturally tend to produce content that is linguistically coherent and superficially logical, even when the underlying facts don't exist. In the context of code documentation, hallucination is especially dangerous: a model might fabricate nonexistent parameter names, incorrect return types, or describe functionality that was never implemented — and all of this will be stylistically indistinguishable from correct documentation. Distinguishing "what the model is confident about" from "what the model is guessing" remains one of the core unsolved problems in the field. Some mitigation techniques exist, such as Retrieval-Augmented Generation (RAG) — anchoring the model's output to the actual codebase or changelog rather than relying solely on weights baked in during training — but this only reduces hallucination frequency; it doesn't eliminate it.
The Real Solution Is Process, Not Magic
For documentation to be reliable, LLMs should be positioned as an assistant, not a replacement. Several directions are worth pursuing:
- Docs as tests: Incorporate code examples from documentation into automated test suites, ensuring examples always run. This guarantees accuracy more reliably than any generation tool.
- Human-AI collaborative review: Use LLMs to generate first drafts, then have engineers who know the system audit them — specifically filling in the design intent that models cannot infer.
- Code as the single source of truth: Extract documentation automatically from type definitions, comments, and interface contracts wherever possible, reducing the drift introduced by manual restatement.
In other words, documentation quality has never been a pure text problem — it's a holistic reflection of engineering culture and collaborative process.
The docs as tests philosophy has mature tooling behind it in practice. Python's doctest module can directly run examples embedded in docstrings and verify their output; Rust's cargo test compiles and executes all code blocks in documentation comments by default; and OpenAPI/Swagger specifications allow teams to define API documentation as machine-readable contracts, with Contract Testing tools like Pact continuously verifying consistency between service behavior and documentation descriptions in CI pipelines. The shared logic behind all these mechanisms is this: turn documentation correctness into an engineering metric that can be automatically asserted, rather than something that relies on periodic human review. When documentation diverges from code, the build pipeline fails outright — forcing developers to update the docs before merging, fundamentally breaking the inertia of "documentation is always the last thing forgotten."
Conclusion
"With LLMs, why is documentation still wrong?" — the answer may be somewhat counterintuitive: because the correctness of documentation has never depended on how powerful your writing tools are. It depends on whether the team has established a mechanism to keep documentation honest. An LLM is a capable pen, but it cannot write down truths the team never recorded, and it cannot repair the missing link in your process. The real investment worth making is integrating documentation into an engineering system that is verifiable and sustainably maintainable.
Related articles

Free Unlimited Claude Code Solution: Agnes AI + CC Switch Setup Guide
No paid subscription needed — pair the free AI platform Agnes AI with the open-source tool CC Switch to provide a backend for Claude Code, enabling unlimited free calls to text, image, and video models. This guide covers the full setup, test results, and usage boundaries.

A Complete Zero-Cost Guide to Getting Started with Claude Code for Beginners in China
A beginner's guide to Claude Code for users in China: two installation methods (command line and IDE plugin), full configuration steps for replacing the official API with the free domestic LongCat model, and a hands-on demo of building a small tool with natural language, plus tips.

When the NSA Gets Involved: The AI Supply Chain Crisis Behind Open-Source CVEs and API Key Hijacking
Multiple open-source projects disclosed severe CVEs in one day, PHP flaws alarmed the FBI, and Railway and OpenCode were breached with API keys stolen. This article breaks down the vulnerability window, AI-accelerated exploitation, and the AI supply chain crisis behind the API key black market, with a developer defense checklist.