Documentation for Platform Engineering Teams: A Manifesto
Documentation is not a deliverable; it is infrastructure. Here is the manifesto platform engineering teams should adopt to stop treating docs like an afterthought and start treating them like the production system they are.
DocPilot Team
AI documentation research and engineering from Onzira Labs.
Your platform is only as good as your team's ability to onboard, debug, and extend it at 2am. Yet most platform engineering teams still treat documentation as the last ten minutes of a sprint, a wiki page that someone will "get to later," or a README written by a senior engineer who has long since moved on to another team.
That is a failure mode, not a workflow. If you operate a Kubernetes platform, an internal developer environment, a CI/CD mesh, or any shared infrastructure that more than one team depends on, your documentation is a load-bearing component of your system. Treat it like one.
This is a manifesto for platform engineering teams who are tired of Slack archaeology, tribal knowledge, and docs that rot the week after they ship.
Principle 1: Documentation is Production Infrastructure
If a service goes down because of a missing or wrong doc, that is an outage. Treat it the same way you treat an SLO breach. Most platform outages are not caused by code that failed to run; they are caused by humans running code they did not understand, in environments they could not reason about, against APIs they had never read about.
A few operational rules follow from this:
- Docs live in the same monorepo as the code they describe. If they are in a separate system, they will drift within weeks.
- Docs are versioned with the code. When a v2 API ships, the v1 docs are not deleted; they are pinned.
- Docs have owners. Every page has a CODEOWNERS entry, and that owner is on the hook for accuracy, not the author.
- Docs are tested. Broken links, stale examples, and wrong commands are CI failures.
This is not aspirational. Teams at companies running internal platforms at scale do this. It is boring, unglamorous work, and that is exactly why it works.
What "versioned with the code" looks like in practice
You do not need a complex doc pipeline to get most of the value. A simple structure like the following is enough:
/platform/
services/
auth/
src/
docs/
v1.md # frozen when v1 was retired
v2.md # current
README.md # entry point
CHANGELOG.md
The versioned doc and the versioned code are deployed together. When someone asks "what did the auth API do last quarter," the answer is in git, not in someone's memory.
Principle 2: The README Is the Front Door, Not the Whole House
The single biggest documentation failure on platform teams is confusing README with documentation. README is for the first ten minutes. Documentation is for the next ten months.
A platform README should answer exactly four questions:
- What is this?
- Who is it for?
- How do I get started in under five minutes?
- Where do I go next?
That is it. Everything else — architecture decisions, operational runbooks, API references, troubleshooting trees — belongs elsewhere, organized by audience and lifecycle stage.
A directory structure that does not rot
Most platform docs rot because they are organized by author preference rather than by reader journey. A structure that survives contact with reality:
getting-started/— install, first run, "hello world" against your platform.concepts/— mental models. What is a workspace? What is an environment? What is a service mesh in your platform, not in the abstract.how-to/— task-oriented. "How do I add a new microservice." "How do I rotate a secret." "How do I read my service's logs."reference/— APIs, CLIs, configuration schemas. Authoritative, exhaustive, generated where possible.operations/— runbooks, incident playbooks, on-call guides. This is the part that actually saves your bacon.
The Diátaxis framework maps almost exactly onto this. That is not a coincidence. Reader needs are stable; author habits are not. Build around reader needs.
Principle 3: Generate, Don't Hand-Write, What Can Be Generated
Hand-written API references are a lie. They describe the API as it existed when someone had the time to write them down, which is rarely how the API exists today. The same is true for CLI references, configuration schemas, and Swagger-style endpoint docs.
The pragmatic stance:
- Generate anything that mechanically mirrors code: API docs from OpenAPI or protobuf annotations, CLI docs from
--helpparsing or spf13/cobra metadata, config references from JSON Schema or struct tags, database schemas from migrations. - Hand-write what requires judgment: architecture decision records (ADRs), onboarding narratives, postmortems, "why we built it this way" essays.
- Mix in places where the generated version is the source of truth and the hand-written version is the curated path through it.
A platform team that does this well spends roughly 70% of its doc effort on the 30% of docs that require human judgment, because the other 70% is automated away.
A small, honest example
For a service exposing a gRPC API, the contract is the .proto file. Anything else is duplication. A Makefile target like:
docs:
protoc --doc_out=docs/reference --doc_opt=markdown,api.md api/v1/*.proto
…produces an API reference that cannot drift. A second target renders the same proto into a Postman collection or a typed client SDK. The cost of keeping the doc accurate is now zero.
Principle 4: Ownership Beats Heroism
The most common doc pattern on small platform teams is: one engineer writes everything, gets burned out, leaves, and the docs enter a zombie state until the next volunteer steps up. This is a single point of failure, and you would never accept it in your infrastructure. Do not accept it in your docs.
Three rules:
- Docs are assigned per surface area, not per person. A service has a doc owner. A runbook has a doc owner. When the owner rotates, the assignment rotates with them, tracked in CODEOWNERS or an equivalent file.
- Docs are reviewed in the same PR as the code they describe. If you change an API, the doc PR is part of the same change. This is enforced by CI, not by social contract.
- Docs have a freshness signal. A "last reviewed" or "last verified against this version" date on every page. Pages past their review window show a banner: "This page has not been reviewed in 6 months and may be out of date." That banner does not need to block deploys. It just needs to exist.
This converts docs from a volunteer effort into an operational responsibility. Volunteers are how you start; ownership is how you scale.
Principle 5: Measure What You Do Not Read
You cannot improve what you do not measure, and most platform teams measure nothing about their docs. The few signals worth tracking:
| Signal | What it tells you | How to capture it |
|---|---|---|
| Page-level search queries | What users actually look for | In-site search analytics |
| Search queries with zero results | Gaps in your docs | Same |
| Time on page | Whether the doc is actually answering the question | Analytics |
| Support tickets tagged by doc page | Where docs are failing in spite of existing | Support system |
| Doc-related Slack questions | The real demand surface | Manual tagging, monthly review |
None of these are perfect. Together, they give you a direction. A doc page that shows up in fifty Slack threads per month and has a 6% time-on-page rate is a doc page that is lying to your users. Fix it or delete it. Deletion is a valid outcome.
Principle 6: Docs Are a Cultural Artifact, Not a Tooling Problem
No tool will fix a team that does not care about documentation. Conversely, a team that cares will produce useful docs even with mediocre tooling. The tool matters at the margins; the culture matters at the core.
The cultural shifts that matter:
- New engineers onboarding to the platform must be able to ship a working change by reading docs alone, with no Slack DMs. If they cannot, the docs are broken, not the engineer.
- Doc quality is part of "done" for any change that touches a public surface. Not aspirationally. Operationally.
- Internal docs are written for the next reader, not the current author. "I would never have known to look there" is a bug report, not a complaint.
If you want to know whether your culture is right, read your own onboarding docs from scratch as if you were new. If you cannot complete the first three tasks without help, you have your roadmap.
What to Do on Monday
Manifestos are cheap. Habits are expensive. If you take one thing from this article, take the following sequence:
- Inventory the top twenty pages your team relies on. Assign an owner to each. Put it in CODEOWNERS.
- Automate one source of doc drift. Pick the highest-volume offender — usually the API reference — and generate it.
- Delete one page that is actively wrong. Replacing it is optional. Deleting it is mandatory.
- Add a "last reviewed" date and a review SLA. Three months for runbooks, six months for everything else.
- Repeat next quarter with the next twenty pages.
Six months in, your docs will not be perfect. They will, however, be infrastructure: owned, versioned, measured, and improving. That is the entire job.
DocPilot is built for exactly this kind of discipline. It connects to your GitHub repos, generates READMEs, setup guides, architecture overviews, and API references directly from your code, and keeps them in sync with every PR via webhooks. If your platform team is ready to stop writing docs by hand and start generating the parts that should be generated, the free tier is the fastest way to see what your codebase looks like as a documented system. Try it on your most-rotting repo first; that is where the ROI shows up.
Read next
retention
How AI Documentation Improves Developer Retention
Developers don't quit companies, they quit confusion. Here's how AI-generated, always-current documentation directly improves retention, onboarding, and the engineering culture you need to scale.
Read
team-building
How to Build a Documentation Advocacy Team
Documentation doesn't fail because of bad tools. It fails because no one owns it. Here's how to build a team that changes that.
Read
series-b
Documentation Standards for Series B and Beyond
By Series B, undocumented architecture decisions start costing real velocity. Here's what separates documentation cultures that scale from the ones that quietly rot.
Read